RxKit Rx EVM Gas, Token Scan & Tx Decode

Composed public-data reports, priced per call.

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.

x402 v2USDC on BaseNo API keysFree if it fails
1. CallSend a plain GET request. Without payment you receive HTTP 402 with the price in the PAYMENT-REQUIRED header.
2. PayAny x402 client signs a USDC authorization and retries with the PAYMENT-SIGNATURE header.
3. ReceiveYou get the JSON report. Settlement happens only for 2xx responses.

Onchain tools (EVM)

Gas prices with USD costs, token risk scans and DEX prices, calldata and EIP-712 signature safety, transaction decoding, ABIs, wallet balances and ENS.

GET/v1/chain/gas$0.002

EVM gas fees and USD transaction costs (6 chains)

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: chains optional, speed optional

Sample response
{
  "query": {
    "chains": [
      "base",
      "ethereum",
      "polygon"
    ],
    "speed": "standard"
  },
  "result": {
    "speed": "standard",
    "priority_percentile": "p50",
    "gas_units": {
      "native_transfer": 21000,
      "erc20_transfer": 65000,
      "swap": 180000
    },
    "chains": [
      {
        "chain": "base",
        "chain_id": 8453,
        "native_symbol": "ETH",
        "block": {
          "number": 57559128,
          "age_s": 0
        },
        "base_fee_gwei": 0.005,
        "next_base_fee_estimate_gwei": 0.005,
        "priority_fee_gwei": {
          "p25": 0.00067667,
          "p50": 0.001125,
          "p75": 0.0025
        },
        "gas_price_gwei": 0.006,
        "trend_10_blocks": {
          "direction": "flat",
          "change_pct": 0,
          "min_base_fee_gwei": 0.005,
          "max_base_fee_gwei": 0.0050038,
          "avg_block_fullness_pct": 10.5
        },
        "at_speed": {
          "max_priority_fee_gwei": 0.001125,
          "max_fee_gwei": 0.011125,
          "effective_gas_price_gwei": 0.006125
        },
        "native_usd": {
          "price": 1766.62,
          "pair": "WETH/USDC",
          "pool": "0x6c561B446416E1A00E8E93E221854d6eA4171372",
          "fee_pct": 0.3
        },
        "usd_cost": {
          "native_transfer": 0.000232,
          "erc20_transfer": 0.00071,
          "swap": 0.00197
        },
        "native_cost": {
          "native_transfer": 1.316e-7,
          "erc20_transfer": 4.02e-7,
          "swap": 0.000001116
        },
        "l1_data_fee_included": true
      },
      {
        "chain": "ethereum",
        "chain_id": 1,
        "native_symbol": "ETH",
        "block": {
          "number": 26416784,
          "age_s": 10
        },
        "base_fee_gwei": 0.27772,
        "next_base_fee_estimate_gwei": 0.28739,
        "priority_fee_gwei": {
          "p25": 0.0054569,
          "p50": 0.15241,
          "p75": 0.93107
        },
        "gas_price_gwei": 0.27773,
        "trend_10_blocks": {
          "direction": "falling",
          "change_pct": -8.59,
          "min_base_fee_gwei": 0.27045,
          "max_base_fee_gwei": 0.32531,
          "avg_block_fullness_pct": 46.7
        },
        "at_speed": {
          "max_priority_fee_gwei": 0.15241,
          "max_fee_gwei": 0.72719,
          "effective_gas_price_gwei": 0.4398
        },
        "native_usd": {
          "price": 1763.04,
          "pair": "WETH/USDC",
          "pool": "0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640",
          "fee_pct": 0.05
        },
        "usd_cost": {
          "native_transfer": 0.0163,
          "erc20_transfer": 0.0504,
          "swap": 0.14
        },
        "native_cost": {
          "native_transfer": 0.000009236,
          "erc20_transfer": 0.00002859,
          "swap": 0.00007916
        },
        "l1_data_fee_included": false
      }
    ],
    "cheapest_chain": {
      "native_transfer": {
        "chain": "base",
        "usd": 0.000232
      },
      "erc20_transfer": {
        "chain": "base",
        "usd": 0.00071
      },
      "swap": {
        "chain": "base",
        "usd": 0.00197
      }
    },
    "errors": []
  },
  "sources": [
    {
      "name": "Base JSON-RPC via PublicNode",
      "url": "https://base-rpc.publicnode.com"
    },
    {
      "name": "Ethereum JSON-RPC via PublicNode",
      "url": "https://ethereum-rpc.publicnode.com"
    }
  ],
  "notes": [
    "Gwei = 1e-9 of the native coin. Cost = gas units x (next base fee + p50 priority fee), plus an upper-bound L1 data fee on Base, OP Mainnet and Arbitrum. Priority fees are medians of eth_feeHistory percentiles over 10 blocks; Arbitrum charges none."
  ],
  "generated_at": "2026-11-15T00:23:21.259Z"
}

