State Chain
Governance state chain reads and writes.
Governance state chain reads and writes. The state chain is a single linear
chain, separate from the account block-lattice: each block carries one or more
key-value operations, and applying them in order produces the network's shared
configuration — the sys.* keys that pin the network ID, the tokenomics
parameters, the protocol phase, the authorized minter, the timekeepers, and the
DAO keyset itself.
Writes are authorized by threshold multisig over the block hash. Blocks whose
operations all fall inside the oracle's allowed key prefix are checked against
the oracle keys; everything else is checked against the DAO keyset. sys.* keys
can be updated but never deleted.
GETPOSTGETGETGETGETGET
/statechain/blocksGet block range — A window of the state chain starting at `start`, plus the node's total block count so a client can page to the end.
/statechain/blocksSubmit state chain block — Applies a governance block to the state chain and gossips it to peers. Each block carries one or more set/delete ops and the signatures authorizing them. Authorization is by threshold multisig, chosen by what the block writes: if an oracle config exists and **every** op targets the oracle's allowed key prefix, the block is checked against the oracle keys; otherwise it is checked against the DAO keyset from `GET /statechain/keyset`. Mixed blocks are rejected. Oracle-scoped keys are additionally write-once — a key that already exists cannot be overwritten. Submitting a block the node already has at that index is a no-op success.
/statechain/blocks/{index}Get block by index
/statechain/keysetGet DAO keyset — The current DAO multisig keyset — the keys and threshold that authorize state-chain writes outside the oracle's key prefix. This is the `sys.dao_keyset` value; the threshold can never be lowered below 2.
/statechain/kvList all KV entries — The state chain's key-value state as a map, optionally narrowed to a key prefix. Paging is by sorted key order, so it is stable across calls.
/statechain/kv/{key}Get state value — Reads one key from the state chain's key-value state. This is an exact-key lookup; use `GET /statechain/kv?prefix=` to scan a prefix. Keys are restricted to `[a-z0-9_.-]`, so a key is always a single path segment.
/statechain/tipGet tip block — The newest block on the state chain. Its `index` is the current height, and any block you submit must sit at `index + 1` with `prev_hash` equal to its `hash`.