Decode an EVM transaction: method, events, transfers API

Decoded EVM transaction on Base, Ethereum, Arbitrum, OP Mainnet, Polygon or Avalanche: status, block time, sender, target, value and fee in native coin and USD (current price), method and arguments, decoded events, ERC-20/721 token transfers, net token flows per address and a one-line summary. ABIs from Sourcify verified contracts or the Sourcify 4byte database. Ethereum receipts cover about the last 2 days. Sources: PublicNode and official chain JSON-RPC, Uniswap v3 pools.

$0.005 per call  USDC over x402 v2 on Base, Polygon, Arbitrum, Avalanche or Sei. No signup, no API key. Requests that fail or match nothing are not charged.

Endpoint

GET https://chain.kit-rx.com/v1/chain/tx-decode

Parameters

NameTypeRequiredDescription
chainstringyesChain by name, alias or chain id: base (8453), ethereum (1), arbitrum (42161), optimism (10), polygon (137), avalanche (43114). e.g. base
hashstringyesTransaction hash (0x + 64 hex characters). e.g. 0xa8970f8f69f1dbedac711cfdec10dbd690e7c039304aed363fc843c4fd88d3b1

Example request

https://chain.kit-rx.com/v1/chain/tx-decode?chain=base&hash=0xa8970f8f69f1dbedac711cfdec10dbd690e7c039304aed363fc843c4fd88d3b1

Without payment the server answers 402 Payment Required with the price (5000 atomic USDC) in the PAYMENT-REQUIRED header. Any x402 v2 client pays and retries automatically. A request with no parameters runs this example.

curl -i "https://chain.kit-rx.com/v1/chain/tx-decode?chain=base&hash=0xa8970f8f69f1dbedac711cfdec10dbd690e7c039304aed363fc843c4fd88d3b1"

Pay from an agent

AgentCash: fetch the URL. OpenDexter MCP: x402_fetch. Kit Rx MCP server: https://chain.kit-rx.com/mcp. Code:

import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.BUYER_KEY) });
const pay = wrapFetchWithPayment(fetch, client);
const res = await pay("https://chain.kit-rx.com/v1/chain/tx-decode?chain=base&hash=0xa8970f8f69f1dbedac711cfdec10dbd690e7c039304aed363fc843c4fd88d3b1");
console.log(await res.json());

Example response

{
  "query": {
    "chain": "base",
    "hash": "0xa8970f8f69f1dbedac711cfdec10dbd690e7c039304aed363fc843c4fd88d3b1"
  },
  "result": {
    "chain": "base",
    "chain_id": 8453,
    "hash": "0xa8970f8f69f1dbedac711cfdec10dbd690e7c039304aed363fc843c4fd88d3b1",
    "status": "success",
    "summary": "Swapped 0.1475 WETH for 258 USDC",
    "block": 57562921,
    "timestamp": "2026-11-15T00:35:59.000Z",
    "from": "0x3623C63AB138Af28b7F3005E9906FEd7a2A618B1",
    "to": "0x678Aa4bF4E210cf2166753e054d5b7c31cc7fa86",
    "to_name": "SmartRouter",
    "contract_created": null,
    "nonce": 242154,
    "value": {
      "amount": "0",
      "symbol": "ETH",
      "usd": 0
    },
    "fee": {
      "amount": "0.000001466323151794",
      "symbol": "ETH",
      "usd": 0.002541,
      "gas_used": 137681,
      "gas_limit": 1000000,
      "effective_gas_price_gwei": 0.010625,
      "l1_data_fee": "0.000000003462389113"
    },
    "native_usd_price": 1732.73,
    "method": {
      "selector": "0x04e45aaf",
      "name": "exactInputSingle",
      "signature": "exactInputSingle((address,address,uint24,address,uint256,uint256,uint160))",
      "decoded_with": "sourcify_verified_abi",
      "args": [
        {
          "name": "params",
          "type": "(address,address,uint24,address,uint256,uint256,uint160)",
          "value": {
            "tokenIn": "0x4200000000000000000000000000000000000006",
            "tokenOut": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
            "fee": 100,
            "recipient": "0x3623C63AB138Af28b7F3005E9906FEd7a2A618B1",
            "amountIn": "147489999000000000",
            "amountOutMinimum": "0",
            "sqrtPriceLimitX96": "3313737701918105378226176"
          }
        }
      ]
    },
    "token_transfers": [
      {
        "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "symbol": "USDC",
        "standard": "erc20",
        "from": "0x72AB388E2E2F6FaceF59E3C3FA2C4E29011c2D38",
        "to": "0x3623C63AB138Af28b7F3005E9906FEd7a2A618B1",
        "amount": "257.999859"
      }
    ],
    "token_transfers_total": 2,
    "net_flows": [
      {
        "address": "0x3623C63AB138Af28b7F3005E9906FEd7a2A618B1",
        "role": "sender",
        "name": null,
        "changes": [
          {
            "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
            "symbol": "USDC",
            "amount": "257.999859"
          },
          {
            "asset": "0x4200000000000000000000000000000000000006",
            "symbol": "WETH",
            "amount": "-0.147489999"
          }
        ]
      }
    ],
    "events": [
      {
        "log_index": 11,
        "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "name": "Transfer",
        "signature": "Transfer(address,address,uint256)",
        "decoded_with": "standard_abi",
        "args": [
          {
            "name": "from",
            "type": "address",
            "value": "0x72AB388E2E2F6FaceF59E3C3FA2C4E29011c2D38"
          },
          {
            "name": "to",
            "type": "address",
            "value": "0x3623C63AB138Af28b7F3005E9906FEd7a2A618B1"
          },
          {
            "name": "value",
            "type": "uint256",
            "value": "257999859"
          }
        ]
      }
    ],
    "events_total": 3,
    "events_truncated": false,
    "contracts": [
      {
        "address": "0x678Aa4bF4E210cf2166753e054d5b7c31cc7fa86",
        "name": "SmartRouter",
        "proxy_type": null,
        "implementation_name": null
      }
    ]
  },
  "sources": [
    {
      "name": "Base JSON-RPC via PublicNode",
      "url": "https://base-rpc.publicnode.com"
    },
    {
      "name": "Sourcify verified contract repository",
      "url": "https://sourcify.dev/"
    }
  ],
  "notes": [
    "Amounts are decimal strings in token units (raw integers when decimals are unknown). USD values use the current price from the chain's deepest Uniswap v3 wrapped-native/USDC pool, not the price at transaction time."
  ],
  "attribution": [
    "Blockchain data read through PublicNode public RPC endpoints (https://www.publicnode.com, operated by Allnodes Inc.); figures are derived by Kit Rx (aggregated, decoded or converted), not a raw RPC feed. Not affiliated with or endorsed by PublicNode or Allnodes.",
    "Contract metadata and function/event signatures from Sourcify (https://sourcify.dev), the open-source smart contract verification service. Kit Rx is not affiliated with or endorsed by Sourcify."
  ],
  "generated_at": "2026-11-15T01:14:48.045Z"
}

Kit Rx EVM Gas, Token Scan & Tx Decode: Onchain tools for AI agents: multi-chain gas prices, token risk scan and DEX price, calldata and EIP-712 signature safety checks, transaction decoding, ABIs, wallet balances and ENS, paid per call over x402. Machine-readable: OpenAPI, llms.txt, /.well-known/x402, agent skills.