Docs

Execution

Denial reasons

Every machine-readable code an agent can receive.


Plain Denial Reasons returns a machine-readable reason, so an agent can correct its action or stop. All failed checks are returned, not only the first.

Cover#

CodeMeaning
CERT_MISSINGNo certificate
ISSUER_UNKNOWNUnknown issuer
SIGNATURE_INVALIDInvalid signature
CERT_REVOKEDCertificate revoked
CERT_EXPIREDCertificate expired
OUT_OF_SCOPEOutside cover scope
COVER_LIMITAbove remaining cover
EXCLUDEDExcluded by certificate

Mandate#

CodeMeaning
NO_MANDATENo mandate
AGENT_FROZENAgent frozen
SESSION_REVOKEDSession key revoked
TX_CAPAbove transaction cap
DAILY_ALLOWANCEAbove daily allowance
ASSET_BLOCKEDAsset not allowed
DESTINATION_BLOCKEDDestination not allowed
OUTSIDE_WINDOWOutside time window

Simulation#

CodeMeaning
SIM_BALANCEInsufficient balance

Example#

A swap to a destination that is not on the allowlist. Cover passes, and the mandate still enforces.

json
{
  "mode": "dry_run",
  "outcome": "denied",
  "reasons": ["DESTINATION_BLOCKED"],
  "execution": null
}

Each entry in the response's cover and mandate arrays also carries the check name, whether it passed, a readable detail, and its code.