Token price by contract address
GET /api/coin-price-by-contractLive price, market cap, 24h volume and 24h change for ERC-20 / SPL / other chain tokens looked up by CONTRACT ADDRESS on a named platform (ethereum, base, polygon-pos, arbitrum-one, optimistic-ethereum, binance-smart-chain, solana, avalanche, ...). Up to 25 contracts per call, any vs currency (default usd). The address-first sibling of crypto-price: use it when an agent holds a token address from a wallet, a DEX pair or a contract scan and has no coin id. Unknown addresses come back as null rather than failing the batch. Responses are cached in-process for 60 seconds.
Input
| Field | Type | Description |
|---|---|---|
platform * | string | Asset platform id: ethereum, base, polygon-pos, arbitrum-one, optimistic-ethereum, binance-smart-chain, solana, avalanche, ... |
contracts * | string | Comma-separated contract addresses (max 25). Also accepts an array. |
currency | string | vs currency (default usd): fiat (usd, eur) or crypto (btc, eth). |
Example output
{
"source": "coingecko",
"fetchedAt": "2026-08-22T13:20:00.000Z",
"cached": false,
"platform": "ethereum",
"currency": "usd",
"count": 1,
"tokens": [
{
"contract": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"price": 0.999916,
"marketCap": 73514026487.98,
"volume24h": 26092767405.46,
"change24hPct": 0.0212,
"lastUpdated": "2026-08-22T13:15:40.000Z"
}
]
}
Try it - see the 402 challenge (free)
curl -i "https://agent402.tools/api/coin-price-by-contract?platform=ethereum&contracts=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48¤cy=usd"
The response is HTTP 402 Payment Required with exact payment requirements. Any x402 v2 client pays automatically and retries:
Paid call (JavaScript agent)
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agent402.tools/api/coin-price-by-contract?platform=ethereum&contracts=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48¤cy=usd");
Related tools
Crypto order book
GET /api/crypto-orderbookL2 order-book snapshot for a spot pair: best bid/ask, mid price, spread (absolute + %), and the top N aggregated price l…
try in playground →Stablecoin peg monitor
GET /api/stablecoin-pegLive $1-peg deviation for the top USD stablecoins (USDT, USDC, USDS, DAI, USDe, PYUSD, USDD, TUSD, FDUSD by default, or …
try in playground →Wallet balance (native + ERC-20)
POST /api/wallet-balanceLook up the native coin balance (ETH/MATIC) plus every ERC-20 holding for a wallet address on Ethereum, Base, Polygon, A…
try in playground →