Who owns a state validator rule

A contributor changing a registry rule wants one source owner beside the behavior it enforces. The active contract has one admission boundary, one fold, and one settlement path. This page maps those responsibilities and names the verification each change needs.

The current contract

A registry integrator can register an unknown key and retire an active key permanently. The five other historical encodings are refused before approval or trie effects. The original broader source is archived on preserve/m2/pre-m1-source-removal; its custody and deletion paths are removed from the active source. Old deployed identities are refused, without migration.

flowchart TD
    S["State validator"] --> A["Fixed admission boundary<br/>Refuse excluded actions"]
    A -->|"Supported"| M["Continuation and pins"]
    M -->|"Ordered requests"| F["Fold and trie"]
    F -->|"Collect obligations"| D["Token duties"]
    D -->|"Check"| C["Discharge<br/>Carrier and burn source"]
    C -->|"Pay request owners"| P["Settlement"]
    P -->|"All checks hold"| OK["Accept"]

The boundary is fixed in the compiled state validator. Application approval alone is insufficient: caller-constructed requests, mint paths and mixed batches also pass through state admission. Witness policies require that state validator in the same transaction. Request rejection and retraction retain their applicable refund obligations; this carve does not settle the separate protected-rejection model question.

Rule Source owner
Dispatch, state identity and named fold refusal state
Two admitted tags and action well-formedness registry/admission
State token genesis registry/genesis
Continuation, pins, batch checks and check order registry/modify
Request carriage, phase, approval and supported trie move registry/fold
Retirement leaf refusals registry/trie
Active-token delivery, retirement burn and returned deposit registry/duty
Named carrier and single burn-source checks registry/discharge
Positional reject refunds and per-payee deposit sums registry/settlement
One traced reason and false result registry/refusal

Evidence and limits

The candidate results distinguish Lean proofs, source tests, actual compiled-context evaluation and connected ledger execution. Removing source changes compiled identities, so earlier comparisons and receipts remain historical evidence. No source or build check establishes ledger acceptance or a budget bound.

The pinned aiken docs reference is generated from the same source as the site. Each owner documents responsibility, dependencies, assumptions and invariants. The existing documentation checks reconcile public declarations with generated members and plant missing-documentation and stale-link faults. They establish presence and correspondence, not the truth of a behavioral claim. Read the validator API reference for every generated module.