An agent proposes a payment; a deterministic ten-rule check against the mandate decides. On authorize the node issues a one-use authorization bound to the exact request digest, with a short validity window. At commit time a second mode verifies the committed request against that authorization. Every rejection names the failing rule. No human step.
Approval GateOne-Use AuthorizationCommit VerificationInteger Minor UnitsZero PIIClient-side only
🔒 All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data; use synthetic or anonymised inputs only.
Scope & reliance
Authorize mode evaluates a fixed ten-rule order and lists every failing rule; the first is the primary reason. The issued authorization is bound to the exact request digest and mandate digest, valid from as_of to as_of + ttl (1 to 900 s, clipped to the mandate expiry), and its authorization_id doubles as the rail's single-use nonce (0x-prefixed 32-byte hex). Verify_commit recomputes the id, re-digests the committed request and checks the window. Amounts are integers in minor units; the mandate cap converts by integer string arithmetic through a curated minor-unit exponent table (an unknown currency is refused, an over-precise cap is refused, never rounded). Timestamps are UTC with a trailing Z only. Declared exclusions: single use is enforced by the payment rail through the nonce, not by this stateless node; budget state is caller-supplied (spent_minor); the mandate signature is not verified here, that is art-01 or art-31's job; an absent rail allowlist allows no rail. This node ships compute_proof_ready: deferred; proving is async queue work, not a per-wave gate.
Mandate, state and proposed payment
Edit any field and run. The sample is the clean authorize from the build spec; the commit demo presents its authorization back inside the window; the reject demo exceeds the per-payment cap.
Result
Proof status
This node ships compute_proof_ready: deferred: the decision above is a deterministic, reproducible function of the declared inputs (the same kernel runs server-side and inside this page), and a zkVM compute-integrity proof is queued as async follow-up work.
Execution Hash & §4 Artifact
SHA-256 execution hash (JCS canonical, RFC 8785):
Ask your agent
Copy this paragraph into Claude, OpenClaw, or any MCP-aware agent to run this exact tool, with this sample, and verify the artifact.
Run the AINumbers MCP tool `authorize_payment_against_mandate`. Task: Automated payment approval gate with no human step: a fixed ten-rule mandate check lists every failing rule with a named reason, issues a one-use authorization bound to the exact request digest with a window clipped to the mandate expiry, and re-verifies the committed request at commit time.
Call it with arguments: {"policy_parameters":{"mode":"authorize","as_of":"2026-10-01T15:00:00Z","ttl_seconds":60,"mandate":{"mandate_id":"m-1","payer_ref":"acct:alice","payee_ref":"merchant:42","currency":"USD","max_amount":"250.00","issued_at":"2026-10-01T00:00:00Z","expires_at":"2026-10-08T00:00:00Z","purpose":"groceries"},"extensions":{"total_budget_minor":100000,"spent_minor":72000,"allowed_rails":["x402-exact-evm"],"verified_payees":["merchant:42"],"revoked_at":null},"request":{"payer_ref":"acct:alice","payee_ref":"merchant:42","amount_minor":24999,"currency":"USD","rail":"x402-exact-evm","purpose":"groceries"}}}
Verify before trusting: call `verify_execution_hash` on mcp.ainumbers.co (https://mcp.ainumbers.co/mcp) with the parameter `claimed_hash` set to the returned `execution_hash`, passing the full artifact the run returned (the object containing `policy_parameters` + `output_payload` + `execution_hash`; equivalently `policy_parameters` + `output_payload` with `claimed_hash`), not the bare hash string, or re-run the in-page WebMCP tool `authorize_payment_against_mandate`.
Return the ledger link https://ledger.ainumbers.co/ so a human can re-verify without contacting us.
PII rule: All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data — use synthetic or anonymised inputs only.
Open the tool with the sample prefilled: https://ainumbers.co/chaingraph/art-703-mandate-authorization-gate.html#p=v1.H4sIAAAAAAAA_wFDArz9eyJtb2RlIjoiYXV0aG9yaXplIiwiYXNfb2YiOiIyMDI2LTEwLTAxVDE1OjAwOjAwWiIsInR0bF9zZWNvbmRzIjo2MCwibWFuZGF0ZSI6eyJtYW5kYXRlX2lkIjoibS0xIiwicGF5ZXJfcmVmIjoiYWNjdDphbGljZSIsInBheWVlX3JlZiI6Im1lcmNoYW50OjQyIiwiY3VycmVuY3kiOiJVU0QiLCJtYXhfYW1vdW50IjoiMjUwLjAwIiwiaXNzdWVkX2F0IjoiMjAyNi0xMC0wMVQwMDowMDowMFoiLCJleHBpcmVzX2F0IjoiMjAyNi0xMC0wOFQwMDowMDowMFoiLCJwdXJwb3NlIjoiZ3JvY2VyaWVzIn0sImV4dGVuc2lvbnMiOnsidG90YWxfYnVkZ2V0X21pbm9yIjoxMDAwMDAsInNwZW50X21pbm9yIjo3MjAwMCwiYWxsb3dlZF9yYWlscyI6WyJ4NDAyLWV4YWN0LWV2bSJdLCJ2ZXJpZmllZF9wYXllZXMiOlsibWVyY2hhbnQ6NDIiXSwicmV2b2tlZF9hdCI6bnVsbH0sInJlcXVlc3QiOnsicGF5ZXJfcmVmIjoiYWNjdDphbGljZSIsInBheWVlX3JlZiI6Im1lcmNoYW50OjQyIiwiYW1vdW50X21pbm9yIjoyNDk5OSwiY3VycmVuY3kiOiJVU0QiLCJyYWlsIjoieDQwMi1leGFjdC1ldm0iLCJwdXJwb3NlIjoiZ3JvY2VyaWVzIn19K2gwwEMCAAA