ERC-20 token USD price from on-chain DEX pools API
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.
$0.002 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/token-price
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
chain | string: base, ethereum, arbitrum, optimism, polygon, avalanche | yes | 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. e.g. base |
address | string | yes | Token contract address (0x followed by 40 hex characters). e.g. 0x940181a94A35A4569E4529A3CDfB74e38FD98631 |
Example request
https://chain.kit-rx.com/v1/chain/token-price?chain=base&address=0x940181a94A35A4569E4529A3CDfB74e38FD98631
Without payment the server answers 402 Payment Required with the price (2000 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/token-price?chain=base&address=0x940181a94A35A4569E4529A3CDfB74e38FD98631"
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/token-price?chain=base&address=0x940181a94A35A4569E4529A3CDfB74e38FD98631");
console.log(await res.json());
Example 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"
}
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.