Skip to content

SimplicityHL getting started #5

@imaginator

Description

@imaginator

This is someone's first hands-on with Simplicity. It's also the page we send people before a hackathon to ensure their dev environment is setup and working.

We need a good tutorial at https://github.com/BlockstreamResearch/simplicity-lang-org/edit/main/docs/getting-started/simplicityhl.md

Dev Environment Setup

  • Explain required environment (Rust toolchain, Docker images, Bitcoin/Elements/Liquid node).
  • Provide installation steps for SimplicityHL compiler and supporting CLI tools.
  • Show how to configure the local environment for Liquid testnet/signet (e.g., elementsd setup, funding addresses).
  • Verify setup with a minimal “compile and inspect contract” example.

Writing a Contract

  • Provide a walkthrough of a simple but meaningful contract (e.g., “only spendable after block height X” or a 2-of-2 multisig).

Testing and Weight Analysis

  • Explain how to measure contract weight and resource cost (e.g., command-line tools or analysis reports).

Broadcasting to Liquid

  • Explain how to take the compiled Simplicity contract, produce its Taproot commitment, create a transaction that locks Liquid funds to that commitment, and broadcast that transaction so the contract is live on-chain.
  • Document interaction with Elements RPC (or CLI) for broadcasting.
  • Provide examples of a successful contract deployment on Liquid testnet/signet. (maybe include https://liquid.network/ link to observe)

Monitoring Execution and Spending

  • Explain how to track contract outputs on the Liquid network.
  • Show how to query mempool and block confirmations.
  • Document how to observe a contract spend: what gets revealed (script path, contract bitcode) and how to verify correctness.
  • Provide guidance on tools/block explorers useful for monitoring.

Debugging and Failure Analysis

Document common errors:

  • Invalid compilation / type mismatch.
  • Excessive contract weight.
  • Incorrect Taproot commitment.
  • Transaction rejected by mempool.

Provide step-by-step debugging strategies:

  • Inspecting contract bitcode.
  • Checking sighash and signature validity.
  • Tracing contract evaluation failures.
  • Include troubleshooting examples for failed broadcasts and rejected spends.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions