| Tool | Description |
|---|---|
| simply | SimplicityHL language CLI tool - compiler, runner, and deployment tool |
| hal | Bitcoin companion tool for keys, transactions, and signatures |
| hal-elements | Elements/Liquid extension for hal |
| hal-simplicity | Simplicity extension for hal |
| simc | SimplicityHL compiler - outputs base64 Simplicity bytecode |
| elements-cli | Elements Core RPC client for Liquid network operations |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source ~/.cargo/envcargo install --git https://github.com/starkware-bitcoin/simply simplycargo install halDownload from: https://github.com/ElementsProject/elements/releases
cargo install --git https://github.com/BlockstreamResearch/SimplicityHL simcBuild a Simfony program
simply build --entrypoint <file>
simply build --entrypoint <file> --target-dir <dir>
simply build --witness <file> --prune
simply build --mcpp-inc-path <path>
simply build --assemblyRun a Simfony program locally
simply run --entrypoint <file>
simply run --param <file>
simply run --witness <file>
simply run --param <file> --witness <file>
simply run --logging <level> # info, debug, traceRun tests
simply test
simply test --logging <level>Generate a P2TR address to make a deposit
simply deposit --entrypoint <file>
simply deposit --witness <file>
simply deposit --prune
simply deposit --assembly
simply deposit --target-dir <dir>Spend a transaction output
simply withdraw --entrypoint <file> --txid <txid> --destination <address>
simply withdraw --txid <txid> --destination <address> --witness <file>
simply withdraw --dry-run --txid <txid> --destination <address>
simply withdraw --prune
simply withdraw --assemblyGenerate a new ECDSA keypair
hal key generateGenerate a public key from a private key
hal key derive <privkey>Inspect private keys
hal key inspect <privkey>Sign messages using Schnorr (BIP-340)
hal key schnorr-sign <privkey> <message>
hal key schnorr-sign --reverse <privkey> <message>Verify Schnorr signatures
hal key schnorr-verify <pubkey> <sig> <message>Sign messages using ECDSA
hal key ecdsa-sign <privkey> <message>Verify ECDSA signatures
hal key ecdsa-verify <pubkey> <sig> <message>Negate the public key
hal key negate-pubkey <pubkey>Add a point (public key) to another
hal key pubkey-combine <pubkey1> <pubkey2>Add a scalar (private key) to a point (public key)
hal key pubkey-tweak-add <pubkey> <scalar>Create a raw transaction from JSON
hal tx create <tx-info-json>
hal tx create --raw-stdout <tx-info-json>Decode a raw transaction to JSON
hal tx decode <tx-hex>Create addresses
hal address create <pubkey>Inspect addresses
hal address inspect <address>SHA-256 hash
hal hash sha256 <data>Double SHA-256 hash
hal hash sha256d <data>RIPEMD-160 hash
hal hash ripemd160 <data>HASH160 (RIPEMD160(SHA256))
hal hash hash160 <data>Create a Bitcoin Signed Message
hal message sign <privkey> <message>Verify a Bitcoin Signed Message
hal message verify <signature> <message>Calculate Bitcoin Signed Message hash
hal message hash <message>Recover the pubkey and address of a Bitcoin Signed Message
hal message recover <signature> <message>BIP-32 key derivation
hal bip32 derive <xpriv> <path>Inspect BIP-32 keys
hal bip32 inspect <xpriv-or-xpub>Generate BIP-39 mnemonic
hal bip39 generateGet seed from BIP-39 mnemonic
hal bip39 get-seed <mnemonic>Encode data to bech32
hal bech32 encode <hrp> <data>Decode bech32 string
hal bech32 decode <bech32-string>Decode a Bitcoin script
hal script decode <script-hex>Create a PSBT from JSON
hal psbt create <psbt-info-json>Decode a PSBT to JSON
hal psbt decode <psbt-base64>Edit a PSBT
hal psbt edit <psbt-base64>Finalize a PSBT
hal psbt finalize <psbt-base64>Generate random bytes
hal random bytes <count>Create Elements addresses
hal-elements elements address create <pubkey>Inspect Elements addresses
hal-elements elements address inspect <address>Create a raw Elements transaction from JSON
hal-elements elements tx create <tx-info-json>
hal-elements elements tx create --raw-stdout <tx-info-json>Decode a raw Elements transaction to JSON
hal-elements elements tx decode <tx-hex>Decode an Elements block
hal-elements elements block decode <block-hex>Create Simplicity addresses
hal-simplicity simplicity address create <program>Inspect Simplicity addresses
hal-simplicity simplicity address inspect <address>Generate a random private/public keypair
hal-simplicity simplicity keypair generateParse a base64-encoded Simplicity program and decode it
hal-simplicity simplicity simplicity info <base64-program>Create a raw Simplicity transaction from JSON
hal-simplicity simplicity tx create <tx-info-json>
hal-simplicity simplicity tx create --raw-stdout <tx-info-json>Decode a raw Simplicity transaction to JSON
hal-simplicity simplicity tx decode <tx-hex>Decode a Simplicity block
hal-simplicity simplicity block decode <block-hex>Compile SimplicityHL program to base64 Simplicity bytecode
simc <program.simf>Compile with debug symbols
simc --debug <program.simf>Output: Base64-encoded Simplicity program
Generate a new address
elements-cli -chain=liquidtestnet getnewaddressGet address information
elements-cli -chain=liquidtestnet getaddressinfo <address>Dump private key for an address
elements-cli -chain=liquidtestnet dumpprivkey <address>Create a new wallet
elements-cli -chain=liquidtestnet createwallet "<name>"Get wallet balance
elements-cli -chain=liquidtestnet getbalanceSend to an address
elements-cli -chain=liquidtestnet sendtoaddress <address> <amount>Create a raw transaction
elements-cli -chain=liquidtestnet createrawtransaction '[{"txid":"<txid>","vout":<n>}]' '[{"<address>":<amount>}]'Decode a raw transaction
elements-cli -chain=liquidtestnet decoderawtransaction <hex>Get raw transaction
elements-cli -chain=liquidtestnet getrawtransaction <txid>
elements-cli -chain=liquidtestnet getrawtransaction <txid> trueSign raw transaction with private key
elements-cli -chain=liquidtestnet signrawtransactionwithkey <hex> '["<privkey>"]'Sign raw transaction with wallet
elements-cli -chain=liquidtestnet signrawtransactionwithwallet <hex>Broadcast a raw transaction
elements-cli -chain=liquidtestnet sendrawtransaction <hex>Combine multiple raw transactions
elements-cli -chain=liquidtestnet combinerawtransaction '["<hex1>","<hex2>"]'