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.
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.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.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 here | Turnkey | Privy | Coinbase CDP |
|---|---|---|---|
| allowed_primary_types | eth.eip_712.primary_type (2026-09-28) | none recorded (2026-09-28) | none recorded (2026-09-28) |
| allowed_verifying_contracts | eth.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_id | eth.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_allowlist | eth.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_token | eth.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 tuple | none: 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) |
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