state

Responsibility

Boot an ownerless registry and admit only registration and permanent termination. Rejects retain their original exit.

Dependencies

registry/genesis validates creation; registry/admission and registry/modify validate the two supported operations and their settlement obligations.

Assumptions

The state input carries its datum and exactly one state token under this script. Legacy redeemer and datum encodings remain available for refusal controls.

Invariants

Admission is fixed for the lifetime of an instance. No parameter or redeemer can widen it; custody, migration and registry destruction have no spending path.

Functions

modifyRefusal(
  pins: State,
  actions: List<RequestAction>,
  input: Input,
  tx: Transaction,
) -> Option<String>

Why the cage refuses this Modify of the state input carrying pins, or None when it folds. The spend handler traces exactly this reason and returns False, so a test asserting it asserts the one trace the whole transaction emits — not merely that it was refused.

Search Document