Supported Chains
Axol API provides unified access to 23+ blockchains through a single interface.
Production Ready (19 chains)
- Ethereum (EVM)
- Polygon (EVM)
- Arbitrum (EVM)
- Optimism (EVM)
- Base (EVM)
- Gnosis (EVM)
- Avalanche (EVM)
- Celestia (Cosmos)
- Osmosis (Cosmos)
- dYdX (Cosmos)
- Sei (Cosmos)
- Bitcoin (UTXO)
- Solana (Solana)
- Sui (Move)
- Aptos (Move)
- NEAR (Near)
- Starknet (Cairo)
- Polkadot (Substrate)
- Tron (TVM)
Beta Support (4 chains)
- Unichain (EVM) Beta
- Babylon (Cosmos) Beta
- Aztec (ZK) Beta
- Elixir (Cross-chain) Beta
All chains include: Mainnet access, Archive data, WebSocket support, and unified API pattern.
Chain Categories
EVM Chains (10)
Layer 1 and Layer 2 EVM-compatible networks:
| Chain | API ID | Chain ID | Native Token | Status |
|---|---|---|---|---|
| Ethereum | ethereum | 1 | ETH | Production |
| Arbitrum | arbitrum | 42161 | ETH | Production |
| Optimism | optimism | 10 | ETH | Production |
| Base | base | 8453 | ETH | Production |
| Polygon | polygon | 137 | MATIC | Production |
| Gnosis | gnosis | 100 | xDAI | Production |
| Avalanche | avalanche | 43114 | AVAX | Production |
| Unichain | unichain | 1301 | ETH | Beta |
Cosmos Ecosystem (6)
Cosmos SDK chains with IBC support:
| Chain | API ID | Native Token | Status |
|---|---|---|---|
| Celestia | celestia | TIA | Production |
| Osmosis | osmosis | OSMO | Production |
| dYdX | dydx | DYDX | Production |
| Sei | sei | SEI | Production |
| Babylon | babylon | BBN | Beta |
Other Networks (9)
Non-EVM networks with specialized features:
| Chain | API ID | Native Token | Status |
|---|---|---|---|
| Bitcoin | bitcoin | BTC | Production |
| Solana | solana | SOL | Production |
| Sui | sui | SUI | Production |
| Aptos | aptos | APT | Production |
| Near | near | NEAR | Production |
| Starknet | starknet | ETH | Production |
| Polkadot | polkadot | DOT | Production |
| Tron | tron | TRX | Production |
| Aztec | aztec | ETH | Beta |
Using Chain Identifiers
All API endpoints accept the chain identifier in the URL:
/v1/blockchain/{chain}/...
Examples
Get latest block:
# Ethereum
curl -H "X-API-Key: YOUR_KEY" \
https://api.axol.io/api/v1/blockchain/ethereum/blocks/latest
# Solana
curl -H "X-API-Key: YOUR_KEY" \
https://api.axol.io/api/v1/blockchain/solana/blocks/latest
# Sui
curl -H "X-API-Key: YOUR_KEY" \
https://api.axol.io/api/v1/blockchain/sui/blocks/latest
Get gas prices (EVM only):
curl -H "X-API-Key: YOUR_KEY" \
https://api.axol.io/api/v1/blockchain/ethereum/gas
Get balance:
curl -H "X-API-Key: YOUR_KEY" \
https://api.axol.io/api/v1/blockchain/polygon/balance/0x742d35Cc...
Chain-Specific Features
EVM Chains
All EVM chains support:
- Gas price estimation with EIP-1559 support
- Smart contract calls
- Token balances (ERC-20, ERC-721, ERC-1155)
- ENS resolution (Ethereum mainnet)
- Trace and debug methods
- Event logs and filtering
Bitcoin
- UTXO-based queries
- Transaction details with inputs/outputs
- Address balance (confirmed + unconfirmed)
- Mempool monitoring
- Fee estimation (sat/vB)
Solana
- SPL token balances
- Program account queries
- Transaction signatures
- Stake account information
- Slot-based block queries
Cosmos Chains
- Block height queries
- Validator information
- Staking data
- IBC transaction support
- Governance proposals
Sui
- Object queries
- Move module calls
- Dynamic fields
- Transaction effects
- Checkpoint data
Starknet
- Cairo contract calls
- Account abstraction
- L2 transaction data
- Class declarations
Near
- Account state
- Access keys
- Contract calls
- Receipts and outcomes
Cross-Chain Operations
Multi-Chain Balance Check
import asyncio
import aiohttp
async def get_multi_chain_balances(address: str, chains: list[str]) -> dict:
"""Check balance across multiple EVM chains."""
async with aiohttp.ClientSession() as session:
tasks = []
for chain in chains:
url = f"https://api.axol.io/api/v1/blockchain/{chain}/balance/{address}"
tasks.append(session.get(url, headers={"X-API-Key": "YOUR_KEY"}))
responses = await asyncio.gather(*tasks)
balances = {}
for chain, response in zip(chains, responses):
data = await response.json()
balances[chain] = data.get("data", {}).get("balance", "0")
return balances
# Check one address across L2s
balances = asyncio.run(get_multi_chain_balances(
"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb5",
["ethereum", "arbitrum", "optimism", "base", "polygon"]
))
Gas Price Comparison
async def compare_gas_prices(chains: list[str]) -> dict:
"""Compare gas prices across EVM chains."""
results = {}
async with aiohttp.ClientSession() as session:
for chain in chains:
url = f"https://api.axol.io/api/v1/blockchain/{chain}/gas"
response = await session.get(url, headers={"X-API-Key": "YOUR_KEY"})
data = await response.json()
results[chain] = data.get("data", {}).get("fast", 0)
return dict(sorted(results.items(), key=lambda x: x[1]))
# Find cheapest chain
gas_prices = asyncio.run(compare_gas_prices([
"ethereum", "arbitrum", "optimism", "base", "polygon"
]))
print(f"Cheapest: {list(gas_prices.keys())[0]}")
Gateway Access (Direct RPC)
For low-latency MEV operations, use the Gateway for direct node access:
| Chain | Gateway Endpoint |
|---|---|
| Ethereum | https://gateway.axol.io/ethereum |
| Optimism | https://gateway.axol.io/optimism |
| Base | https://gateway.axol.io/base |
See Gateway Documentation for details.
Pricing
All chains consume the same CU cost per method type.
Whether you call eth_blockNumber on Ethereum or getLatestBlockhash on Solana, you pay the same CU cost. No premium pricing for specific chains.
See Compute Units for method costs.
Beta Chains
Beta chains have the same API interface and performance as production chains but may have:
- Limited historical/archive data (typically last 30-90 days)
- Potential API changes as we optimize
- Slightly lower SLA guarantees
Current beta chains: Unichain, Babylon, Aztec
Requesting New Chains
We continuously add new chains based on:
- Developer demand
- Network maturity
- Data availability
- Technical feasibility
Request a chain: hello@axol.io
See Also
- Unified Pattern - API structure
- Gas API - Gas prices
- Compute Units - Method costs