Kaspa One Stop

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#

A covenant app needs a reliable way to find the current head after accepted activity and restart. This page sits in Covenants. 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 keeps the UTXO model visible while explaining stateful patterns. A covenant does not mutate account storage in place; it validates a spend and the successor output that carries the next state.

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 RK-INDEXES, RK-VIRTUAL-PIPELINE, DOC-TOCCATA-COVENANT-STATE, RK-COVENANT-ID. 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 Covenant Head Indexer Starter, the model is built around these anchors: accepted evidence is the indexer input; head recovery requires replay discipline; stale-head rejection is app and wallet hygiene rather than consensus validity; endpoint disagreement needs investigation as observed evidence; indexer state is app evidence, not consensus authority. 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. accepted evidence is the indexer input. Developer integration pages explain an interface by naming the source object behind it. API, RPC, wRPC, SDK, wallet, and indexer surfaces are useful only when they preserve the fields and evidence that the protocol layer actually defines. Accepted-state evidence, replay behavior, schema choices, and endpoint disagreement must be checked separately.

2. head recovery requires replay discipline. Developer integration pages explain an interface by naming the source object behind it. API, RPC, wRPC, SDK, wallet, and indexer surfaces are useful only when they preserve the fields and evidence that the protocol layer actually defines. Accepted-state evidence, replay behavior, schema choices, and endpoint disagreement must be checked separately.

3. stale-head rejection is app and wallet hygiene rather than consensus validity. Developer integration pages explain an interface by naming the source object behind it. API, RPC, wRPC, SDK, wallet, and indexer surfaces are useful only when they preserve the fields and evidence that the protocol layer actually defines. Accepted-state evidence, replay behavior, schema choices, and endpoint disagreement must be checked separately.

4. endpoint disagreement needs investigation as observed evidence. Developer integration pages explain an interface by naming the source object behind it. API, RPC, wRPC, SDK, wallet, and indexer surfaces are useful only when they preserve the fields and evidence that the protocol layer actually defines. Accepted-state evidence, replay behavior, schema choices, and endpoint disagreement must be checked separately.

5. indexer state is app evidence, not consensus authority. Developer integration pages explain an interface by naming the source object behind it. API, RPC, wRPC, SDK, wallet, and indexer surfaces are useful only when they preserve the fields and evidence that the protocol layer actually defines. Accepted-state evidence, replay behavior, schema choices, and endpoint disagreement must be checked separately.

This mechanism section keeps the covenant rule, the spent output, the successor output, covenant ID, authorization context, and indexer responsibility separate. Local case studies stay local experience unless rewritten against public sources.

How to check it#

StepCheckEvidence gate
1Check accepted evidence is the indexer input.Read RK-INDEXES, RK-VIRTUAL-PIPELINE, DOC-TOCCATA-COVENANT-STATE; verify spent-output context, successor-output rule, covenant ID, and negative cases separately.
2Check head recovery requires replay discipline.Read RK-INDEXES, RK-VIRTUAL-PIPELINE, DOC-TOCCATA-COVENANT-STATE; verify spent-output context, successor-output rule, covenant ID, and negative cases separately.
3Check stale-head rejection is app and wallet hygiene rather than consensus validity.Read RK-INDEXES, RK-VIRTUAL-PIPELINE, DOC-TOCCATA-COVENANT-STATE; verify spent-output context, successor-output rule, covenant ID, and negative cases separately.
4Check endpoint disagreement needs investigation as observed evidence.Read RK-INDEXES, RK-VIRTUAL-PIPELINE, DOC-TOCCATA-COVENANT-STATE; verify spent-output context, successor-output rule, covenant ID, and negative cases separately.
5Check indexer state is app evidence, not consensus authority.Read RK-INDEXES, RK-VIRTUAL-PIPELINE, DOC-TOCCATA-COVENANT-STATE; verify spent-output context, successor-output rule, covenant ID, and negative cases separately.

When using this page for covenant design, verify the spent output, script context, authorization rule, successor output, state encoding, and negative cases separately. Indexer head tracking and local design notes are supporting evidence, not replacements for the covenant rule.

  • covenant-design-patterns
  • covenants
  • counter-covenant-starter
Source-linkedReviewed 2026-07-09 · 5 public sources · 1 open questionEvidence and sources
Evidence and sources5 public sources · reviewed 2026-07-09
Covenant StatePublic source
docs.kaspa.org/toccata/covenant-state
Technical details

Reference key: DOC-TOCCATA-COVENANT-STATE

Recheck this public source before relying on exact current details.