Documentation Index
Fetch the complete documentation index at: https://docs.sudont.xyz/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Every request that traverses Sudont terminates in a typed verdict. The verdict is the final output of The Diamond — Constitution + Cortex + Cage collapsed into a single decision the agent loop can branch on. Four variants cover the full surface; reason codes qualify each one with a stable, machine-readable token. The verdict itself is defined by theVerdictDecision enum on the RPC event channel; the
swarm observes the same value through the ReAct error payload on
non-Allow outcomes, and through an EIP-191 attestation on Allow.
The Four Verdicts
Allow
The Cage’s simulated state diff matches the agent’s declared intent envelope, the Constitution accepts every recipient and target, and freshness is within tolerance. Sudont signs an approval attestation and forwards the original signed transaction to the upstream RPC. The agent records the artifact and continues; no remediation is required.Deny
Surfaced to the swarm asBLOCK. The simulated outcome violates a Constitution rule,
exceeds a policy bound (slippage, price impact), or pays an unauthorized recipient. Sudont never
forwards the transaction to the network and emits a deterministic ReAct error carrying the
reason_code and the violated rule. The agent must rewrite the transaction — fix the route,
narrow the recipient, lower the size — before retrying.
Interrogate
The simulation surfaces ambiguity the Judge will not unilaterally resolve: amount slightly above delegated authority, recipient missing from a soft allowlist, or a state-freshness gap that needs operator confirmation. Sudont holds the request and returns an actionable challenge in the ReAct payload. The agent inspectsactionable_feedback, applies the requested correction, and
resubmits; a human operator can also clear the hold from the cage UI.
Diagnose
Reached only throughsudont_diagnoseRawTransaction. The Judge runs the full simulate → evaluate
→ verdict pipeline but never forwards the result to network egress, regardless of outcome. Use
this verdict to dry-run an unsigned candidate, validate a bundle ahead of submission, or replay a
historical transaction against the current Constitution. The response is always the full ReAct
envelope; no attestation is signed.
Canonical Reason Codes
Every non-Allow verdict carries a reason_code token from the ReasonCode vocabulary. The
five codes below are the ones the agent loop branches on most often. All codes are stable and
serde-renamed; agents should match on the string, not the discriminant.
| Code | Fires when | Agent next step |
|---|---|---|
SUDONT_POLICY_DENY | Constitution evaluation rejects the simulated outcome — exceeded price-impact ceiling, blocked program, or any first-order policy violation that is not specifically a recipient or target case. | Rewrite the transaction to satisfy the violated rule_id. Lower size, change route, or pick a different venue. |
SUDONT_UNAUTHORIZED_RECIPIENT | Simulated value flows into an address that is not in the Constitution’s recipient allowlist — the canonical Mythos / trojan-swap signature. | Reroute to an approved vault or treasury. Do not retry with the same destination. |
SUDONT_UNSUPPORTED_TARGET | The transaction calls a program or contract outside the Constitution’s program allowlist. The Cortex labels it as a CUSTOM SVM PROGRAM CALL or analogous EVM target. | Use only allowlisted programs. Adding a target requires an operator policy change, not an agent retry. |
SUDONT_EGRESS_UNAVAILABLE | The Judge granted Allow but the upstream RPC egress channel is missing, misconfigured, or unreachable. | Surface to the operator; the agent cannot recover this on its own. The transaction is held, not denied. |
SUDONT_STALE_HEAD | The freshness gate detects that the working-set state is older than the configured tolerance for the request mode (pending vs sealed). | Wait for the next hydration cycle and resubmit. Persistent staleness is an operator concern. |
SUDONT_SLIPPAGE_EXCEEDED, SUDONT_PRICE_IMPACT_EXCEEDED,
SUDONT_PRIVATE_ROUTE_REQUIRED, SUDONT_INTENT_PARSE_FAILED, SUDONT_INTENT_OUTCOME_MISMATCH,
SUDONT_INSUFFICIENT_LIQUIDITY, SUDONT_UNKNOWN_STATE, and SUDONT_INTERNAL_SIMULATION_ERROR —
is enumerated in the RPC method reference. The five codes above
cover the verdict-defining cases that every agent integration must handle.
How Verdicts Compose with the Loop
The verdict is the only contract between Sudont and the swarm. Everything else — the simulated state diff, the route table, the µs phase breakdown — is observability. The agent’s branching logic should read exactly two fields:- The verdict variant (
Allow/Deny/Interrogate/Diagnose). - The first
reason_codeindata.sudont.violations.