https://chain.kit-rx.com/v1/chain/gas?chains=base%2Cethereum%2Cpolygon&speed=standard

GET/v1/chain/calldata-decode$0.002

EVM calldata decoder with pre-signing risk flags

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: data, to optional, chain optional

Sample response
{
  "query": {
    "data": "0x095ea7b3000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3... (68 bytes)",
    "to": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "chain": "base"
  },
  "result": {
    "selector": "0x095ea7b3",
    "function": "approve(address,uint256)",
    "name": "approve",
    "decoded_with": "sourcify_abi",
    "signature_verified": true,
    "args": [
      {
        "name": "spender",
        "type": "address",
        "value": "0x000000000022D473030F116dDEE9F6B43aC78BA3"
      },
      {
        "name": "value",
        "type": "uint256",
        "value": "115792089237316195423570985008687907853269984665640564039457584007913129639935"
      }
    ],
    "exact_encoding": true,
    "target": {
      "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "chain": "base",
      "chain_id": 8453,
      "label": null,
      "is_contract": true,
      "delegated_to": null,
      "verified": true,
      "contract_name": "FiatTokenProxy",
      "proxy_type": "ZeppelinOSProxy",
      "implementation": {
        "address": "0x2Ce6311ddAE708829bc0784C967b7d77D19FD779",
        "name": "FiatTokenV2_2"
      },
      "token": {
        "symbol": "USDC",
        "name": "USD Coin",
        "decimals": 6
      }
    },
    "nested": null,
    "addresses": [
      {
        "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
        "role": "spender",
        "label": "Uniswap Permit2",
        "is_contract": true,
        "delegated_to": null,
        "verified_name": null
      }
    ],
    "risk_level": "high",
    "flags": [
      {
        "code": "unlimited_approval",
        "severity": "high",
        "reason": "Grants 0x000000000022D473030F116dDEE9F6B43aC78BA3 (Uniswap Permit2) an unlimited allowance on USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913): it can move all of the sender's balance of this token, now and later, until the allowance is revoked."
      }
    ],
    "summary": "Approves 0x000000000022D473030F116dDEE9F6B43aC78BA3 (Uniswap Permit2) to spend an unlimited amount of USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913). Risk: high (unlimited_approval)."
  },
  "sources": [
    {
      "name": "Sourcify verified contract repository",
      "url": "https://sourcify.dev/"
    },
    {
      "name": "Base JSON-RPC via PublicNode",
      "url": "https://base-rpc.publicnode.com"
    }
  ],
  "attribution": [
    "Contract metadata and function/event signatures from Sourcify (https://sourcify.dev), the open-source smart contract ...",
    "Blockchain data read through PublicNode public RPC endpoints (https://www.publicnode.com, operated by Allnodes Inc.);..."
  ],
  "generated_at": "2026-11-15T01:18:49.839Z"
}

https://chain.kit-rx.com/v1/chain/calldata-decode?data=0x095ea7b3000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff&to=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&chain=base

GET/v1/chain/sign-inspect$0.002

EIP-712 signature request inspector (permits, x402)

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: typed, expected_chain optional, expected_spender optional

