Token Price (Base)
Price ETH, WETH, USDC, DAI, cbETH, cbBTC, BTC, or any other Base ERC-20 contract address — read live from Chainlink price feeds and Uniswap V3 pools on-chain, not a hosted price-API reseller. Up to 20 checks per day, free.
Source: Chainlink Data Feed aggregator contracts on Base (curated majors) or the deepest Uniswap V3 pool against USDC (any other address), read live via Base's public JSON-RPC.
Same on-chain read, no rate limit
Price any Base token, no daily cap — $0.004/call, USDC on Base, no account → Prefer card billing? RapidAPI Web Intelligence listing → MCP tool — call it from any MCP-enabled agent →Example (x402 pay-per-call)
curl -X POST https://draconic21-x402-api.onrender.com/v1/token_price \
-H "content-type: application/json" \
-d '{"symbol":"ETH"}'
# unpaid: HTTP 402 + PAYMENT-REQUIRED header (sign with a Base USDC wallet, retry)
Agent / funded runtime? After you verify this lookup, the cold-start buy on this origin is POST /v1/signal_latest — $0.03 USDC (Daily Agent Signal). Free wake: GET /health. Skill card: /skill.md · buyer loop: /agent-buy.md.
This free page calls the identical live on-chain builder used by our paid API — same feeds, same pools, same fields.
What this does — and doesn't — price
- Curated majors (ETH/WETH/USDC/DAI/cbETH/cbBTC/BTC) are priced from Chainlink's own aggregator contracts on Base — the same contracts any on-chain consumer reads.
- Any other Base ERC-20 address is priced from the deepest discoverable Uniswap V3 pool against USDC, across the four standard fee tiers — a live DEX spot price, with the pool's real liquidity reported alongside it.
- If no Base↔USDC pool exists for an address, you get a clean
UNSUPPORTED_TOKENerror, never a fabricated price. - Informational only, not investment advice. Chainlink feeds update on deviation/heartbeat, not every block — check the
stalenessfield before treating a quote as current.
FAQ
Where does this price come from — is it a CoinGecko/CoinCap mirror?
No. Curated majors are read live from Chainlink's own Data Feed aggregator contracts deployed on Base. Any other Base ERC-20 address is priced from the deepest discoverable Uniswap V3 pool against USDC. Both are direct on-chain reads via Base's public RPC — not a hosted price-API reseller.
Why not just use a free crypto price API?
Most free-tier price APIs (CoinGecko's public tier, CoinCap) restrict commercial redistribution of their data, or have been discontinued. Reading a public contract's on-chain state via eth_call carries no such license — it's the same read any wallet or DEX front-end already performs.
What if there's no Uniswap V3 pool for my token address?
You'll get a clean UNSUPPORTED_TOKEN error rather than a fabricated number. This route only ever returns a price it actually derived from a live feed or a real, sufficiently deep on-chain pool.
How fresh is the price?
Every response includes a staleness field: seconds since the Chainlink feed's own last on-chain update (curated majors), plus the exact block number/timestamp read (pool prices). Chainlink feeds update on their own deviation/heartbeat schedule, not every block.
Built for agents, bots, and scripts that need a live Base price without a price-API account. Not a trading signal, portfolio tracker, or tax-reporting tool.