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#
Compiler and lowering pages explain how higher-level declarations become scripts and what still needs manual review. This page sits in SilverScript, vProgs, And Based Apps. 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 distinguishes tooling convenience from protocol behavior. SilverScript can author or lower scripts, vProgs can organize based-app execution, and settlement/indexer responsibilities remain part of the application design.
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 TOOL-SILVERSCRIPT-README, TOOL-SILVERSCRIPT-COMPILER, TOOL-SILVERSCRIPT-DECL, RK-TXSCRIPT. 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 SilverScript Compiler And Lowering, the model is built around these anchors: macros can generate successor checks; lowering is current tooling behavior, not consensus itself; builtins and compiler source need public URLs; review generated script shape; protocol behavior still lives in Rusty Kaspa script source. 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. macros can generate successor checks. SilverScript pages help readers author and inspect scripts while preserving the protocol boundary. A compiler or macro can generate useful script structure, but generated output still has to be reviewed against txscript, covenant context, pricing, signing, and negative tests.
2. lowering is current tooling behavior, not consensus itself. SilverScript pages help readers author and inspect scripts while preserving the protocol boundary. A compiler or macro can generate useful script structure, but generated output still has to be reviewed against txscript, covenant context, pricing, signing, and negative tests.
3. builtins and compiler source need public URLs. SilverScript pages help readers author and inspect scripts while preserving the protocol boundary. A compiler or macro can generate useful script structure, but generated output still has to be reviewed against txscript, covenant context, pricing, signing, and negative tests.
4. review generated script shape. SilverScript pages help readers author and inspect scripts while preserving the protocol boundary. A compiler or macro can generate useful script structure, but generated output still has to be reviewed against txscript, covenant context, pricing, signing, and negative tests.
5. protocol behavior still lives in Rusty Kaspa script source. SilverScript pages help readers author and inspect scripts while preserving the protocol boundary. A compiler or macro can generate useful script structure, but generated output still has to be reviewed against txscript, covenant context, pricing, signing, and negative tests.
This mechanism section separates authoring tools, runtime organization, proof workflow, indexer replay, and L1 settlement. Tooling convenience does not become protocol behavior without upstream source support.
How to check it#
| Step | Check | Evidence gate |
|---|---|---|
| 1 | Check macros can generate successor checks. | Read TOOL-SILVERSCRIPT-README, TOOL-SILVERSCRIPT-COMPILER, TOOL-SILVERSCRIPT-DECL; label tooling/runtime behavior separately from L1 settlement or protocol enforcement. |
| 2 | Check lowering is current tooling behavior, not consensus itself. | Read TOOL-SILVERSCRIPT-README, TOOL-SILVERSCRIPT-COMPILER, TOOL-SILVERSCRIPT-DECL; label tooling/runtime behavior separately from L1 settlement or protocol enforcement. |
| 3 | Check builtins and compiler source need public URLs. | Read TOOL-SILVERSCRIPT-README, TOOL-SILVERSCRIPT-COMPILER, TOOL-SILVERSCRIPT-DECL; label tooling/runtime behavior separately from L1 settlement or protocol enforcement. |
| 4 | Check review generated script shape. | Read TOOL-SILVERSCRIPT-README, TOOL-SILVERSCRIPT-COMPILER, TOOL-SILVERSCRIPT-DECL; label tooling/runtime behavior separately from L1 settlement or protocol enforcement. |
| 5 | Check protocol behavior still lives in Rusty Kaspa script source. | Read TOOL-SILVERSCRIPT-README, TOOL-SILVERSCRIPT-COMPILER, TOOL-SILVERSCRIPT-DECL; label tooling/runtime behavior separately from L1 settlement or protocol enforcement. |
When using this page for tooling or based-app work, identify which layer authors scripts, observes ordering, computes state, produces proof material, submits settlement, and recovers after restart. Tool output and runtime architecture need L1 source or settlement evidence before they become protocol claims.
Related Pages#
- silverscript-authoring
- silverscript-vprogs-based-apps
- declarations-and-covenant-macros