Symbolic Smart Contracts

Script Editor
Use symbolic operations only. No alphabetic characters allowed in contracts.
Example Scripts
Simple Arithmetic
↓(5) ↓(3) ⊕ Pushes 5, pushes 3, adds them
Hash Operation
↓[deadbeef] ✳ Push hex bytes and hash them
Conditional
↓(1) ¿ ↓(42) ¦ ↓(0) ∎ If 1 then 42 else 0
Address Check
↓⟦○◔◑◕●□⟧ ☉ Check signature against address
Timelock
↓(100) ⏫ ✓ Require block height >= 100
Multisig
↓(2) ↓(3) ☍ 2-of-3 multisig check
Operations Reference

- DUP - Duplicate top stack item
- DROP - Remove top stack item
- SWAP - Swap top two stack items

- ADD - Add top two integers
- SUB - Subtract (second - first)

- HASH256 - SHA256 hash
- DSHA256 - Double SHA256 hash
- CHECKSIG - Verify Lamport signature
- CHECKMULTISIG - Verify m-of-n multisig

- EQUAL - Check equality
- EQUALVERIFY - Check equality and fail if false

- TRUE - Push true
- FALSE - Push false
¿ - IF - Conditional execution
¦ - ELSE - Alternative branch
- ENDIF - End conditional

- CHECKLOCKTIMEVERIFY - Check block height >= value
- CHECKLOCKTIMEBEFORE - Check block height < value

↓(n) - Push integer n
↓[hex] - Push hex bytes
↓⟦syms⟧ - Push nibble-symbol bytes
Nibble Symbols

Hex nibbles 0-F encoded as symbols:

0: ○
8: ▨
1: ◔
9: △
2: ◑
A: ▲
3: ◕
B: ▽
4: ●
C: ▼
5: □
D: ◇
6: ▥
E: ◆
7: ▦
F: (wrap to 0)