OpenChainGraph Suite · ART-816 · ERC-3009 Agent Spend Control

EIP-3009 Agent Spend Gate

Decide one EIP-3009 (ERC-3009, Draft) transferWithAuthorization or receiveWithAuthorization intent against a spend policy you declare and an authorization ledger you paste, before it is signed. The gate returns one decision: SPEND when the intent sits within the declared policy, DENY when it sits outside it, OVER_LIMIT when a declared cap, velocity count or duplicate window is exceeded, and INDETERMINATE when the policy does not declare enough to decide.

ERC-3009 (Draft) Thirteen fixed rules DENY outranks OVER_LIMIT Decimal-string uint256 arithmetic
🔒 All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data — use synthetic or anonymised inputs only.
⚠ This gate decides only against the inputs you paste. It does not verify signatures, recompute digests or read any chain, and the nonce check runs against the pasted ledger only, so on-chain nonce uniqueness stays with the token contract at settlement time. SPEND means within the declared policy; it is not an authorization to move funds and is not proof that funds moved.
Inputs
Each sample is one of the node's conformance fixtures. Pick one to load it, then edit the JSON below.
Keys: authorization (required: variant, from, to, value, validAfter, validBefore, nonce); domain (name, version, chain_id, verifying_contract); policy (agent_address, allowed_chain_ids, allowed_tokens, payee_allowlist, payee_denylist, per_tx_cap, window_caps, velocity, max_validity_seconds, max_future_start_seconds, duplicate_window_seconds, require_receive_for); ledger (entries with from, token, chain_id, nonce, to, value, validBefore, signed_at, status); now_unix. Unknown fields are refused.
Rules placed against the declared policy
Rules not evaluated (absent policy inputs)
Headroom
Exposure
Authorization echo
Receipt
Execution Hash (SHA-256)