{
  "service": "Kit Rx EVM Gas, Token Scan & Tx Decode",
  "tagline": "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.",
  "summary": "Gas oracle across Base, Ethereum, Arbitrum, Optimism, Polygon and Avalanche with USD costs; token risk scan (owner, mint/pause/blacklist functions, proxy, liquidity) and on-chain DEX price; pre-signing safety for calldata and EIP-712 typed data (Permit, Permit2, EIP-3009); human-readable transaction decoding; verified ABIs via Sourcify; wallet balances with USDC by chain; ENS and Basename resolution. Each call is one x402 v2 payment in USDC on Base, Polygon, Arbitrum, Avalanche or Sei; no signup or API key. Requests that fail or match nothing are not charged.",
  "payment": {
    "protocol": "x402 v2",
    "scheme": "exact",
    "network": "eip155:8453",
    "also_accepted_networks": [
      "eip155:137",
      "eip155:42161",
      "eip155:43114",
      "eip155:1329"
    ],
    "asset": "USDC",
    "payTo": "0xAf8E0A8a8A0A8f65831b2dD0FFe0c1B804698D70",
    "facilitator": "https://facilitator.payai.network",
    "charged_only_on_success": true
  },
  "docs": {
    "openapi": "https://chain.kit-rx.com/openapi.json",
    "llms": "https://chain.kit-rx.com/llms.txt",
    "html": "https://chain.kit-rx.com/docs"
  },
  "mcp": {
    "url": "https://chain.kit-rx.com/mcp",
    "transport": "streamable-http",
    "registry_name": "com.kit-rx.api/kitrx"
  },
  "endpoints": [
    {
      "id": "chain.gas",
      "method": "GET",
      "url": "https://chain.kit-rx.com/v1/chain/gas",
      "price_usd": "$0.002",
      "price_atomic_usdc": "2000",
      "title": "EVM gas fees and USD transaction costs (6 chains)",
      "description": "Live gas fees and estimated USD transaction costs on Base, Ethereum, Arbitrum, OP Mainnet, Polygon and Avalanche: base fee and next-block estimate, priority fee p25/p50/p75 over 10 blocks, gas price, 10-block base-fee trend, suggested max fee, and USD cost of a native transfer, ERC-20 transfer and swap (upper-bound rollup L1 fees included), plus the cheapest chain per action. Sources: JSON-RPC via PublicNode (public RPC fallback); prices from on-chain Uniswap v3 pools.",
      "params": [
        {
          "name": "chains",
          "required": false,
          "description": "Comma-separated chains by name or chain id: base (8453), ethereum (1), arbitrum (42161), optimism (10), polygon (137), avalanche (43114). Default: all six.",
          "example": "base,ethereum,polygon",
          "type": "string"
        },
        {
          "name": "speed",
          "required": false,
          "description": "Priority-fee level used for suggested fees and costs: slow (p25), standard (p50) or fast (p75). Default standard.",
          "example": "standard",
          "type": "string",
          "enum": [
            "slow",
            "standard",
            "fast"
          ]
        }
      ],
      "example": "https://chain.kit-rx.com/v1/chain/gas?chains=base%2Cethereum%2Cpolygon&speed=standard"
    },
    {
      "id": "chain.calldata-decode",
      "method": "GET",
      "url": "https://chain.kit-rx.com/v1/chain/calldata-decode",
      "price_usd": "$0.002",
      "price_atomic_usdc": "2000",
      "title": "EVM calldata decoder with pre-signing risk flags",
      "description": "Decodes EVM calldata before signing: function signature, selector, named arguments, candidate signatures for ambiguous selectors, one level of bundled calls (multicall, Multicall3, ERC-4337 execute, Safe execTransaction, multiSend), token symbol and decimals, and risk flags with reasons for unlimited approvals, setApprovalForAll, permits, transferFrom, admin calls and delegatecall. Sources: Sourcify ABIs and 4byte signatures, JSON-RPC via PublicNode.",
      "params": [
        {
          "name": "data",
          "required": true,
          "description": "Transaction calldata, 0x-prefixed hex with a 4-byte selector; at most 16,384 hex digits (8 KB).",
          "example": "0x095ea7b3000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
          "type": "string"
        },
        {
          "name": "to",
          "required": false,
          "description": "Contract the transaction is sent to. When given, its Sourcify-verified ABI (following a proxy to its implementation) decodes the call, and token symbol, decimals and contract-code checks are added.",
          "example": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "type": "string"
        },
        {
          "name": "chain",
          "required": false,
          "description": "Chain of the transaction by name or id: base (8453), ethereum (1), arbitrum (42161), optimism (10), polygon (137), avalanche (43114). Default base when to is given.",
          "example": "base",
          "type": "string"
        }
      ],
      "example": "https://chain.kit-rx.com/v1/chain/calldata-decode?data=0x095ea7b3000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff&to=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&chain=base"
    },
    {
      "id": "chain.sign-inspect",
      "method": "GET",
      "url": "https://chain.kit-rx.com/v1/chain/sign-inspect",
      "price_usd": "$0.002",
      "price_atomic_usdc": "2000",
      "title": "EIP-712 signature request inspector (permits, x402)",
      "description": "Inspects EIP-712 typed data before signing: kind (EIP-2612 or DAI permit, Permit2 allowance or transfer, EIP-3009 transfer authorization as used by x402, Seaport order, Safe transaction, generic), digest, chain id with mismatch check, verifying contract with token symbol and decimals, spender or recipient, raw and formatted amount, unlimited flag, deadline window in ISO time, risk level, flags with reasons, one-line summary. Sources: JSON-RPC via PublicNode, Sourcify.",
      "params": [
        {
          "name": "typed",
          "required": true,
          "description": "EIP-712 typed data as JSON (URL-encoded in the query) or base64 of it, max 16 KB; also accepts eth_signTypedData_v4 params [address, typedData].",
          "type": "string"
        },
        {
          "name": "expected_chain",
          "required": false,
          "description": "Chain the signature should be for (id such as 8453 or eip155:8453, or a supported name); a different domain chainId is flagged.",
          "example": "base",
          "type": "string"
        },
        {
          "name": "expected_spender",
          "required": false,
          "description": "Address expected as spender or recipient (the payTo for an x402 payment); a different address is flagged.",
          "example": "0xAf8E0A8a8A0A8f65831b2dD0FFe0c1B804698D70",
          "type": "string"
        }
      ],
      "example": "https://chain.kit-rx.com/v1/chain/sign-inspect?typed=%7B%22types%22%3A%7B%22TransferWithAuthorization%22%3A%5B%7B%22name%22%3A%22from%22%2C%22type%22%3A%22address%22%7D%2C%7B%22name%22%3A%22to%22%2C%22type%22%3A%22address%22%7D%2C%7B%22name%22%3A%22value%22%2C%22type%22%3A%22uint256%22%7D%2C%7B%22name%22%3A%22validAfter%22%2C%22type%22%3A%22uint256%22%7D%2C%7B%22name%22%3A%22validBefore%22%2C%22type%22%3A%22uint256%22%7D%2C%7B%22name%22%3A%22nonce%22%2C%22type%22%3A%22bytes32%22%7D%5D%7D%2C%22primaryType%22%3A%22TransferWithAuthorization%22%2C%22domain%22%3A%7B%22name%22%3A%22USD+Coin%22%2C%22version%22%3A%222%22%2C%22chainId%22%3A8453%2C%22verifyingContract%22%3A%220x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913%22%7D%2C%22message%22%3A%7B%22from%22%3A%220x1111111111111111111111111111111111111111%22%2C%22to%22%3A%220xAf8E0A8a8A0A8f65831b2dD0FFe0c1B804698D70%22%2C%22value%22%3A%222000%22%2C%22validAfter%22%3A%220%22%2C%22validBefore%22%3A%221893456000%22%2C%22nonce%22%3A%220x8f3c6a1e5b2d4f7a9c0e1b3d5f7a9c1e3b5d7f9a1c3e5b7d9f1a3c5e7b9d1f3a%22%7D%7D&expected_chain=base&expected_spender=0xAf8E0A8a8A0A8f65831b2dD0FFe0c1B804698D70"
    },
    {
      "id": "contract.abi",
      "method": "GET",
      "url": "https://chain.kit-rx.com/v1/chain/contract-abi",
      "price_usd": "$0.002",
      "price_atomic_usdc": "2000",
      "title": "EVM contract ABI, proxy info and signatures (6 chains)",
      "description": "ABI and metadata for an EVM contract on Base, Ethereum, Arbitrum, OP Mainnet, Polygon or Avalanche: Sourcify verification match, contract name, compiler, proxy type and implementations (implementation ABI merged), function, event and error signatures with selectors and topics, and read vs write function lists. Unverified contracts get a best-effort function list from bytecode selectors named via the Sourcify 4byte database. Sources: Sourcify, chain JSON-RPC via PublicNode.",
      "params": [
        {
          "name": "chain",
          "required": true,
          "description": "Chain by name, alias or chain id: base (8453), ethereum (1), arbitrum (42161), optimism (10), polygon (137), avalanche (43114).",
          "example": "base",
          "type": "string"
        },
        {
          "name": "address",
          "required": true,
          "description": "Contract address (0x + 40 hex characters, any letter case).",
          "example": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "type": "string"
        },
        {
          "name": "format",
          "required": false,
          "description": "json (default) adds the JSON ABI (up to 500 KB); human returns only the signature lists and metadata.",
          "example": "json",
          "type": "string",
          "enum": [
            "json",
            "human"
          ]
        }
      ],
      "example": "https://chain.kit-rx.com/v1/chain/contract-abi?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
    },
    {
      "id": "tx.decode",
      "method": "GET",
      "url": "https://chain.kit-rx.com/v1/chain/tx-decode",
      "price_usd": "$0.005",
      "price_atomic_usdc": "5000",
      "title": "Decode an EVM transaction: method, events, transfers",
      "description": "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.",
      "params": [
        {
          "name": "chain",
          "required": true,
          "description": "Chain by name, alias or chain id: base (8453), ethereum (1), arbitrum (42161), optimism (10), polygon (137), avalanche (43114).",
          "example": "base",
          "type": "string"
        },
        {
          "name": "hash",
          "required": true,
          "description": "Transaction hash (0x + 64 hex characters).",
          "example": "0xa8970f8f69f1dbedac711cfdec10dbd690e7c039304aed363fc843c4fd88d3b1",
          "type": "string"
        }
      ],
      "example": "https://chain.kit-rx.com/v1/chain/tx-decode?chain=base&hash=0xa8970f8f69f1dbedac711cfdec10dbd690e7c039304aed363fc843c4fd88d3b1"
    },
    {
      "id": "token.scan",
      "method": "GET",
      "url": "https://chain.kit-rx.com/v1/chain/token-scan",
      "price_usd": "$0.01",
      "price_atomic_usdc": "10000",
      "title": "ERC-20 token risk scan (owner, proxy, liquidity)",
      "description": "Heuristic risk screen of an ERC-20 token on Base, Ethereum, Arbitrum, OP Mainnet, Polygon or Avalanche: name, symbol, supply; owner and renounce status; proxy and upgradeability; Sourcify verification; privileged functions in bytecode or verified ABI (mint, pause, blacklist, fee, limit, trading switch); Uniswap v2/v3 and Aerodrome pools with USD depth; risk score 0-100 with a reason per flag. Sources: on-chain reads via PublicNode JSON-RPC, Sourcify.",
      "params": [
        {
          "name": "chain",
          "required": true,
          "description": "Chain of the token: base (8453), ethereum (1), arbitrum (42161), optimism (10), polygon (137), avalanche (43114). Chain ids and aliases such as eth, arb, op, matic, avax are also accepted.",
          "example": "base",
          "type": "string",
          "enum": [
            "base",
            "ethereum",
            "arbitrum",
            "optimism",
            "polygon",
            "avalanche"
          ]
        },
        {
          "name": "address",
          "required": true,
          "description": "Token contract address (0x followed by 40 hex characters).",
          "example": "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed",
          "type": "string"
        }
      ],
      "example": "https://chain.kit-rx.com/v1/chain/token-scan?chain=base&address=0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"
    },
    {
      "id": "token.price",
      "method": "GET",
      "url": "https://chain.kit-rx.com/v1/chain/token-price",
      "price_usd": "$0.002",
      "price_atomic_usdc": "2000",
      "title": "ERC-20 token USD price from on-chain DEX pools",
      "description": "Spot USD and native-coin price of an ERC-20 token on Base, Ethereum, Arbitrum, OP Mainnet, Polygon or Avalanche from its deepest Uniswap v2/v3 pool (plus Aerodrome on Base) paired with the wrapped native coin or USDC, with each pool's fee and USD liquidity, the best pool, a confidence level and the block read. Sources: on-chain reads via PublicNode JSON-RPC (official RPC fallback); native USD from Uniswap v3 pools.",
      "params": [
        {
          "name": "chain",
          "required": true,
          "description": "Chain of the token: base (8453), ethereum (1), arbitrum (42161), optimism (10), polygon (137), avalanche (43114). Chain ids and aliases such as eth, arb, op, matic, avax are also accepted.",
          "example": "base",
          "type": "string",
          "enum": [
            "base",
            "ethereum",
            "arbitrum",
            "optimism",
            "polygon",
            "avalanche"
          ]
        },
        {
          "name": "address",
          "required": true,
          "description": "Token contract address (0x followed by 40 hex characters).",
          "example": "0x940181a94A35A4569E4529A3CDfB74e38FD98631",
          "type": "string"
        }
      ],
      "example": "https://chain.kit-rx.com/v1/chain/token-price?chain=base&address=0x940181a94A35A4569E4529A3CDfB74e38FD98631"
    },
    {
      "id": "wallet.balances",
      "method": "GET",
      "url": "https://chain.kit-rx.com/v1/chain/wallet-balances",
      "price_usd": "$0.003",
      "price_atomic_usdc": "3000",
      "title": "Multi-chain wallet balances in USD (curated tokens)",
      "description": "Balances of an EVM wallet (0x address, ENS name or Basename) on Base, Ethereum, Arbitrum, OP Mainnet, Polygon and Avalanche: native coin plus a curated list of 9-13 major tokens per chain (USDC, USDT, DAI, WETH, WBTC/cbBTC, AERO, ARB, OP and more), USD values, per-chain and total USD, chains holding funds, and native USDC per chain for x402 payments. Sources: each chain's JSON-RPC via PublicNode; prices from on-chain Uniswap v3 and Velodrome pools.",
      "params": [
        {
          "name": "address",
          "required": true,
          "description": "Wallet as a 0x EVM address, or an ASCII ENS name (vitalik.eth) or Basename (jesse.base.eth) resolved to its ETH address record.",
          "example": "vitalik.eth",
          "type": "string"
        },
        {
          "name": "chains",
          "required": false,
          "description": "Comma-separated chains by name or chain id: base (8453), ethereum (1), arbitrum (42161), optimism (10), polygon (137), avalanche (43114). Default: all six.",
          "example": "base,ethereum,arbitrum",
          "type": "string"
        }
      ],
      "example": "https://chain.kit-rx.com/v1/chain/wallet-balances?address=vitalik.eth&chains=base%2Cethereum%2Carbitrum"
    },
    {
      "id": "ens.resolve",
      "method": "GET",
      "url": "https://chain.kit-rx.com/v1/chain/ens",
      "price_usd": "$0.002",
      "price_atomic_usdc": "2000",
      "title": "ENS and Basenames resolver (forward and reverse)",
      "description": "ENS and Basenames lookup: name to address, or address to primary name with forward verification. Returns the ETH address, resolver contract, text records (url, avatar, description, Twitter, GitHub, Telegram, and email when set on-chain) and decoded contenthash (IPFS, IPNS, Swarm, Arweave). Sources: ENS Universal Resolver on Ethereum and the Basenames registry on Base, read via PublicNode JSON-RPC; offchain (CCIP-read) names are reported, not followed.",
      "params": [
        {
          "name": "name",
          "required": false,
          "description": "ASCII ENS name (vitalik.eth) or Basename (jesse.base.eth) for a forward lookup. Mutually exclusive with address.",
          "example": "vitalik.eth",
          "type": "string"
        },
        {
          "name": "address",
          "required": false,
          "description": "0x EVM address for a reverse lookup: its primary name on Ethereum (ENS) and Base (Basenames), checked by forward resolution, plus that name's records.",
          "example": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
          "type": "string"
        }
      ],
      "example": "https://chain.kit-rx.com/v1/chain/ens?name=vitalik.eth"
    }
  ]
}