Output Schema
{
"example": {
"authorization": {
"from": "0x8ec901f7e2710163387d70950f680f1ea2269d15",
"nonce": "0xa1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4",
"nonce_used": false,
"primary_type": "TransferWithAuthorization",
"seconds_until_expiry": 110,
"to": "0x6264191d6dd5427435b5e829077842e130ef1fc8",
"valid_after": "0",
"valid_before": "1793518925",
"valid_now": true,
"value_raw": "20000",
"value_units": "0.02",
"value_usd": 0.02,
"window_s": 1793518925
},
"block_number": 53364734,
"block_timestamp": 1793518815,
"chain": "base",
"chain_id": 8453,
"digest": {
"eip712_digest": "0xa5eb1a2bb1b6283c2e0b10f6fe4e68449fb7b157ae8956dc5fd00e35cfdcb420",
"note": "eip712_digest = keccak256(0x1901 || domainSeparator || structHash): what eth_signTypedData_v4 signs; compare it with your wallet's prompt",
"struct_hash": "0x242f86ef909386979cd3fc1238cf25ad012e338444e5917a2f4dd32c1e1f829a"
},
"domain": {
"chain_id": 8453,
"expected": {
"chain_id": 8453,
"name": "USD Coin",
"separator": "0x02fa7265e7c5d81118673727957699e4d68f74cd74b7db77da710fe8a2c7834f",
"version": "2"
},
"matches_onchain": true,
"name": "USD Coin",
"separator_computed": "0x02fa7265e7c5d81118673727957699e4d68f74cd74b7db77da710fe8a2c7834f",
"verifying_contract": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"version": "2"
},
"headline": "SIGN on Base: payTo matches, amount matches, asset matches, network base matches, nonce unused, valid for 110 s, domain separator verified on-chain, canonical USDC, balance 16.71874 covers 0.02",
"kind": "authorization-check",
"pay_to": {
"address": "0x6264191d6dd5427435b5e829077842e130ef1fc8",
"is_contract": false
},
"payer": {
"balance_raw": "16718740",
"balance_units": "16.71874",
"sufficient": true
},
"quote": {
"amount_raw": "20000",
"asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"given": true,
"matches": {
"amount": true,
"asset": true,
"network": true,
"pay_to": true
},
"max_timeout_s": 120,
"network": "base",
"pay_to": "0x6264191d6dd5427435b5e829077842e130ef1fc8"
},
"rail": "x402-authorization-check-1",
"reads": {
"calls": 10,
"elapsed_ms": 5,
"rpc": "fixture"
},
"token": {
"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"canonical_usdc": true,
"decimals": 6,
"domain_separator_onchain": "0x02fa7265e7c5d81118673727957699e4d68f74cd74b7db77da710fe8a2c7834f",
"is_contract": true,
"name": "USD Coin",
"symbol": "USDC",
"version": "2"
},
"typed_data": {
"domain": {
"chainId": 8453,
"name": "USD Coin",
"verifyingContract": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"version": "2"
},
"message": {
"from": "0x8ec901f7e2710163387d70950f680f1ea2269d15",
"nonce": "0xa1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4",
"to": "0x6264191d6dd5427435b5e829077842e130ef1fc8",
"validAfter": "0",
"validBefore": "1793518925",
"value": "20000"
},
"primaryType": "TransferWithAuthorization",
"types": {
"EIP712Domain": [
{
"name": "name",
"type": "string"
},
{
"name": "version",
"type": "string"
},
{
"name": "chainId",
"type": "uint256"
},
{
"name": "verifyingContract",
"type": "address"
}
],
"TransferWithAuthorization": [
{
"name": "from",
"type": "address"
},
{
"name": "to",
"type": "address"
},
{
"name": "value",
"type": "uint256"
},
{
"name": "validAfter",
"type": "uint256"
},
{
"name": "validBefore",
"type": "uint256"
},
{
"name": "nonce",
"type": "bytes32"
}
]
}
},
"verdict": {
"checks_ok": [
"payTo matches",
"amount matches",
"asset matches",
"network base matches",
"nonce unused",
"valid for 110 s",
"domain separator verified on-chain",
"canonical USDC",
"balance 16.71874 covers 0.02"
],
"level": "SIGN",
"reasons": [],
"sign": true
}
},
"type": "json"
}