{"id":29301929,"url":"https://github.com/blockstreamresearch/hal-simplicity","last_synced_at":"2026-03-16T06:36:56.844Z","repository":{"id":300999565,"uuid":"1003692098","full_name":"BlockstreamResearch/hal-simplicity","owner":"BlockstreamResearch","description":"A fork of stevenroose's hal-elements with Simplicity support","archived":false,"fork":false,"pushed_at":"2025-07-30T17:37:16.000Z","size":189,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-30T18:44:53.013Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BlockstreamResearch.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-17T14:20:43.000Z","updated_at":"2025-07-30T17:37:04.000Z","dependencies_parsed_at":"2025-06-24T17:26:37.656Z","dependency_job_id":"5b75357d-3bbf-4abe-bb32-5f831cdeac43","html_url":"https://github.com/BlockstreamResearch/hal-simplicity","commit_stats":null,"previous_names":["blockstreamresearch/hal-simplicity"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BlockstreamResearch/hal-simplicity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlockstreamResearch%2Fhal-simplicity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlockstreamResearch%2Fhal-simplicity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlockstreamResearch%2Fhal-simplicity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlockstreamResearch%2Fhal-simplicity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BlockstreamResearch","download_url":"https://codeload.github.com/BlockstreamResearch/hal-simplicity/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlockstreamResearch%2Fhal-simplicity/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273747942,"owners_count":25160692,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-05T02:00:09.113Z","response_time":402,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-06T23:07:49.328Z","updated_at":"2026-03-16T06:36:56.835Z","avatar_url":"https://github.com/BlockstreamResearch.png","language":"Rust","readme":"hal-simplicity -- a Simplicity-enabled extension of hal\n============================================\n\nThis is a fork of Steven Roose's [hal-elements](https://github.com/stevenroose/hal-elements/)\nwhich in turn is an extension of his Bitcoin tool [hal](https://github.com/stevenroose/hal).\n\n# Installation\n\n```\n$ cargo install --locked hal hal-simplicity\n```\n\nYou can also run it directly with `cargo run -- \u003ccommand\u003e`.\n\n# Example: Validating a Signature Hash\n\nConsider transaction [e54d31ce544b65a3768d7dc44a9caf1142eb1ce9bb46707f5a83cb1ccf9b77f9](https://blockstream.info/liquidtestnet/nojs/tx/e54d31ce544b65a3768d7dc44a9caf1142eb1ce9bb46707f5a83cb1ccf9b77f9?expand)\non Liquid Testnet, which spends a simple \"pay to public key\" Simplicity program.\n\nWe can obtain the raw transaction from the Block Explorer by replacing `/nojs/` with\n`/api/` in the above URL and adding `/hex` to the end, [as so](https://liquid.network/liquidtestnet/api/tx/e54d31ce544b65a3768d7dc44a9caf1142eb1ce9bb46707f5a83cb1ccf9b77f9/hex):\n\n```\n020000000101b33e0e092f2f229bb472f7ac15b22783908ebf5b70d9fefa13fc627979b2ca6c0000000000000000000201499a818545f6bae39fc03b637f2a4e1e64e590cac1bc3a6f6d71aa4443654c140100000000000182b800160014b58c22151f4ba159e2255767472ac89137e8183001499a818545f6bae39fc03b637f2a4e1e64e590cac1bc3a6f6d71aa4443654c140100000000000003e8000000000000000004609bef8d556d80e43ae7e0becb3a7e6838b95defe45896ed6075bb9035d06c9964e09e91b2ee81dd61d97ec6e83bfdb03c28f79e0e7038a98964ea5c29cde0b2319878a86dc9e5a0d00269215a43754755a6e173246ad7d330eb82d27e779fd90afd7201e4fba0509b4df120e1d320451f14172c46476646daf8d0d6da80e84c986cc5e073f80ed4dcf0210284187248126ac8e671544245742660022ae160c5e14b09ec0c2a17584bf5c548c85961c02b6efc010c03109ad2420c3f00140b16ab91cd75dcbc1e84ea7a320719cbfc6dc95e5194f9eca996d55a7b2d768c511e2a310e1806240a1241b70a35627302ef7da851f75a1f471748121a2b6978930a58ccaee2309401bd1b6e9fcbb0018601881a80e12071190284906e2a37159c2a162cdba0e67e0aad66c82658ec0c7f2a5a2cc38c3f61a892acd0da3a133ff9ead668873dc60c0310b5b0730445fea038d226980c2e6f7e4be9e895848d1fd97f2100db43004cb4eaddefc50601885c078170e6f13a1848e019ef88de2e7a3c1561d1828b3be0f290def9feebf54da94249472c0c0312050920fc8238dc861438a059b630e6ef256702d23cf92f32979f4fcd9ff3909cf7b32538aafb0e3a23ec40079b1d130c03103785c207e4c8201c5a072580e4e0207fd424f70498ef2fb6dd05ffbb7368dc796e6c47f24404e0b1ff138cfce89a7a21bff5919fa64ce45f8306849072b26c1bfdd2937e6b81774796ff372bd1eb5362d20000000000\n```\n\nWe see that this transaction spends the transaction output with outpoint\n`6ccab2797962fc13fafed9705bbf8e908327b215acf772b49b222f2f090e3eb3:0`, which contains\nthe Simplicity program, and that this is the 0th input of the transaction. From its\nwitness stack, we see (reading bottom to top):\n\n* Its control block is `bff5919fa64ce45f8306849072b26c1bfdd2937e6b81774796ff372bd1eb5362d2`\n* The CMR of the Simplicity program is `7fd424f70498ef2fb6dd05ffbb7368dc796e6c47f24404e0b1ff138cfce89a7a`\n* The Simplicity program itself starts with `e4fba`...\n* The program's witness is `9bef8d556d80e43ae7e0becb3a7e6838b95defe45896ed6075bb9035d06c9964e09e91b2ee81dd61d97ec6e83bfdb03c28f79e0e7038a98964ea5c29cde0b2319878a86dc9e5a0d00269215a43754755a6e173246ad7d330eb82d27e779fd90a`,\n  which for this program we know consists of a public key `9bef8d556d80e43ae7e0becb3a7e6838b95defe45896ed6075bb9035d06c9964`\n  and a signature `e09e91b2ee81dd61d97ec6e83bfdb03c28f79e0e7038a98964ea5c29cde0b2319878a86dc9e5a0d00269215a43754755a6e173246ad7d330eb82d27e779`.\n\nIf you are unsure which components of the witness stack are what, you can attempt to parse each one\nof them as a Simplicity program. When we get the correct one, it will parse and produce a CMR which\nappears elsewhere in the witness stack:\n\n```\n$ hal-simplicity simplicity info e4fba0509b4df120e1d320451f14172c46476646daf8d0d6da80e84c986cc5e073f80ed4dcf0210284187248126ac8e671544245742660022ae160c5e14b09ec0c2a17584bf5c548c85961c02b6efc010c03109ad2420c3f00140b16ab91cd75dcbc1e84ea7a320719cbfc6dc95e5194f9eca996d55a7b2d768c511e2a310e1806240a1241b70a35627302ef7da851f75a1f471748121a2b6978930a58ccaee2309401bd1b6e9fcbb0018601881a80e12071190284906e2a37159c2a162cdba0e67e0aad66c82658ec0c7f2a5a2cc38c3f61a892acd0da3a133ff9ead668873dc60c0310b5b0730445fea038d226980c2e6f7e4be9e895848d1fd97f2100db43004cb4eaddefc50601885c078170e6f13a1848e019ef88de2e7a3c1561d1828b3be0f290def9feebf54da94249472c0c0312050920fc8238dc861438a059b630e6ef256702d23cf92f32979f4fcd9ff3909cf7b32538aafb0e3a23ec40079b1d130c03103785c207e4c8201c5a072580e4e0\n{\n  \"jets\": \"core\",\n  \"commit_base64\": \"5PugUJtN8SDh0yBFHxQXLEZHZkba+NDW2oDoTJhsxeBz+A7U3PAhAoQYckgSasjmcVRCRXQmYAIq4WDF4UsJ7AwqF1hL9cVIyFlhwCtu/AEMAxCa0kIMPwAUCxarkc113LwehOp6MgcZy/xtyV5RlPnsqZbVWnstdoxRHioxDhgGJAoSQbcKNWJzAu99qFH3Wh9HF0gSGitpeJMKWMyu4jCUAb0bbp/LsAGGAYgagOEgcRkChJBuKjcVnCoWLNug5n4KrWbIJljsDH8qWizDjD9hqJKs0No6Ez/56tZohz3GDAMQtbBzBEX+oDjSJpgMLm9+S+nolYSNH9l/IQDbQwBMtOrd78UGAYhcB4Fw5vE6GEjgGe+I3i56PBVh0YKLO+DykN75/uv1TalCSUcsDAMSBQkg/II43IYUOKBZtjDm7yVnAtI8+S8yl59PzZ/zkJz3syU4qvsOOiPsQAebHRMMAxA3hcIH5MggHFoHJYDk4A==\",\n  \"commit_decode\": \"(witness  \u0026 iden); (((unit; const 0xbe241c3a6408a3e282e588c8ecc8db5f1a1adb501d09930d98bc0e7f01da9b9e ) \u0026 iden); (((IOH; ((((false \u0026 unit); assertl drop jet_sha_256_ctx_8_init ) \u0026 iden); ((((false \u0026 (OH \u0026 IH)); assertl drop jet_sha_256_ctx_8_add_32 ) \u0026 iden); ((false \u0026 OH); assertl drop jet_sha_256_ctx_8_finalize )))) \u0026 iden); ((((false \u0026 ((false \u0026 (OH \u0026 IOH)); assertl drop jet_eq_256 )); assertl drop jet_verify ) \u0026 ((((false \u0026 unit); assertl drop jet_sig_all_hash ) \u0026 iden); ((false \u0026 ((IIIOH \u0026 OH) \u0026 witness )); assertl drop jet_bip_0340_verify ))); IH)))\",\n  \"type_arrow\": \"1 → 1\",\n  \"cmr\": \"7fd424f70498ef2fb6dd05ffbb7368dc796e6c47f24404e0b1ff138cfce89a7a\",\n  \"liquid_address_unconf\": \"ex1pyuvwaqedernfdc7c6qf7r67en3szas6s0sdegzq3jxduhj4mhles29dz23\",\n  \"liquid_testnet_address_unconf\": \"tex1pyuvwaqedernfdc7c6qf7r67en3szas6s0sdegzq3jxduhj4mhlestul9m7\",\n  \"is_redeem\": false\n}\n```\n\nThis gives us the canonical base64 encoding of the program, which the Block Explorer does not provide,\nand lets us confirm the CMR. We can then guess which part of the witness stack is the witness for\nthe Simplicity program, by passing various blobs as the second argument of `simplicity info`:\n\n```\n$ hal-simplicity simplicity info 5PugUJtN8SDh0yBFHxQXLEZHZkba+NDW2oDoTJhsxeBz+A7U3PAhAoQYckgSasjmcVRCRXQmYAIq4WDF4UsJ7AwqF1hL9cVIyFlhwCtu/AEMAxCa0kIMPwAUCxarkc113LwehOp6MgcZy/xtyV5RlPnsqZbVWnstdoxRHioxDhgGJAoSQbcKNWJzAu99qFH3Wh9HF0gSGitpeJMKWMyu4jCUAb0bbp/LsAGGAYgagOEgcRkChJBuKjcVnCoWLNug5n4KrWbIJljsDH8qWizDjD9hqJKs0No6Ez/56tZohz3GDAMQtbBzBEX+oDjSJpgMLm9+S+nolYSNH9l/IQDbQwBMtOrd78UGAYhcB4Fw5vE6GEjgGe+I3i56PBVh0YKLO+DykN75/uv1TalCSUcsDAMSBQkg/II43IYUOKBZtjDm7yVnAtI8+S8yl59PzZ/zkJz3syU4qvsOOiPsQAebHRMMAxA3hcIH5MggHFoHJYDk4A== 9bef8d556d80e43ae7e0becb3a7e6838b95defe45896ed6075bb9035d06c9964e09e91b2ee81dd61d97ec6e83bfdb03c28f79e0e7038a98964ea5c29cde0b2319878a86dc9e5a0d00269215a43754755a6e173246ad7d330eb82d27e779fd90a`\n{\n  \"jets\": \"core\",\n  \"commit_base64\": \"5PugUJtN8SDh0yBFHxQXLEZHZkba+NDW2oDoTJhsxeBz+A7U3PAhAoQYckgSasjmcVRCRXQmYAIq4WDF4UsJ7AwqF1hL9cVIyFlhwCtu/AEMAxCa0kIMPwAUCxarkc113LwehOp6MgcZy/xtyV5RlPnsqZbVWnstdoxRHioxDhgGJAoSQbcKNWJzAu99qFH3Wh9HF0gSGitpeJMKWMyu4jCUAb0bbp/LsAGGAYgagOEgcRkChJBuKjcVnCoWLNug5n4KrWbIJljsDH8qWizDjD9hqJKs0No6Ez/56tZohz3GDAMQtbBzBEX+oDjSJpgMLm9+S+nolYSNH9l/IQDbQwBMtOrd78UGAYhcB4Fw5vE6GEjgGe+I3i56PBVh0YKLO+DykN75/uv1TalCSUcsDAMSBQkg/II43IYUOKBZtjDm7yVnAtI8+S8yl59PzZ/zkJz3syU4qvsOOiPsQAebHRMMAxA3hcIH5MggHFoHJYDk4A==\",\n  \"commit_decode\": \"(witness  \u0026 iden); (((unit; const 0xbe241c3a6408a3e282e588c8ecc8db5f1a1adb501d09930d98bc0e7f01da9b9e ) \u0026 iden); (((IOH; ((((false \u0026 unit); assertl drop jet_sha_256_ctx_8_init ) \u0026 iden); ((((false \u0026 (OH \u0026 IH)); assertl drop jet_sha_256_ctx_8_add_32 ) \u0026 iden); ((false \u0026 OH); assertl drop jet_sha_256_ctx_8_finalize )))) \u0026 iden); ((((false \u0026 ((false \u0026 (OH \u0026 IOH)); assertl drop jet_eq_256 )); assertl drop jet_verify ) \u0026 ((((false \u0026 unit); assertl drop jet_sig_all_hash ) \u0026 iden); ((false \u0026 ((IIIOH \u0026 OH) \u0026 witness )); assertl drop jet_bip_0340_verify ))); IH)))\",\n  \"type_arrow\": \"1 → 1\",\n  \"cmr\": \"7fd424f70498ef2fb6dd05ffbb7368dc796e6c47f24404e0b1ff138cfce89a7a\",\n  \"liquid_address_unconf\": \"ex1pyuvwaqedernfdc7c6qf7r67en3szas6s0sdegzq3jxduhj4mhles29dz23\",\n  \"liquid_testnet_address_unconf\": \"tex1pyuvwaqedernfdc7c6qf7r67en3szas6s0sdegzq3jxduhj4mhlestul9m7\",\n  \"is_redeem\": true,\n  \"redeem_base64\": \"5PugUJtN8SDh0yBFHxQXLEZHZkba+NDW2oDoTJhsxeBz+A7U3PAhAoQYckgSasjmcVRCRXQmYAIq4WDF4UsJ7AwqF1hL9cVIyFlhwCtu/AEMAxCa0kIMPwAUCxarkc113LwehOp6MgcZy/xtyV5RlPnsqZbVWnstdoxRHioxDhgGJAoSQbcKNWJzAu99qFH3Wh9HF0gSGitpeJMKWMyu4jCUAb0bbp/LsAGGAYgagOEgcRkChJBuKjcVnCoWLNug5n4KrWbIJljsDH8qWizDjD9hqJKs0No6Ez/56tZohz3GDAMQtbBzBEX+oDjSJpgMLm9+S+nolYSNH9l/IQDbQwBMtOrd78UGAYhcB4Fw5vE6GEjgGe+I3i56PBVh0YKLO+DykN75/uv1TalCSUcsDAMSBQkg/II43IYUOKBZtjDm7yVnAtI8+S8yl59PzZ/zkJz3syU4qvsOOiPsQAebHRMMAxA3hcIH5MggHFoHJYDk4A==\",\n  \"witness_hex\": \"9bef8d556d80e43ae7e0becb3a7e6838b95defe45896ed6075bb9035d06c9964e09e91b2ee81dd61d97ec6e83bfdb03c28f79e0e7038a98964ea5c29cde0b2319878a86dc9e5a0d00269215a43754755a6e173246ad7d330eb82d27e779fd90a\",\n  \"amr\": \"463d72225db55f4bb9811a9d4d921854ef8893fa92b6358f6d47719ecfb1ced5\",\n  \"ihr\": \"8d3f7748cf509656920ecdb9cb424cac4f55f5e9cc0a1083f98fa87e74fca3e1\"\n}\n```\n\nWe see that the witness parsed correctly and we now get some extra fields in the output. (Though be\naware that any blob of the correct size would have been accepted; this serves as a sanity check but\nis not a reliable way to determine what the correct witness for a program is.)\n\nNext, we look at the input transaction, [6ccab2797962fc13fafed9705bbf8e908327b215acf772b49b222f2f090e3eb3](https://blockstream.info/liquidtestnet/nojs/tx/6ccab2797962fc13fafed9705bbf8e908327b215acf772b49b222f2f090e3eb3).\nIts 0th output has:\n\n* scriptPubKey `51202718ee832dc8e696e3d8d013e1ebd99c602ec3507c1b940811919bcbcabbbff3`\n* asset ID `144c654344aa716d6f3abcc1ca90e5641e4e2a7f633bc09fe3baf64585819a49`\n* amount 0.00100000 BTC\n\nPutting all this data together, we can invoke `simplicity sighash`:\n\n```\n$ hal-simplicity simplicity sighash 020000000101b33e0e092f2f229bb472f7ac15b22783908ebf5b70d9fefa13fc627979b2ca6c0000000000000000000201499a818545f6bae39fc03b637f2a4e1e64e590cac1bc3a6f6d71aa4443654c140100000000000182b800160014b58c22151f4ba159e2255767472ac89137e8183001499a818545f6bae39fc03b637f2a4e1e64e590cac1bc3a6f6d71aa4443654c140100000000000003e8000000000000000004609bef8d556d80e43ae7e0becb3a7e6838b95defe45896ed6075bb9035d06c9964e09e91b2ee81dd61d97ec6e83bfdb03c28f79e0e7038a98964ea5c29cde0b2319878a86dc9e5a0d00269215a43754755a6e173246ad7d330eb82d27e779fd90afd7201e4fba0509b4df120e1d320451f14172c46476646daf8d0d6da80e84c986cc5e073f80ed4dcf0210284187248126ac8e671544245742660022ae160c5e14b09ec0c2a17584bf5c548c85961c02b6efc010c03109ad2420c3f00140b16ab91cd75dcbc1e84ea7a320719cbfc6dc95e5194f9eca996d55a7b2d768c511e2a310e1806240a1241b70a35627302ef7da851f75a1f471748121a2b6978930a58ccaee2309401bd1b6e9fcbb0018601881a80e12071190284906e2a37159c2a162cdba0e67e0aad66c82658ec0c7f2a5a2cc38c3f61a892acd0da3a133ff9ead668873dc60c0310b5b0730445fea038d226980c2e6f7e4be9e895848d1fd97f2100db43004cb4eaddefc50601885c078170e6f13a1848e019ef88de2e7a3c1561d1828b3be0f290def9feebf54da94249472c0c0312050920fc8238dc861438a059b630e6ef256702d23cf92f32979f4fcd9ff3909cf7b32538aafb0e3a23ec40079b1d130c03103785c207e4c8201c5a072580e4e0207fd424f70498ef2fb6dd05ffbb7368dc796e6c47f24404e0b1ff138cfce89a7a21bff5919fa64ce45f8306849072b26c1bfdd2937e6b81774796ff372bd1eb5362d20000000000 0 7fd424f70498ef2fb6dd05ffbb7368dc796e6c47f24404e0b1ff138cfce89a7a bff5919fa64ce45f8306849072b26c1bfdd2937e6b81774796ff372bd1eb5362d2 -i '51202718ee832dc8e696e3d8d013e1ebd99c602ec3507c1b940811919bcbcabbbff3:144c654344aa716d6f3abcc1ca90e5641e4e2a7f633bc09fe3baf64585819a49:0.001' -p 9bef8d556d80e43ae7e0becb3a7e6838b95defe45896ed6075bb9035d06c9964 -s e09e91b2ee81dd61d97ec6e83bfdb03c28f79e0e7038a98964ea5c29cde0b2319878a86dc9e5a0d00269215a43754755a6e173246ad7d330eb82d27e779fd90a`\n{\n  \"sighash\": \"d832133eba9525e9e452752e6b2193b3c71084af75832b385a4c108f8100947d\",\n  \"signature\": null,\n  \"valid_signature\": true\n}\n```\n\nWhich tells us the `SIGHASH_ALL` sighash for the transaction input, as well as validating the signature\nwe provided with the public key we provided, which confirms that our witness was well-formed.\n\nIf we had not provided the public key and signature, this command would have simply output the sighash\nwith no further information. If we had instead provided a *secret* key with `-s`, the command would have\nproduced a signature for us.\n\n# Command Reference\n\n### hal-simplicity address create\nCreate Simplicity addresses\n```bash\nhal-simplicity address create \u003cprogram\u003e\n```\n\n### hal-simplicity address inspect\nInspect Simplicity addresses\n```bash\nhal-simplicity address inspect \u003caddress\u003e\n```\n\n### hal-simplicity keypair generate\nGenerate a random private/public keypair\n```bash\nhal-simplicity keypair generate\n```\n\n### hal-simplicity simplicity info\nParse a base64-encoded Simplicity program and decode it\n```bash\nhal-simplicity simplicity info \u003cbase64-program\u003e\n```\n\n### hal-simplicity simplicity sighash\nCompute sighash for a Simplicity transaction input (draft PR #9)\n```bash\nhal-simplicity simplicity sighash \u003ctx-hex\u003e \u003cinput-index\u003e \u003ccmr\u003e \u003ccontrol-block\u003e -i \u003cinput-utxo\u003e [-g \u003cgenesis-hash\u003e] [-s \u003csecret-key\u003e]\n```\n\n### hal-simplicity tx create\nCreate a raw Simplicity transaction from JSON\n```bash\nhal-simplicity tx create \u003ctx-info-json\u003e\nhal-simplicity tx create --raw-stdout \u003ctx-info-json\u003e\n```\n\n### hal-simplicity tx decode\nDecode a raw Simplicity transaction to JSON\n```bash\nhal-simplicity tx decode \u003ctx-hex\u003e\n```\n\n### hal-simplicity block create\nCreate a raw block from JSON\n```bash\nhal-simplicity block create \u003cblock-info-json\u003e\nhal-simplicity block create --raw-stdout \u003cblock-info-json\u003e\n```\n\n### hal-simplicity block decode\nDecode a Simplicity block\n```bash\nhal-simplicity block decode \u003cblock-hex\u003e\n```\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblockstreamresearch%2Fhal-simplicity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblockstreamresearch%2Fhal-simplicity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblockstreamresearch%2Fhal-simplicity/lists"}