OpenChainGraph Suite · ART-700

Authorization Payload Linter

Reads an authorization payload before a key touches it, and reports how that payload stands against a signing policy you declare. Three declared modes. In typed_data the input is the EIP-712 object your wallet would receive from eth_signTypedData_v4. In eip7702_tuple it is a delegation tuple of chain id, delegate address and nonce. In raw_hash it is a bare 32-byte hash about to be signed blind, which raises BLIND_SIGNATURE and stops, because nothing about what is being authorized can be read from it. Classification is string equality of the computed EIP-712 encodeType against canonical type strings, so a struct carrying a known name with a different member list comes back as LOOKALIKE_TYPE and an unknown struct comes back as UNRECOGNIZED instead of a guess. Every check returns FLAGGED, CLEAR or NOT_EVALUATED with the field path, the observed value and the policy value. There are no numeric defaults on this page: every threshold, allowlist, counterparty set and clock reading is yours, and a check whose input you did not declare reports NOT_EVALUATED and is listed separately. This tool performs no chain read, recovers no signer, computes no digest, and never submits anything.

payment_policyZero PIIClient-side onlyNo chain reads
🔒 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 and reliance
This page reports flags against the policy you declared, and a CONFORMS result covers only the checks it could evaluate, so read not_evaluated alongside it. Every chain fact here stays a caller assertion: on-chain nonce state, current allowances and whether an address holds code are inputs you declare, signer recovery and digest recomputation belong to the sibling nodes named under handoffs, agent-counterparty credential scope belongs to art-565, and this node ships compute_proof_ready: ready; see the proof-status note below the results.
Policy Parameters (JSON)
Result
Classification

      
Proof status
This node ships compute_proof_ready: ready: ZK-proven. The shard pins a zkVM execution receipt (risc0/groth16-bn254) whose seal commits to this kernel's source digest, and the result above is hash-committed in the receipt journal and recomputable from the same inputs.
Execution Hash & §4 Artifact
SHA-256 execution hash (JCS canonical, RFC 8785). The Permit sample reproduces the first golden vector in this node's fixture file: 5b490d32b349d6dd…58be12f.

      
Where these policy fields live in an agent wallet

Observation table recorded 2026-09-28 from the research record in this node's build spec (section 7.4). The cells below were not primary-retrieved in this build row, so treat each as a dated observation and confirm against the vendor's current documentation before you rely on it. A wider platform and protocol comparison lives in tools/644.

Policy field hereTurnkeyPrivyCoinbase CDP
allowed_primary_typeseth.eip_712.primary_type (2026-09-28)none recorded (2026-09-28)none recorded (2026-09-28)
allowed_verifying_contractseth.eip_712.message[...] with any() and all() (2026-09-28)field_source ethereum_typed_data_domain (2026-09-28)evmTypedDataVerifyingContract (2026-09-28)
allowed_chain_ids and active_chain_ideth.eip_712.message[...] with any() and all() (2026-09-28)field_source ethereum_typed_data_domain (2026-09-28)evmNetwork (2026-09-28)
spender_allowlist and payee_allowlisteth.eip_712.message[...] with any() and all() (2026-09-28)field_source ethereum_typed_data_message (2026-09-28)none recorded for a typed-data counterparty field (2026-09-28)
max_amount_by_tokeneth.eip_712.message[...] with any() and all() (2026-09-28)field_source ethereum_typed_data_message (2026-09-28)netUSDChange, which needs a price oracle and has no offline equivalent (2026-09-28)
delegate_allowlist for an EIP-7702 tuplenone: a delegation tuple is not EIP-712 (2026-09-28)none: a delegation tuple is not EIP-712 (2026-09-28)none: a delegation tuple is not EIP-712 (2026-09-28)

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 `lint_authorization_payload`. Task: Lint an authorization payload before it is signed against a caller-declared signing policy: classifies EIP-712 typed data by encodeType string equality, reads EIP-7702 tuples, flags a blind hash, and reports every check as FLAGGED, CLEAR or NOT_EVALUATED
Call it with arguments: {"policy_parameters":{"mode":"typed_data","typed_data":{"domain":{"name":"USD Coin","version":"2","chainId":1,"verifyingContract":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},"types":{"EIP712Domain":[{"name":"name","type":"string"},{"name":"version","type":"string"},{"name":"chainId","type":"uint256"},{"name":"verifyingContract","type":"address"}],"Permit":[{"name":"owner","type":"address"},{"name":"spender","type":"address"},{"name":"value","type":"uint256"},{"name":"nonce","type":"uint256"},{"name":"deadline","type":"uint256"}]},"primaryType":"Permit","message":{"owner":"0xe05fcc23807536bee418f142d19fa0d21bb0cff7","spender":"0x1111111111111111111111111111111111111111","value":"1000000","nonce":"0","deadline":"2000000000"}}}}
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.
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-700-authorization-payload-linter.html#p=v1.H4sIAAAAAAAA_wHLAjT9eyJtb2RlIjoidHlwZWRfZGF0YSIsInR5cGVkX2RhdGEiOnsiZG9tYWluIjp7Im5hbWUiOiJVU0QgQ29pbiIsInZlcnNpb24iOiIyIiwiY2hhaW5JZCI6MSwidmVyaWZ5aW5nQ29udHJhY3QiOiIweGEwYjg2OTkxYzYyMThiMzZjMWQxOWQ0YTJlOWViMGNlMzYwNmViNDgifSwidHlwZXMiOnsiRUlQNzEyRG9tYWluIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJzdHJpbmcifSx7Im5hbWUiOiJ2ZXJzaW9uIiwidHlwZSI6InN0cmluZyJ9LHsibmFtZSI6ImNoYWluSWQiLCJ0eXBlIjoidWludDI1NiJ9LHsibmFtZSI6InZlcmlmeWluZ0NvbnRyYWN0IiwidHlwZSI6ImFkZHJlc3MifV0sIlBlcm1pdCI6W3sibmFtZSI6Im93bmVyIiwidHlwZSI6ImFkZHJlc3MifSx7Im5hbWUiOiJzcGVuZGVyIiwidHlwZSI6ImFkZHJlc3MifSx7Im5hbWUiOiJ2YWx1ZSIsInR5cGUiOiJ1aW50MjU2In0seyJuYW1lIjoibm9uY2UiLCJ0eXBlIjoidWludDI1NiJ9LHsibmFtZSI6ImRlYWRsaW5lIiwidHlwZSI6InVpbnQyNTYifV19LCJwcmltYXJ5VHlwZSI6IlBlcm1pdCIsIm1lc3NhZ2UiOnsib3duZXIiOiIweGUwNWZjYzIzODA3NTM2YmVlNDE4ZjE0MmQxOWZhMGQyMWJiMGNmZjciLCJzcGVuZGVyIjoiMHgxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExIiwidmFsdWUiOiIxMDAwMDAwIiwibm9uY2UiOiIwIiwiZGVhZGxpbmUiOiIyMDAwMDAwMDAwIn19fVNIqJbLAgAA