Glossary
Action — A single transaction recipe in a manifest: its inputs, outputs, and
the witnesses each input supplies. An action inside a contract template is
identical to a top-level one, except that its formulas may also reference
instance.*.
allow_change — An action's bound on undeclared change: "none" (the
default), "lbtc_only", or "any". Every output a transaction carries must be
written in the manifest; the network fee is the one exception.
Blinding factor — The 32-byte scalar hiding an asset or an amount in a
confidential output. An output's blinding block pins what the builder would
otherwise pick at random — needed by any covenant that verifies its own UTXOs as
Pedersen commitments.
CMR (Commitment Merkle Root) — The 32-byte hash of a compiled Simplicity program. Doubles as the program's on-chain identity.
Compute spec — How a param's value is produced instead of being prompted for:
a bare formula string, or a structured expr, tapleaf, script_hash,
wallet, simf_fn or hook.
Contract template — A typed contract definition with named fields and
actions, under the top-level contract_templates map. Each deployment of a
template is one instance, with its own field values.
Constructor — An action carrying a create_instance block, which creates a
new instance when it runs. There is no separate flag: the block is what
makes the action a constructor, and it is only legal inside a contract template.
Covenant — A script that constrains how its output may be spent — e.g. by introspecting the spending transaction's inputs and outputs.
debug_symbols — The simplicity_hl flag deciding whether covenants compile
with debug information. It changes every program's CMR, and therefore every
address derived from it, so two tools that disagree about it see different
contracts.
Field — A contract template's compile-time value, baked into a covenant
script at deploy time and stored per deployment as part of the instance.
Changing one changes the script's address. Referenced as instance.NAME.
Instance — The field values of one deployment of a contract template. A wallet must keep them: without them it cannot rebuild the contract's addresses.
Manifest — The static JSON protocol definition (txmanifest.json).
NUMS point — "Nothing Up My Sleeve" — a public key with no known private key, used as a Taproot internal key to make the key-path provably unspendable.
Param — An action's runtime value: prompted for, computed, or set by a hook.
It affects only the transaction being built, never an address. Referenced as
params.NAME. params is the only runtime value namespace.
provided_inputs — UTXOs pre-filled alongside an instance, letting a wallet
spend a counterparty's output it never indexed.
PSET — Partially Signed Elements Transaction (the Elements equivalent of a PSBT).
State — The live on-chain UTXO set for one instance, updated after every broadcast. How a wallet stores it is its own business; the format only requires that it survives between actions.
Tapleaf compute spec — A compute spec ("type": "tapleaf") that compiles a
.simf file with params to produce a covenant script hash.
UTXO type — A named on-chain state with a known script, so a wallet can recognise the protocol's outputs.
Witness — A value supplied to satisfy a Simplicity program when spending: a signature, a path selector, a leaf selector, or a computed value. Witnesses are declared on the input whose script they satisfy.
$comment / $schema — Authoring keys, legal on any object at any depth and
carrying no protocol meaning. A tool strips both before interpreting a manifest.