Token data is hard,
we make it easy
Our Token API lets you easily look up ERC-20 tokens by wallet, token transfers, and token details instantly. No indexing required!
Billions of logs sifted
We've sifted billions of logs, transactions, and contracts so you don't have to.
Thousands of hours saved
Time is money. We've done the heavy lifting, so you can focus on your customers.
Single request
Reduce the complexity by making a single request to get the data you need.
No experience required
We make it easy for you to get the data you need and be on your way.
Token API
Everything you need, all in one place
There is no easy way to get token data by querying the blockchain. Gathering this information manually requires a time-consuming and technical process of scraping, decoding, and storing data from millions of blocks and billions of logs.
Token metadata
Easily retrieve details about an ERC-20 token. You can look up tokens by contract address or token symbol.
Token balances
Look inside a wallet! Quickly fetch ERC-20 tokens and their balances within a specified wallet. You can also send in an array of ERC-20 contract addresses with your request to limit balance results to specific tokens.
Transactions
Fetch a detailed history of incoming and outgoing transactions for a wallet, contract, or even a particular token or address.
Supported chain
ERC-20 on Ethereum
Get data on the most popular ERC-20 tokens like Uniswap (UNI), USD Coin (USDC), Aave (AAVE), Decentraland (MANA) and more.
Powerful developer tools
Built
for developers,
by developers
Token API puts over 1 billion sifted logs, transactions, and contracts at your fingertips, instantly - saving you thousands of hours of engineering work and turbocharging your project development.
curl http://sample-endpoint-name.network.quiknode.pro/token-goes-here/ \ -X POST \ -H "Content-Type: application/json" \ --data '{ "id":67, "jsonrpc":"2.0", "method":"qn_getTokenMetadataByContractAddress", "params":[{ "contract": "0x4d224452801ACEd8B2F0aebE155379bb5D594381" }] }'
from web3 import Web3, HTTPProvider w3 = Web3(HTTPProvider('http://sample-endpoint-name.network.quiknode.pro/token-goes-here/')) resp = w3.provider.make_request('qn_getTokenMetadataByContractAddress', [{ "contract": "0x4d224452801ACEd8B2F0aebE155379bb5D594381" }]) print(resp)
require 'eth' client = Eth::Client.create 'http://sample-endpoint-name.network.quiknode.pro/token-goes-here/' payload = { "id":67, "jsonrpc":"2.0", "method":"qn_getTokenMetadataByContractAddress", "params":[{ "contract": "0x4d224452801ACEd8B2F0aebE155379bb5D594381" }] } response = client.send(payload.to_json) puts response
const ethers = require("ethers"); (async () => { const provider = new ethers.providers.JsonRpcProvider("http://sample-endpoint-name.network.quiknode.pro/token-goes-here/"); const heads = await provider.send("qn_getTokenMetadataByContractAddress", [{ contract: "0x4d224452801ACEd8B2F0aebE155379bb5D594381", }]); console.log(heads); })();
curl http://sample-endpoint-name.network.quiknode.pro/token-goes-here/ \ -X POST \ -H "Content-Type: application/json" \ --data '{ "id":67, "jsonrpc":"2.0", "method":"qn_getTokenMetadataByContractAddress", "params":[{ "contract": "0x4d224452801ACEd8B2F0aebE155379bb5D594381" }] }'
from web3 import Web3, HTTPProvider w3 = Web3(HTTPProvider('http://sample-endpoint-name.network.quiknode.pro/token-goes-here/')) resp = w3.provider.make_request('qn_getTokenMetadataByContractAddress', [{ "contract": "0x4d224452801ACEd8B2F0aebE155379bb5D594381" }]) print(resp)
require 'eth' client = Eth::Client.create 'http://sample-endpoint-name.network.quiknode.pro/token-goes-here/' payload = { "id":67, "jsonrpc":"2.0", "method":"qn_getTokenMetadataByContractAddress", "params":[{ "contract": "0x4d224452801ACEd8B2F0aebE155379bb5D594381" }] } response = client.send(payload.to_json) puts response
const ethers = require("ethers"); (async () => { const provider = new ethers.providers.JsonRpcProvider("http://sample-endpoint-name.network.quiknode.pro/token-goes-here/"); const heads = await provider.send("qn_getTokenMetadataByContractAddress", [{ contract: "0x4d224452801ACEd8B2F0aebE155379bb5D594381", }]); console.log(heads); })();
DeFi, wallets and swaps
From displaying ERC-20 token portfolio contents, balances, transactions by wallet and contracts, to providing detailed transfer histories, Token API does the heavy lifting for you, ridiculously fast.
DAOs and communities
Want to gate access to part of your web3 enabled website based on token ownership? Verify ERC-20 token ownership and wallet balance with one simple API call. Token API is available on Ethereum mainnet and Ethereum Sepolia.