PUBLIC UNSIGNED EVM DATA · DEVELOPER TOOL · NO WALLET CONNECTION

Read the approval before anyone signs it.

ERC-20 calldata preflight decodes one unsigned transfer or allowance-changing call into its method, address arguments and raw integer amount. It flags approve(spender, 2²⁵⁶−1), which may grant a spender an effectively unlimited token allowance. Your token's deployed code, transaction state and chain are not checked. Nothing is signed or transmitted by the example below. No chain transaction is executed by viewing this page or the free example.

Inspect the free synthetic JSON example ↗ Inspect the paid route's unsigned 402 quote ↗ Audit the actual source ↗
0.010000 USDC

Price for one buyer-authorized paid GET. Base mainnet, Circle native USDC (chain 8453). No subscription.

HTTP 400 before pay

Unsupported selector, malformed hexadecimal bytes, wrong ABI length, or incorrect address padding are rejected without requesting payment.

Static, offline logic

No JSON-RPC, token approvals, wallet signature, transaction submission, monitoring or balance lookup.

One reproducible example

An ERC-20 approve(address spender,uint256 amount) call begins with selector 0x095ea7b3, followed by a 32-byte padded spender address and a 32-byte integer. The sample below approves the illustrative dead address for the maximum possible unsigned 256-bit integer.

0x095ea7b3
000000000000000000000000000000000000000000000000000000000000dead
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

These are three display lines; the actual calldata is one continuous hexadecimal string. The free example's machine-readable fields include:

{
  "kind": "evm_erc20_unsigned_calldata_preflight",
  "selector": "0x095ea7b3",
  "method": "approve",
  "decoded": {
    "spender": "0x000000000000000000000000000000000000dead",
    "amountAtomic": "115792089237316195423570985008687907853269984665640564039457584007913129639935"
  },
  "allowanceUnlimited": true,
  "warnings": [{"code": "UNLIMITED_ALLOWANCE"}],
  "noWalletOrBlockchainUsed": true
}

Illustrative deterministic data, not a test on a real user wallet or a completed purchase. Amounts are raw atomic integers; without a known token contract and decimals they must not be displayed as final token units.

For agents: one paid structured JSON response

For a nonsecret unsigned call, use one optional calldata=0x… query parameter. Omitting it analyses the synthetic example instead. Never send secrets, typed messages, a transaction signature or any private key.

curl -i 'https://vm5-openapi-x402.onrender.com/v1/erc20-calldata-preflight'

# Expected without payment: HTTP 402
# PAYMENT-REQUIRED: base64 x402 v2 exact quote
# network: eip155:8453
# amount: 10000 atomic native Circle USDC = 0.010000 USDC

The PAYMENT-REQUIRED header is a quote, not a paid sale. Only after the buyer's own authorized, successfully settled x402 payment does the hosted service return the paid report with an HTTP 200 and payment response. The payment recipient is the original one-human-owner VM1 public EVM address 0x4e3106520E40af30870caFE78da1B1e7110eD98E.

This route is publicly listed on 402 Index. Its PayAPI seller review was pending as of 24 October 2026. Neither public listing nor an unsigned HTTP 402 is evidence of an independent paid customer; no purchase is claimed for this new route.

Included methods

Important limits: Selector collisions, malicious custom token implementations, NFT methods, permit, token metadata, decimals, revocations, spender identity and actual allowance balances are not verified. A warningCount=0 result is not proof a transaction is safe. Decode locally or read the open-source implementation if you do not need a hosted, paid HTTP response.

Already have an ERC-20 receipt event log, not a transaction call?

The distinct ERC-20 Transfer / Approval event-log decoder is designed for a different ABI surface: four public 32-byte words (topic0, topic1, topic2, and data) from a canonical 3-topic ERC-20 log. Unlike the approve(address,uint256) calldata above, it reads a purportedly emitted Approval or Transfer event and reports indexed owner/spender or sender/recipient and raw atomic value. It flags unlimited Approval values and zero addresses. It does not fetch or authenticate a real onchain receipt, identify a deployed token contract, read a current allowance, or support NFT indexed-tokenID events.

This distinct event product uses exact x402 v2 payment of 10,000 atomic native Circle USDC (0.01 USDC) on Base mainnet to the same original VM1 public receive-only address. Bad, partial or unsupported input fails without payment. A no-input paid request uses a transparently fictional Approval event; the free sample may already meet your needs. As of 24 October 2026 the PayAPI seller application is pending, and zero independent purchases of this new event product are verified. A successful HTTP 402 quote or public listing is not proof of a paid sale, token legitimacy or transaction safety.

Need the actual current Base USDC approval, not unsigned calldata?

Our distinct new native Circle USDC allowance snapshot performs genuine read-only Base mainnet JSON-RPC calls to the fixed official Circle USD Coin address 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913. It samples allowance(owner, spender) and balanceOf(owner) at the same current block, returns exact six-decimal USDC amounts, and highlights maximum-uint256 approvals and allowances larger than the owner's currently observed balance. Neither value proves that a contract or spender is safe, nor that future balances will stay the same.

Real Base 8453 state

Fixed public RPC endpoints, contract and chain. No arbitrary token, RPC URL, account login or private key input.

0.010000 native Circle USDC

One buyer-authorized x402 v2 GET, paid to the existing original VM1 public MetaMask address. No subscription and no wallet connection to inspect a quote.

400/429/503 before payment

Malformed address pairs, rate limits or unavailable/partial public RPC return an unpaid error rather than an incomplete paid report.

To examine a specific public address pair, supply owner and spender together as two regular 0x-prefixed 40-hex-character EVM addresses; omit both for one known public original VM1 owner and an illustrative dead-address spender. The free example does not call a blockchain and is explicitly invented; the actual paid route does fetch live state before requesting the buyer's authorization. No user signs or changes token approvals on the hosted API.

curl -i 'https://vm5-openapi-x402.onrender.com/v1/base-usdc-allowance?owner=0x1111111111111111111111111111111111111111&spender=0x2222222222222222222222222222222222222222'

# After a complete successful Base read, HTTP 402 unpaid:
# network: eip155:8453
# native Circle USDC amount: 10000 atomic = 0.010000 USDC
# payTo: 0x4e3106520E40af30870caFE78da1B1e7110eD98E
# All paid JSON reports require a real buyer-authorized x402 settlement.

The seller's PayAPI Market review was pending as of 24 October 2026. The valid 402 quote and healthy public 402 Index page are not evidence of outside purchases; zero independent purchases are verified for this new snapshot SKU. Reports are not a smart-contract audit, phishing/spender validation, authenticated wallet-owner confirmation, light-client state proof, risk guarantee or investment advice. The blockchain can change immediately after the quoted block.

Need a larger EVM or x402 QA job?

VM5 Delivery Lab offers AI-assisted, human-owned fixed-scope API contract tests, unsigned payment-preflight checks and reproducible regression fixtures. For a real customer project, first agree in writing on scope, acceptance tests, code rights, edits, payout rail, eligibility and cancellation/refund rules. No charge for an initial sanitized inquiry; do not upload client secrets.

← All VM5 Delivery Lab tools · Machine-readable developer guide · Original AI-assisted source, one human beneficial owner, no invented orders or audit certification.