# Token API — Hanzo AI

> One token data API for every EVM chain.

Available Now

# Token API

ERC-20 token data, balances & prices

One token data API for every EVM chain. Balances, historical prices, metadata, and ownership across 100+ networks in a single call.

### Multi-chain Balances

Query token balances across all EVM chains in one request.

### Real-time Prices

Live token prices from multiple DEXs and aggregators.

### Token Metadata

Name, symbol, decimals, logos, and contract info.

### Historical Data

Price history, balance snapshots, and transfer history.

[Back to Web3 Overview](https://hanzo.ai/blockchain)

## Get Your API Key

Start building in under 5 minutes

HA

Failover

<50ms

Latency

100+

Chains

Start Building Free

View Documentation

No credit card required. Free tier includes 300M compute units/month.

Trusted by developers building:

DeFiNFTsPaymentsGamingAI Agents

## Key Capabilities

Everything you need, nothing you don&#x27;t.

### Multi-chain Balances

Query token balances across all EVM chains in one request.

### Real-time Prices

Live token prices from multiple DEXs and aggregators.

### Token Metadata

Name, symbol, decimals, logos, and contract info.

### Historical Data

Price history, balance snapshots, and transfer history.

### Token Discovery

Search and discover tokens by name, symbol, or address.

### Spam Detection

Automatic filtering of spam tokens and scam contracts.

### Fast Response

Sub-100ms response times with global CDN caching.

### 100+ Chains

Support for Ethereum, Polygon, Arbitrum, Base, and more.

### Webhook Updates

Get notified on balance changes and transfers.

## Simple to Integrate

Get started with just a few lines of code. SDKs for every language.

Solidity

Node

Python

Go

Rust

C

C++

Ruby

TokenVault.sol

```
// SPDX-License-Identifier: MIT pragma solidity ^0.8.24; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; import "@hanzo/tokens/ITokenRegistry.sol"; contract MultiTokenVault { using SafeERC20 for IERC20; ITokenRegistry public registry; mapping(address => mapping(address => uint256)) public balances; constructor(address _registry) { registry = ITokenRegistry(_registry); } // Deposit any registered token function deposit(address token, uint256 amount) external { require(registry.isVerified(token), "Token not verified"); require(!registry.isSpam(token), "Spam token"); IERC20(token).safeTransferFrom(msg.sender, address(this), amount); balances[msg.sender][token] += amount; } // Get token metadata from registry function getTokenInfo(address token) external view returns ( string memory name, string memory symbol, uint8 decimals, uint256 price ) { return registry.getTokenInfo(token); } // Batch check balances across tokens function getPortfolioValue(address user, address[] calldata tokens) external view returns (uint256 totalValue) { for (uint i = 0; i

## Built For

### Portfolio Trackers

Build multi-chain portfolio apps with real-time valuations.

### Wallet Applications

Display token balances and transaction history.

### DeFi Dashboards

Track positions, yields, and token performance.

### Trading Bots

Real-time price feeds for automated trading strategies.

## Supported Chains

EthereumPolygonArbitrumOptimismBaseBNB ChainAvalancheFantomzkSyncLinea

## Start Building with Token API

Get your free API key and ship your first request in under 5 minutes. No credit card required.

Get Your API Key

[Explore All Web3 Products](https://hanzo.ai/blockchain)

## Open source

License: Apache-2.0[luxfi/tokens](https://github.com/luxfi/tokens)

## Get Token API

Token launchpad

[Deploy to Cloud](https://console.hanzo.ai/deploy)
