In brief
This page is source-sensitive. Treat application, covenant, proof, and readiness wording as bounded by the listed public sources and Open Questions.
What this page explains#
The decision guide asks for the smallest model that carries the invariant: ordinary transaction, covenant, ZK covenant, based app, or vProgs-style execution. This page sits in Toccata. It gives the topic a plain-language handle first, then shows the working idea, the mechanism, the source trail, and any limits that still matter. This category treats Toccata as a cluster of related changes rather than one feature. Transaction v1, compute budget, script pricing, lanes, sequencing commitments, covenants, and ZK have to be read together when an application depends on them.
The writing follows a simple Kaspa documentation pattern: answer the practical question first, then link outward for details. The closest public sources for this page are DOC-TOCCATA-DECISION-GUIDE, DOC-TOCCATA, DOC-TOCCATA-COVENANT-STATE, DOC-TOCCATA-INLINE-ZK, DOC-TOCCATA-BASED-APPS. Local notes can help choose what to explain, but public-facing references resolve to upstream websites, repositories, papers, release pages, or docs.
How to think about it#
The practical model starts by naming the layer that owns the topic: wallet use, node operation, consensus, transaction validation, Toccata script behavior, tooling, or research. From there, the page shows which public source can support the explanation and where the explanation becomes incomplete.
For Toccata Decision Guide, the model is built around these anchors: start with the state-layout question: many parallel live UTXOs or one shared app state; ordinary payments do not need covenant state; simple covenants carry direct successor rules; ZK covenants compress or hide selected checks; based apps use lane ordering and settlement while vProgs-style stacks add runtime and indexer responsibility. This model is useful, but it does not encode every constant, branch, error type, or edge case. Those details belong in the source path and the source notes.
How it works#
1. start with the state-layout question: many parallel live UTXOs or one shared app state. This point borrows transaction-state vocabulary, but the page treats it as supporting context for its own category. The explanation names the owning layer, the evidence surface, and the source path that can settle whether the claim is current.
2. ordinary payments do not need covenant state. Covenants make Toccata stateful in the UTXO sense: a spend consumes an existing output, script logic inspects the transaction context, and the successor output must carry the allowed next state. The page should keep covenant state, covenant ID, authorization context, indexer head tracking, and negative successor checks separate.
3. simple covenants carry direct successor rules. Covenants make Toccata stateful in the UTXO sense: a spend consumes an existing output, script logic inspects the transaction context, and the successor output must carry the allowed next state. The page should keep covenant state, covenant ID, authorization context, indexer head tracking, and negative successor checks separate.
4. ZK covenants compress or hide selected checks. Covenants make Toccata stateful in the UTXO sense: a spend consumes an existing output, script logic inspects the transaction context, and the successor output must carry the allowed next state. The page should keep covenant state, covenant ID, authorization context, indexer head tracking, and negative successor checks separate.
5. based apps use lane ordering and settlement while vProgs-style stacks add runtime and indexer responsibility. Lanes, subnetwork IDs, gas, and payload fields are application-facing transaction surfaces. The page explains what must survive serialization, signing, wallet handling, RPC submission, indexer decoding, and replay. It also separates reserved or special contexts from ordinary user operations so app designers do not borrow a field without checking its source meaning.
This mechanism section separates current release/source details from proposal-shaped KIP text. Transaction v1, script pricing, lanes, sequencing commitments, covenants, and ZK are related, but each has its own source boundary.
How to check it#
| Step | Check | Evidence gate |
|---|---|---|
| 1 | Check start with the state-layout question: many parallel live UTXOs or one shared app state. | Read DOC-TOCCATA-DECISION-GUIDE, DOC-TOCCATA, DOC-TOCCATA-COVENANT-STATE; separate current release/source behavior from KIP PR or docs-orientation material. |
| 2 | Check ordinary payments do not need covenant state. | Read DOC-TOCCATA-DECISION-GUIDE, DOC-TOCCATA, DOC-TOCCATA-COVENANT-STATE; separate current release/source behavior from KIP PR or docs-orientation material. |
| 3 | Check simple covenants carry direct successor rules. | Read DOC-TOCCATA-DECISION-GUIDE, DOC-TOCCATA, DOC-TOCCATA-COVENANT-STATE; separate current release/source behavior from KIP PR or docs-orientation material. |
| 4 | Check ZK covenants compress or hide selected checks. | Read DOC-TOCCATA-DECISION-GUIDE, DOC-TOCCATA, DOC-TOCCATA-COVENANT-STATE; separate current release/source behavior from KIP PR or docs-orientation material. |
| 5 | Check based apps use lane ordering and settlement while vProgs-style stacks add runtime and indexer responsibility. | Read DOC-TOCCATA-DECISION-GUIDE, DOC-TOCCATA, DOC-TOCCATA-COVENANT-STATE; separate current release/source behavior from KIP PR or docs-orientation material. |
When using this page for Toccata material, separate deployed release/source details from open KIP or PR-shaped details. Transaction v1, lanes, sequencing commitments, script pricing, covenants, and ZK each need their own source boundary before the page presents them as current behavior.
Related Pages#
- activation-releases-and-params
- toccata
- toccata-source-walkthrough