x402 Forge Catalog

Catalog / erc20-calldata-decode

ERC-20 calldata decoder and approval check

Before a wallet signs a token transaction, shows who gets what and warns when it grants unlimited or huge spending rights.

Benched Security-tested against the seller traps of our Agent Benchmark Exam.

Buy $1.00

What it does

Decodes ERC-20 (EIP-20) transfer, approve and transferFrom calldata per the Solidity ABI spec: selector, addresses (20-byte hex without 0x), raw and human amount, and flags unlimited (2^256-1) or very large approvals with a risk level and machine-readable reason_code. Offline; does not read the chain or know which token contract is called.

Example input
{"data":"0x095ea7b3000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","decimals":18}
Answer
{"ok":true,"result":{"valid":true,"reason":null,"standard":"EIP-20","function":"approve","signature":"approve(address,uint256)","selector":"0x095ea7b3","from_hex40":null,"to_hex40":null,"spender_hex40":"d8da6bf26964af9d7eed9e03e53415d37aa96045","amount":"115792089237316195423570985008687907853269984665640564039457584007913129639935","amount_human":"115792089237316195423570985008687907853269984665640564039457.584007913129639935","decimals":18,"unlimited_approval":true,"very_large_approval":true,"risk":"high","reason_code":"unlimited_approval","trailing_bytes":0},"warnings":["approval amount is 2^256-1, the conventional unlimited allowance"]}
Try it free
/try/erc20-calldata-decode

Buy

Price $1.00, once. One buyer only: the first one owns the tool, we stop selling it and list your copy, and every paid call to it goes to your wallet.

  1. Pay with an x402 walletThe buy link is https://forge.fizzl.eu/forge/packages/erc20-calldata-decode?format=zip. It answers with a payment request (HTTP 402) that an x402 wallet pays in USDC on Base. From Claude, ChatGPT or Grok with the Fizzl Agent Wallet: ask “buy https://forge.fizzl.eu/forge/packages/erc20-calldata-decode?format=zip”. From code:
    const pay = wrapFetchWithPayment(fetch, client); // see /llms.txt
    const zip = await pay("https://forge.fizzl.eu/forge/packages/erc20-calldata-decode?format=zip");
  2. Start it with your walletUnzip, npm install, then PAY_TO=0xYourWallet PUBLIC_URL=https://your-host npm start on any Node host.
  3. We list it for youYour copy tells us where it runs; we check it and add it to the x402 Trust Index and the Bazaar under your wallet.