Sample response
{
  "query": {
    "typed": "TransferWithAuthorization (667 chars)",
    "expected_chain": 8453,
    "expected_spender": "0xAf8E0A8a8A0A8f65831b2dD0FFe0c1B804698D70"
  },
  "result": {
    "kind": "eip3009_transfer",
    "kind_label": "EIP-3009 TransferWithAuthorization (one-time transfer, x402 exact scheme)",
    "primary_type": "TransferWithAuthorization",
    "digest": "0x001bce51ac376ae48d55d5a36116124c831407c7d2423d92b42867785fd7d21b",
    "chain_id": 8453,
    "chain": "base",
    "expected_chain_id": 8453,
    "chain_mismatch": false,
    "domain": {
      "name": "USD Coin",
      "version": "2",
      "salt": null,
      "fields": [
        "name",
        "version",
        "chainId",
        "verifyingContract"
      ]
    },
    "verifying_contract": {
      "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "label": null,
      "is_contract": true,
      "token": {
        "symbol": "USDC",
        "name": "USD Coin",
        "decimals": 6
      },
      "domain_separator_match": true
    },
    "signer": "0x1111111111111111111111111111111111111111",
    "spender": {
      "address": "0xAf8E0A8a8A0A8f65831b2dD0FFe0c1B804698D70",
      "role": "recipient",
      "label": null,
      "is_contract": false,
      "delegated_to": null,
      "verified_name": null,
      "matches_expected": true
    },
    "amount": {
      "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "symbol": "USDC",
      "decimals": 6,
      "raw": "2000",
      "formatted": "0.002",
      "unlimited": false
    },
    "amounts": [
      {
        "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "symbol": "USDC",
        "decimals": 6,
        "raw": "2000",
        "formatted": "0.002",
        "unlimited": false
      }
    ],
    "validity": {
      "valid_after": null,
      "deadline": "2030-01-01T00:00:00.000Z",
      "deadline_unix": "1893456000",
      "never_expires": false,
      "seconds_remaining": 98750471,
      "expired": false,
      "not_yet_valid": false,
      "too_long": true
    },
    "details": {
      "nonce": "0x8f3c6a1e5b2d4f7a9c0e1b3d5f7a9c1e3b5d7f9a1c3e5b7d9f1a3c5e7b9d1f3a"
    },
    "risk_level": "low",
    "flags": [
      {
        "code": "payment_authorization",
        "severity": "low",
        "reason": "Signing authorizes a one-time transfer of 0.002 USDC from 0x1111111111111111111111111111111111111111 to 0xA..."
      },
      {
        "code": "long_validity",
        "severity": "low",
        "reason": "The authorization end (validBefore) is 3 years away (more than 1 hour). x402 payment authorizations are nor..."
      }
    ],
    "summary": "TransferWithAuthorization of 0.002 USDC from 0x1111111111111111111111111111111111111111 to 0xAf8E0A8a8A0A8f65831b2dD0FFe0c1B804698D70 on Base, vali..."
  },
  "sources": [
    {
      "name": "Base JSON-RPC via PublicNode",
      "url": "https://base-rpc.publicnode.com"
    }
  ],
  "attribution": [
    "Blockchain data read through PublicNode public RPC endpoints (https://www.publicnode.com, operated by Allnodes Inc.);..."
  ],
  "generated_at": "2026-11-15T01:18:49.923Z"
}

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

GET/v1/chain/contract-abi$0.002

EVM contract ABI, proxy info and signatures (6 chains)

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: chain, address, format optional

