{"id":29184129,"url":"https://github.com/starkware-bitcoin/simply","last_synced_at":"2026-05-19T07:31:00.304Z","repository":{"id":301590447,"uuid":"1009706936","full_name":"starkware-bitcoin/simply","owner":"starkware-bitcoin","description":"Command line tooling for SimplicityHL","archived":false,"fork":false,"pushed_at":"2025-10-07T21:05:21.000Z","size":104,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-17T19:45:26.665Z","etag":null,"topics":["bitcoin","liquid","simplicity"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/starkware-bitcoin.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-27T15:17:00.000Z","updated_at":"2025-10-07T21:05:25.000Z","dependencies_parsed_at":"2025-10-07T20:18:34.705Z","dependency_job_id":"19e7c2c1-f5fb-4909-b46d-b194214f586a","html_url":"https://github.com/starkware-bitcoin/simply","commit_stats":null,"previous_names":["m-kus/simply","starkware-bitcoin/simply"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/starkware-bitcoin/simply","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starkware-bitcoin%2Fsimply","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starkware-bitcoin%2Fsimply/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starkware-bitcoin%2Fsimply/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starkware-bitcoin%2Fsimply/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/starkware-bitcoin","download_url":"https://codeload.github.com/starkware-bitcoin/simply/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starkware-bitcoin%2Fsimply/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33206270,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-19T07:16:55.748Z","status":"ssl_error","status_checked_at":"2026-05-19T07:16:54.366Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["bitcoin","liquid","simplicity"],"created_at":"2025-07-01T21:02:10.747Z","updated_at":"2026-05-19T07:31:00.282Z","avatar_url":"https://github.com/starkware-bitcoin.png","language":"Rust","funding_links":[],"categories":["Tools","Developer Tools"],"sub_categories":["Compilers"],"readme":"# Simply\n\nCommand line tooling for SimplicityHL (previously Simfony), a high-level language for Bitcoin's Simplicity smart contracts.\n\n## Overview\n\nSimply is a comprehensive CLI tool that provides development, testing, and deployment capabilities for SimplicityHL programs. It supports the complete workflow from writing SimplicityHL code to deploying and interacting with Bitcoin smart contracts.\n\n## Installation\n\n```sh\ncargo install --git https://github.com/m-kus/simply simply\n```\n\n## Commands\n\n### Build\n\nCompiles a SimplicityHL program and optionally generates witness data.\n\n```sh\nsimply build [OPTIONS]\n```\n\n**Flags:**\n- `--entrypoint \u003cPATH\u003e` - Path to the source file (default: `./src/main.simf`)\n- `--mcpp-inc-path \u003cPATH\u003e` - Path to mcpp include directory (optional, enables C-style preprocessing)\n- `--witness \u003cPATH\u003e` - Path to witness file (optional)\n- `--prune` - Prune the program using the provided witness (may limit reusability)\n- `--target-dir \u003cPATH\u003e` - Output directory for compiled artifacts (default: `./target`)\n\n**Output:** Build artifacts are saved as JSON files containing the compiled program and optional witness data. The build process also displays node bounds and the padding required for your program. Padding represents extra space your program should occupy to compensate for execution resources. Since Bitcoin doesn't have the concept of gas, everything is measured in weight units.\n\n### Run\n\nExecutes a SimplicityHL program with optional witness and arguments.\n\n```sh\nsimply run [OPTIONS]\n```\n\n**Flags:**\n- All flags from `build` command\n- `--param \u003cPATH\u003e` - Path to file containing program arguments (JSON format)\n- `--logging \u003cLEVEL\u003e` - Enable debug logging (`info`, `debug`, or `trace`)\n - `--lock-time \u003cN\u003e` - Transaction lock time (consensus value, default: 0)\n - `--sequence \u003cN\u003e` - Input sequence (consensus value, default: 0)\n\n**Usage:** Useful for testing programs locally before deployment. By default, the run command uses the same code execution engine as Elements/Liquid nodes, making it ideal for testing compatibility with the actual Bitcoin network. If you specify logging, a Rust runner will be used instead, as it supports debugging features and provides more detailed execution information.\n\n### Test\n\nAutomatically discovers and runs test functions in SimplicityHL files.\n\n```sh\nsimply test [OPTIONS]\n```\n\n**Flags:**\n- All flags from `build` command\n- `--logging \u003cLEVEL\u003e` - Enable debug logging for test execution\n\n**Test Discovery:** Finds all `*.simf` files recursively and executes functions named `test_*`.\n\n### Deposit\n\nGenerates a P2TR (Pay-to-Taproot) address for making deposits to a Simplicity program.\n\n```sh\nsimply deposit [OPTIONS]\n```\n\n**Flags:**\n- All flags from `build` command\n\n**Output:** Prints a Bitcoin P2TR address that can receive funds for the compiled program. The generated address is a script-only taproot address that uses an unspendable NUMA key, ensuring the funds can only be spent through the Simplicity program logic.\n\n### Withdraw\n\nSpends a transaction output using a Simplicity program.\n\n```sh\nsimply withdraw [OPTIONS]\n```\n\n**Flags:**\n- All flags from `build` command\n- `--txid \u003cTXID\u003e` - Transaction ID to spend (required)\n- `--destination \u003cADDRESS\u003e` - Destination address for the withdrawal (required)\n- `--dry-run` - Generate transaction without broadcasting (prints hex)\n\n**Usage:** Creates and optionally broadcasts a transaction that spends a UTXO using the compiled program.\n\n### Sign\n\nSigns arbitrary data using BIP340 (Schnorr) and prints the results.\n\n```sh\nsimply sign --message \u003cHEX\u003e [--secret \u003cHEX\u003e]\n```\n\n**Flags:**\n- `--message \u003cHEX\u003e` - Message to sign, hex-encoded (required)\n- `--secret \u003cHEX\u003e` - Secret key (32-byte hex). If omitted, a random key is generated\n\n**Output:**\n- Signature (BIP340) in hex\n- Message (as provided, hex)\n- Public key (x-only) in hex\n- Private key in hex (only printed when generated randomly)\n\n**Examples:**\n```sh\n# Sign with a randomly generated key\nsimply sign --message 48656c6c6f\n\n# Sign with a provided secret key\nsimply sign --message 48656c6c6f --secret e3a1...32-bytes-hex...\n```\n\n## File Formats\n\n### Witness Files\nJSON files containing witness data for program execution:\n```json\n{\n  \"witness\": [...]\n}\n```\n\n### Argument Files\nJSON files containing program arguments:\n```json\n{\n  \"arguments\": [...]\n}\n```\n\n## Examples\n\n**Basic build:**\n```sh\nsimply build --entrypoint my_program.simf\n```\n\n**Build with witness and pruning:**\n```sh\nsimply build --entrypoint main.simf --witness witness.json --prune\n```\n\n**Run with arguments:**\n```sh\nsimply run --entrypoint main.simf --param args.json --logging debug\n```\n\n**Generate deposit address:**\n```sh\nsimply deposit --entrypoint main.simf\n```\n\n**Withdraw funds:**\n```sh\nsimply withdraw --entrypoint main.simf --txid abc123... --destination bc1q...\n```\n\n## Resources\n\n- [SimplicityHL Documentation](https://docs.simplicity-lang.org/simplicityhl-reference/)\n- [Simplicity Specification](https://blockstream.com/simplicity.pdf)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstarkware-bitcoin%2Fsimply","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstarkware-bitcoin%2Fsimply","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstarkware-bitcoin%2Fsimply/lists"}