Skip to main content

BlockReason

Paused | Revoked | Expired | Unauthorized
ProgramNotAllowed | TokenNotAllowed
OverTxCap | OverDailyCap
OverSpendCap | OverSpendDailyCap
SlippageExceeded

Gate order, fail-closed, first match wins. Written from MandateEngine.gate. Stub venues run this same stack; they fake liquidity, never enforcement.

#GateBlockReason
1state == PausedPaused
2state == RevokedRevoked
3now >= expiresTsExpired
4caller ≠ operatorUnauthorized
5program not on allowlistProgramNotAllowed
6involved mint not on allowlistTokenNotAllowed
7spend: amount > spendPerCallCapOverSpendCap
8spend: spendToday + amount > spendDailyCapOverSpendDailyCap
9non-spend: notional > perTxCapOverTxCap
10non-spend: spentToday + notional > dailyCapOverDailyCap
11swap: minOut above expected, or expected below policy minSlippageExceeded
12CPI / venue apply(accept)

Spend returns after 7–8 and skips 9–11. Admin auth failures throw (transaction fails). Operator gate failures succeed as ActionRefused.

UTC day is floor(unix_ts / 86400), not a rolling 24h window. Source: MandateEngine.gate and repo docs/gates.md.