Sample response
{
  "query": {
    "chain": "base",
    "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "format": "json"
  },
  "result": {
    "chain": "base",
    "chain_id": 8453,
    "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "verified": true,
    "name": "FiatTokenProxy",
    "verification": {
      "match": "exact_match",
      "creation_match": "exact_match",
      "runtime_match": "exact_match",
      "verified_at": "2024-08-08T13:59:29Z"
    },
    "compiler": {
      "language": "Solidity",
      "compiler_version": "0.6.12+commit.27d51765",
      "evm_version": "istanbul",
      "optimizer": {
        "enabled": true,
        "runs": 10000000
      },
      "source_file": "FiatTokenProxy.sol"
    },
    "bytecode_size": 1852,
    "proxy": {
      "is_proxy": true,
      "type": "ZeppelinOSProxy",
      "implementations": [
        {
          "address": "0x2Ce6311ddAE708829bc0784C967b7d77D19FD779",
          "name": "FiatTokenV2_2"
        }
      ]
    },
    "implementation": {
      "address": "0x2Ce6311ddAE708829bc0784C967b7d77D19FD779",
      "name": "FiatTokenV2_2",
      "verified": true,
      "verification": {
        "match": "exact_match",
        "creation_match": "exact_match",
        "runtime_match": "exact_match",
        "verified_at": "2026-09-13T14:12:39Z"
      },
      "compiler": {
        "language": "Solidity",
        "compiler_version": "0.6.12+commit.27d51765",
        "evm_version": "istanbul",
        "optimizer": {
          "enabled": true,
          "runs": 10000000
        },
        "source_file": "FiatTokenV2_2.sol"
      }
    },
    "counts": {
      "functions": 60,
      "read": 26,
      "write": 34,
      "events": 19,
      "errors": 0,
      "abi_entries": 81
    },
    "constructor": "constructor(address implementationContract)",
    "fallback": true,
    "receive": false,
    "functions": {
      "read": [
        {
          "selector": "0x70a08231",
          "signature": "balanceOf(address)",
          "human": "function balanceOf(address account) view returns (uint256)",
          "state_mutability": "view"
        }
      ],
      "write": [
        {
          "selector": "0xa9059cbb",
          "signature": "transfer(address,uint256)",
          "human": "function transfer(address to, uint256 value) returns (bool)",
          "state_mutability": "nonpayable"
        }
      ],
      "unclassified": []
    },
    "events": [
      {
        "topic0": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
        "signature": "Transfer(address,address,uint256)",
        "human": "event Transfer(address indexed from, address indexed to, uint256 value)"
      }
    ],
    "errors": [],
    "abi": [
      {
        "name": "balanceOf",
        "type": "function",
        "inputs": [
          {
            "name": "account",
            "type": "address",
            "internalType": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256",
            "internalType": "uint256"
          }
        ],
        "stateMutability": "view"
      }
    ],
    "truncated": {
      "summary": false,
      "abi": false
    },
    "abi_source": "sourcify_verified_proxy_and_implementation"
  },
  "sources": [
    {
      "name": "Sourcify verified contract repository",
      "url": "https://sourcify.dev/"
    },
    {
      "name": "Base JSON-RPC via PublicNode",
      "url": "https://base-rpc.publicnode.com"
    }
  ],
  "notes": [
    "Selectors are the first 4 bytes of keccak256 of the canonical signature; event topic0 is the full hash. Read functions are view or pure."
  ],
  "attribution": [
    "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.",
    "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."
  ],
  "generated_at": "2026-11-15T01:14:47.893Z"
}

https://chain.kit-rx.com/v1/chain/contract-abi?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

GET/v1/chain/tx-decode$0.005

Decode an EVM transaction: method, events, transfers

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: chain, hash

Sample 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"
}

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

GET/v1/chain/token-scan$0.01

ERC-20 token risk scan (owner, proxy, liquidity)

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: chain, address

Sample response
{
  "query": {
    "chain": "base",
    "address": "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"
  },
  "result": {
    "chain": "base",
    "chain_id": 8453,
    "address": "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed",
    "token": {
      "name": "Degen",
      "symbol": "DEGEN",
      "decimals": 18,
      "total_supply": "35850686746.3298680797264344",
      "burned_pct": 0.0006,
      "contract_self_balance_pct": 0.0267
    },
    "contract": {
      "code_size_bytes": 11608,
      "verified": true,
      "verified_name": "DegenToken",
      "verified_match": "exact_match",
      "compiler_version": "0.8.20+commit.a1b79de6",
      "proxy": {
        "is_proxy": false,
        "upgradeable": false,
        "type": null,
        "implementation": null,
        "implementation_verified": null,
        "implementation_name": null,
        "beacon": null,
        "admin": null,
        "admin_is_contract": null
      }
    },
    "ownership": {
      "owner": "0x704Ec5C12Ca20a293C2C0B72B22619A4231f3c0d",
      "owner_source": "owner()",
      "renounced": false,
      "owner_is_contract": true,
      "owner_balance_pct": 0.5312,
      "minter": null,
      "authority": null
    },
    "status": {
      "paused": false,
      "trading_enabled": null,
      "trading_getters": {},
      "limits_in_effect": null,
      "fee_getters_pct": {}
    },
    "privileged_functions": [
      {
        "category": "mint",
        "signature": "mint(address,uint96)",
        "source": "verified_abi"
      }
    ],
    "liquidity": {
      "price_usd": 0.000693288,
      "native_usd": 1726.92,
      "total_liquidity_usd": 380800,
      "total_quote_reserve_usd": 191300,
      "best_pool_address": "0xc9034c3E7F58003E6ae0C8438e7c8f4598d5ACAA",
      "pools": [
        {
          "dex": "Uniswap v3",
          "address": "0xc9034c3E7F58003E6ae0C8438e7c8f4598d5ACAA",
          "pair": "DEGEN/WETH",
          "fee_pct": 0.3,
          "price_usd": 0.000693288,
          "liquidity_usd": 195100,
          "quote_reserve_usd": 98950,
          "in_range": true
        }
      ],
      "pools_found": 16
    },
    "risk_score": 32,
    "risk_level": "medium",
    "flags": [
      {
        "code": "can_mint",
        "severity": "high",
        "points": 15,
        "reason": "Can create new tokens, diluting holders (mint)."
      }
    ],
    "block": 57571655
  },
  "sources": [
    {
      "name": "Base JSON-RPC via PublicNode",
      "url": "https://base-rpc.publicnode.com"
    },
    {
      "name": "Sourcify verified contract repository",
      "url": "https://sourcify.dev/"
    }
  ],
  "notes": [
    "Pools covered: Uniswap v3 (4 fee tiers), Uniswap v2, Aerodrome v2 and Slipstream, against WETH or native USDC."
  ],
  "generated_at": "2026-11-15T01:05:06.702Z"
}

