Public Inputs And ABI¶
What This Page Explains¶
This page explains the prover-facing and verifier-facing public boundary for one transfer.
Why It Matters¶
Readers need to know what stays hidden, what becomes public, and how boundary bytes flow into BCH transactions.
Plain-Language Concept¶
A prover consumes hidden witness data plus bounded public inputs, then emits proof carrier bytes used by verifier acceptance and transaction assembly.
Technical Detail¶
What The Prover Consumes¶
- hidden witness material (private note/transition data)
- public transition commitments encoded as Public Inputs version 1 (PIv1)
What Stays Hidden vs Public¶
- Hidden: witness secrets and private transition internals.
- Public: verifier-facing public inputs and proof envelope bytes needed for acceptance and carrier transport.
PIv1 And PBv1 In One Transfer¶
- concept name: Public Inputs version 1 (PIv1)
- literal wire magic:
"PIV1" - concept name: Proof Blob version 1 (PBv1)
- literal wire magic:
"PBV1"
PIv1 carries bounded public commitments for verification. PBv1 carries proof and related envelope sections for verifier/runtime processing and transaction carriage.
Bounded Lane Context¶
The active profile is Trustless Relation Query 1 (TRQ1), bounded for current milestone constraints. This page describes the current published profile, not arbitrary-format or arbitrary-profile guarantees.
Code Mapping¶
- Shared boundary package:
- packages/zk-boundary/src/*
- Runtime boundary codecs:
- standalone/prover-runtime/src/boundary/*
- Runtime relation plumbing:
- standalone/prover-runtime/src/runtime/stark_rq_relation_witness_v1.ts
- standalone/prover-runtime/src/runtime/stark_rq_relation_v1.ts