OpenChainGraph Suite · ART-592 · x402 / EIP-3009 Crypto Primitive
x402 Domain & Nonce Window Checker
Checks an EIP-3009 TransferWithAuthorization's domain separation against a caller-supplied expectation, and its replay-defense-adjacent fields. expected_chain_id/expected_verifying_contract are mandatory inputs, distinct from the chainId/verifyingContract actually baked into the signed domain. A mismatch on either is a hard refuse, never a soft warning. Also checks the validAfter/validBefore window against a caller-supplied now_unix, and the nonce's format (bytes32, non-zero).
EIP-712 / EIP-3009Domain separation, hard refuse on mismatchNo signature recovery, no digest recompute
๐ 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
Terminal node of the x402-spend-evidence chain (art-590→591→592). Combines with the digest and recovery results into the x402_spend_evidence pack. See x402-spend-evidence chain.
What This Does and Does Not Prove
This node compares caller-supplied fields against each other and against a caller-supplied reference time. It does not recompute a signature digest or recover a signer (those are the sibling x402-eip712-digest-recomputer and x402-signer-recovery-verifier nodes), and it never queries a chain. On-chain nonce uniqueness is enforced by the token contract at settlement time, not by this verifier. This tool confirms the authorization is well-formed and not self-reported as already used. It cannot confirm the nonce has never been spent on-chain.
Expected Domain (mandatory policy parameters, never defaulted)
Distinct from the domain actually baked into the signature below. Never inferred from it. A mismatch on either field is a hard refuse (SPEC-X402-CRYPTO-CORE-1-2026-08-09.md ยง6).
Signed Domain (the fields actually baked into the signature)
Window & Nonce
This kernel never queries a chain. Supply this only if the caller already checked its own on-chain/off-chain record.
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 `check_x402_domain_nonce_window`. Task: Check an EIP-3009 authorization's domain (expected vs.
Call it with arguments: {"policy_parameters":{"expected_chain_id":1,"expected_verifying_contract":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chainId":1,"verifyingContract":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","validAfter":0,"validBefore":2000000000,"now_unix":1000000000,"nonce":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce_already_used":false}}
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 `check_x402_domain_nonce_window`.
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-592-x402-domain-nonce-window-checker.html#p=v1.H4sIAAAAAAAA_wFVAar-eyJleHBlY3RlZF9jaGFpbl9pZCI6MSwiZXhwZWN0ZWRfdmVyaWZ5aW5nX2NvbnRyYWN0IjoiMHhBMGI4Njk5MWM2MjE4YjM2YzFkMTlENGEyZTlFYjBjRTM2MDZlQjQ4IiwiY2hhaW5JZCI6MSwidmVyaWZ5aW5nQ29udHJhY3QiOiIweEEwYjg2OTkxYzYyMThiMzZjMWQxOUQ0YTJlOUViMGNFMzYwNmVCNDgiLCJ2YWxpZEFmdGVyIjowLCJ2YWxpZEJlZm9yZSI6MjAwMDAwMDAwMCwibm93X3VuaXgiOjEwMDAwMDAwMDAsIm5vbmNlIjoiMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxIiwibm9uY2VfYWxyZWFkeV91c2VkIjpmYWxzZX2quByjVQEAAA