https://chain.kit-rx.com/v1/chain/token-scan?chain=base&address=0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed

GET/v1/chain/token-price$0.002

ERC-20 token USD price from on-chain DEX pools

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: chain, address

Sample response
{
  "query": {
    "chain": "base",
    "address": "0x940181a94A35A4569E4529A3CDfB74e38FD98631"
  },
  "result": {
    "chain": "base",
    "chain_id": 8453,
    "address": "0x940181a94A35A4569E4529A3CDfB74e38FD98631",
    "symbol": "AERO",
    "decimals": 18,
    "price_usd": 0.423687,
    "price_native": 0.000245343,
    "native_symbol": "ETH",
    "native_usd": 1726.92,
    "best_pool": {
      "dex": "Aerodrome",
      "address": "0x6cDcb1C4A4D1C3C6d054b27AC5B77e89eAFb971d",
      "pair": "AERO/USDC",
      "fee_pct": 0.3,
      "stable": false,
      "price_usd": 0.423687,
      "liquidity_usd": 3678000,
      "quote_reserve_usd": 1839000
    },
    "pools": [
      {
        "dex": "Aerodrome",
        "address": "0x6cDcb1C4A4D1C3C6d054b27AC5B77e89eAFb971d",
        "pair": "AERO/USDC",
        "fee_pct": 0.3,
        "stable": false,
        "price_usd": 0.423687,
        "liquidity_usd": 3678000,
        "quote_reserve_usd": 1839000
      },
      {
        "dex": "Uniswap v3",
        "address": "0x3d5D143381916280ff91407FeBEB52f2b60f33Cf",
        "pair": "AERO/WETH",
        "fee_pct": 0.3,
        "price_usd": 0.42352,
        "liquidity_usd": 1015000,
        "quote_reserve_usd": 303200,
        "in_range": true
      }
    ],
    "pools_found": 24,
    "total_liquidity_usd": 6513000,
    "price_spread_pct": 0.887,
    "confidence": "high",
    "confidence_reasons": [],
    "block": 57571656
  },
  "sources": [
    {
      "name": "Base JSON-RPC via PublicNode",
      "url": "https://base-rpc.publicnode.com"
    }
  ],
  "notes": [
    "Spot price (before fees and price impact) from the pool with the largest WETH or USDC reserves; WETH converted via Base's deepest Uniswap v3 WETH/USDC pool, USDC = $1. liquidity_usd values the token side at price_usd; quote_reserve_usd is the WETH or USDC side alone; confidence counts at most twice that side."
  ],
  "generated_at": "2026-11-15T01:05:06.894Z"
}

https://chain.kit-rx.com/v1/chain/token-price?chain=base&address=0x940181a94A35A4569E4529A3CDfB74e38FD98631

GET/v1/chain/wallet-balances$0.003

Multi-chain wallet balances in USD (curated tokens)

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: address, chains optional

