Compatibility and failure boundaries
Terms used in this lesson
- UNIT
- Ducat’s dollar-pegged stablecoin, the asset a borrower can create against bitcoin collateral.
- Vault
- A set of Bitcoin outputs and spending rules that holds collateral and represents the current loan state.
- Runes
- A Bitcoin metaprotocol that assigns fungible-token meaning to transaction outputs through off-chain interpretation.
- Runestone
- Transaction data interpreted by the Runes protocol to describe token creation or allocation.
- Validator
- Software or a participant that independently checks state transitions under a system's rules. The exact role depends on the protocol being discussed.
- Cenotaph
- A malformed or intentionally unrecognized Runes message whose affected token balances are burned under the protocol’s rules.
- Identifier
- Identifier: a value used to distinguish one request, object, or participant from another.
- OP_RETURN
- A Bitcoin Script operation commonly used to create an unspendable output carrying a small amount of data.
- Transaction ID
- The identifier produced by hashing a Bitcoin transaction’s non-witness serialization.
Wallet construction, indexer rules, network configuration, confirmation handling, and version compatibility determine whether every participant reconstructs the same UNIT state.
Loading lesson visuals...
Learn the idea
Compatibility means every component derives the same result from the same bytes and chain history. Metaprotocol state is application state, such as UNIT allocations and vault records, reconstructed by external Ducat and Runes rules from Bitcoin transactions rather than stored as native Bitcoin balances. A parser turns runestone bytes into Rune meaning. The production mainnet Runes activation boundary is block 840,000 inclusive under the ord specification; a deployment must also pin its exact ord revision. An action version selects the expected Ducat transaction layout. A profile supplies network, keys, and asset identity. A protocol anchor is a profile-identified on-chain reference whose committed content names the configuration and signer identities components accept. A confirmation policy says how many blocks must cover a transaction before derived state is treated as settled. A version boundary is a declared activation height or full reindex point at which every component changes rules together. A conformance vector is one shared input plus its expected parsed output.
Pin parser versions
Wallet, validator, and protocol tests must agree on runestone and cenotaph behavior.
Inspect every idea above to open it.
Components can agree on transaction bytes and still interpret external Runes or Ducat rules differently.
The questions unlock after every required learning activity
Inspect every guided idea, open the worked example, rebuild its mechanism, and complete the deterministic lesson tool. Your progress is saved automatically.