Keyboard shortcuts

Press โ† or โ†’ to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Covenant UTXO types

๐Ÿ“ Draft. This chapter has not been reviewed yet โ€” content may be incomplete or change.

Problem. Define an on-chain state whose address is a Taproot output built from one or more Simplicity programs.

๐Ÿšง This recipe is a stub. Outline of what it will cover:

  • The script block as the tool reads it: type: "simplicity", a source path to the .simf file, and a compile_params map wiring manifest params onto the program's param::* names (e.g. { "PUB_KEY": "PUBKEY" }).
  • How the tool turns that into an address: compile the .simf โ†’ CMR โ†’ a Taproot output with a NUMS internal key, so the key-path is unspendable and every spend goes through the script.
  • canonical_cmr: the CMR with params zeroed โ€” a stable identifier a wallet uses to recognize the program independent of instance parameters.
  • Covenant address determinism: same .simf + same params โ†’ same address, always. The P2TR(NUMS, tapbranch(...)) construction.
  • extra_leaves for appending additional taproot leaves.

See Spec.md ยง14 "Covenant Address Determinism" in the meantime.