{"openapi":"3.1.0","info":{"title":"Agent EVM State Batch","version":"0.1.0","description":"Paid, bounded read-only EVM state checks. Choose a batch-capacity tier: 25 checks for $0.05, 50 for $0.10, or 100 for $0.15 per request on Base."},"servers":[{"url":"https://evmstate.com"}],"paths":{"/v1/state-batch":{"post":{"summary":"Execute up to 25 read-only EVM checks in one paid request","description":"Payment: $0.05 USDC on Base via x402. All checks in the batch use one captured block per chain. Results are all-or-nothing, saved for 30-day recovery after settlement, and are RPC responses rather than cryptographic state proofs.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["requestId","checks"],"properties":{"requestId":{"type":"string","format":"uuid","description":"Client-generated random UUIDv4 recovery key; retain it to retrieve this exact result for 30 days."},"checks":{"type":"array","minItems":1,"maxItems":25,"items":{"type":"object","required":["id","chain","type"],"properties":{"id":{"type":"string"},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"]},"type":{"type":"string","enum":["native_balance","erc20_balance","allowance","contract_code","block_number","eth_call"]}}}}}}}}},"responses":{"200":{"description":"Successful, settled batch result. Values use JSON-RPC hex encoding; retain requestId to recover the exact response for 30 days.","content":{"application/json":{"schema":{"type":"object","required":["requestId","results","snapshotBlocks","verification","recoveryUrl","expiresAt"],"properties":{"requestId":{"type":"string","format":"uuid"},"results":{"type":"array","items":{"type":"object","required":["id","chain","type","blockNumber","value"],"properties":{"id":{"type":"string"},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"]},"type":{"type":"string","enum":["native_balance","erc20_balance","allowance","contract_code","block_number","eth_call"]},"blockNumber":{"type":"string","pattern":"^0x[0-9a-fA-F]+$"},"value":{"description":"Successful JSON-RPC result, hex encoded for the supported reads."}}}},"snapshotBlocks":{"type":"object","additionalProperties":{"type":"string","pattern":"^0x[0-9a-fA-F]+$"}},"verification":{"type":"string","const":"each result is a successful JSON-RPC response"},"recoveryUrl":{"type":"string","format":"uri"},"expiresAt":{"type":"string","format":"date-time"}}}}}},"400":{"description":"Invalid batch"},"402":{"description":"x402 payment required"},"413":{"description":"Request body too large"},"503":{"description":"RPC unavailable; retry after the upstream recovers"}}}},"/v1/state-batch/50":{"post":{"summary":"Execute up to 50 read-only EVM checks in one paid request","description":"Payment: $0.10 USDC on Base via x402. All checks in the batch use one captured block per chain. Results are all-or-nothing, saved for 30-day recovery after settlement, and are RPC responses rather than cryptographic state proofs.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["requestId","checks"],"properties":{"requestId":{"type":"string","format":"uuid","description":"Client-generated random UUIDv4 recovery key; retain it to retrieve this exact result for 30 days."},"checks":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"object","required":["id","chain","type"],"properties":{"id":{"type":"string"},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"]},"type":{"type":"string","enum":["native_balance","erc20_balance","allowance","contract_code","block_number","eth_call"]}}}}}}}}},"responses":{"200":{"description":"Successful, settled batch result. Values use JSON-RPC hex encoding; retain requestId to recover the exact response for 30 days.","content":{"application/json":{"schema":{"type":"object","required":["requestId","results","snapshotBlocks","verification","recoveryUrl","expiresAt"],"properties":{"requestId":{"type":"string","format":"uuid"},"results":{"type":"array","items":{"type":"object","required":["id","chain","type","blockNumber","value"],"properties":{"id":{"type":"string"},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"]},"type":{"type":"string","enum":["native_balance","erc20_balance","allowance","contract_code","block_number","eth_call"]},"blockNumber":{"type":"string","pattern":"^0x[0-9a-fA-F]+$"},"value":{"description":"Successful JSON-RPC result, hex encoded for the supported reads."}}}},"snapshotBlocks":{"type":"object","additionalProperties":{"type":"string","pattern":"^0x[0-9a-fA-F]+$"}},"verification":{"type":"string","const":"each result is a successful JSON-RPC response"},"recoveryUrl":{"type":"string","format":"uri"},"expiresAt":{"type":"string","format":"date-time"}}}}}},"400":{"description":"Invalid batch"},"402":{"description":"x402 payment required"},"413":{"description":"Request body too large"},"503":{"description":"RPC unavailable; retry after the upstream recovers"}}}},"/v1/state-batch/100":{"post":{"summary":"Execute up to 100 read-only EVM checks in one paid request","description":"Payment: $0.15 USDC on Base via x402. All checks in the batch use one captured block per chain. Results are all-or-nothing, saved for 30-day recovery after settlement, and are RPC responses rather than cryptographic state proofs.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["requestId","checks"],"properties":{"requestId":{"type":"string","format":"uuid","description":"Client-generated random UUIDv4 recovery key; retain it to retrieve this exact result for 30 days."},"checks":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","required":["id","chain","type"],"properties":{"id":{"type":"string"},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"]},"type":{"type":"string","enum":["native_balance","erc20_balance","allowance","contract_code","block_number","eth_call"]}}}}}}}}},"responses":{"200":{"description":"Successful, settled batch result. Values use JSON-RPC hex encoding; retain requestId to recover the exact response for 30 days.","content":{"application/json":{"schema":{"type":"object","required":["requestId","results","snapshotBlocks","verification","recoveryUrl","expiresAt"],"properties":{"requestId":{"type":"string","format":"uuid"},"results":{"type":"array","items":{"type":"object","required":["id","chain","type","blockNumber","value"],"properties":{"id":{"type":"string"},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"]},"type":{"type":"string","enum":["native_balance","erc20_balance","allowance","contract_code","block_number","eth_call"]},"blockNumber":{"type":"string","pattern":"^0x[0-9a-fA-F]+$"},"value":{"description":"Successful JSON-RPC result, hex encoded for the supported reads."}}}},"snapshotBlocks":{"type":"object","additionalProperties":{"type":"string","pattern":"^0x[0-9a-fA-F]+$"}},"verification":{"type":"string","const":"each result is a successful JSON-RPC response"},"recoveryUrl":{"type":"string","format":"uri"},"expiresAt":{"type":"string","format":"date-time"}}}}}},"400":{"description":"Invalid batch"},"402":{"description":"x402 payment required"},"413":{"description":"Request body too large"},"503":{"description":"RPC unavailable; retry after the upstream recovers"}}}}}}