Prototype docs. APIs may change while SDKs and verifier libraries harden.
Bonds
A bond is an operator's on-chain identity anchor.
It ties an operator key to Bitcoin and creates the identity used for attestations, leader selection, and stake accounting.
The bond itself is not the full stake. Separate stake outputs give the bond weight.
Anchor format
The anchor transaction has two protocol outputs:
- output
0is a 330-sat, key-only P2TR quickbreak output; - output
1isOP_RETURN <payload>, with exactly one minimal push and no trailing opcode.
Anchor payload version 1 is 97 bytes:
0x01 || puresign_public_key[64] || stake_redeem_xonly_key[32]
The quickbreak Taproot output key is also the leakable key used by stake punishment leaves. The stake redemption key is derived separately from the unrevealed anchor internal key and committed explicitly in the payload. It is never reused as the punishment key.
Quickbreak
Spending anchor output 0 is a quickbreak. The bond index marks the anchor broken, removes it from future selection, and records QUICKBREAK for matching pending POINT rewards.
A stake redemption does not spend the anchor output and is not a quickbreak.
Weight
Stake snapshots determine how much weight a bond has for a given block context.
See /docs/stake.