Char NetworkChar Network

Char Network

Developer Documentation

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 0 is a 330-sat, key-only P2TR quickbreak output;
  • output 1 is OP_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.