Sample response
{
  "query": {
    "address": "vitalik.eth",
    "chains": [
      "base",
      "ethereum",
      "arbitrum"
    ]
  },
  "result": {
    "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
    "ens_name": "vitalik.eth",
    "total_usd": 20016.36,
    "chains_with_funds": [
      "base",
      "ethereum",
      "arbitrum"
    ],
    "usdc_by_chain": [
      {
        "chain": "arbitrum",
        "network": "eip155:42161",
        "usdc": 158.162265,
        "token": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
      },
      {
        "chain": "base",
        "network": "eip155:8453",
        "usdc": 81.809468,
        "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
      },
      {
        "chain": "ethereum",
        "network": "eip155:1",
        "usdc": 39.192124,
        "token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
      }
    ],
    "usdc_total": 279.163857,
    "coverage": "curated_tokens_only",
    "chains": [
      {
        "chain": "base",
        "chain_id": 8453,
        "network": "eip155:8453",
        "block": 57565841,
        "native": {
          "symbol": "ETH",
          "balance": 3.128853190363307,
          "usd": 5492.83,
          "price_usd": 1755.54
        },
        "tokens": [
          {
            "symbol": "WETH",
            "address": "0x4200000000000000000000000000000000000006",
            "balance": 0.27558524550948865,
            "usd": 483.8,
            "price_usd": 1755.54
          },
          {
            "symbol": "USDC",
            "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
            "balance": 81.809468,
            "usd": 81.81,
            "price_usd": 1
          }
        ],
        "total_usd": 6075.66,
        "unpriced_tokens": [],
        "tokens_checked": 10
      },
      {
        "chain": "ethereum",
        "chain_id": 1,
        "network": "eip155:1",
        "block": 26416895,
        "native": {
          "symbol": "ETH",
          "balance": 5.798969845714111,
          "usd": 10192.79,
          "price_usd": 1757.69
        },
        "tokens": [
          {
            "symbol": "WETH",
            "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
            "balance": 1.468927766030343,
            "usd": 2581.92,
            "price_usd": 1757.69
          }
        ],
        "total_usd": 13125.83,
        "unpriced_tokens": [],
        "tokens_checked": 13
      }
    ],
    "errors": []
  },
  "sources": [
    {
      "name": "Ethereum JSON-RPC via PublicNode",
      "url": "https://ethereum-rpc.publicnode.com"
    },
    {
      "name": "Base JSON-RPC via PublicNode",
      "url": "https://base-rpc.publicnode.com"
    }
  ],
  "notes": [
    "Only the native coin and a curated list of major tokens per chain are checked (tokens_checked per chain); other ERC-20s, NFTs, LP positions and DeFi deposits are not included, so total_usd is a lower bound."
  ],
  "generated_at": "2026-11-15T00:45:43.911Z"
}

https://chain.kit-rx.com/v1/chain/wallet-balances?address=vitalik.eth&chains=base%2Cethereum%2Carbitrum

GET/v1/chain/ens$0.002

ENS and Basenames resolver (forward and reverse)

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 optional, address optional

Sample response
{
  "query": {
    "name": "vitalik.eth"
  },
  "result": {
    "lookup": "forward",
    "name": "vitalik.eth",
    "network": "ethereum",
    "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
    "resolver": "0x394D8EB4a4fDF599384DeAb25F31d111d755c398",
    "is_offchain": false,
    "wildcard": false,
    "text": {
      "url": "https://vitalik.ca",
      "avatar": "https://euc.li/vitalik.eth",
      "description": "mi pinxe lo crino tcati",
      "com.twitter": "VitalikButerin",
      "com.github": "vbuterin",
      "org.telegram": null,
      "email": null
    },
    "contenthash": {
      "protocol": "ipfs",
      "uri": "ipfs://bafybeia5eyombgegdwmvfzwisveadaaok2vdjkv5rklfdmcljysjrjc4km"
    },
    "forward_verified": null
  },
  "sources": [
    {
      "name": "Ethereum JSON-RPC via PublicNode",
      "url": "https://ethereum-rpc.publicnode.com"
    }
  ],
  "notes": [
    "Text records are public on-chain values set by the name's owner; empty records are null."
  ],
  "generated_at": "2026-11-15T00:45:43.981Z"
}

https://chain.kit-rx.com/v1/chain/ens?name=vitalik.eth