Skip to main content

Blockchain Integration

Axol API provides unified access to 17 blockchains through a single interface.

Supported Chains

Production Ready (12 chains)

  • Ethereum (EVM)
  • Arbitrum (EVM)
  • Optimism (EVM)
  • Base (EVM)
  • Polygon (EVM)
  • Gnosis (EVM)
  • Bitcoin (UTXO)
  • Solana (Solana)
  • Starknet (Cairo)
  • Tron (TVM)
  • Polkadot (Substrate)
  • Celestia (Cosmos)

Beta Support (5 chains)

  • Sei (Cosmos) Beta
  • Sui (Move) Beta
  • dYdX (Cosmos) Beta
  • Babylon (Cosmos) Beta
  • Osmosis (Cosmos) Beta

All chains include: Mainnet, Archive data, WebSocket, and RPC access

Chain Identifiers

CategoryChainAPI IDChain IDNative TokenStatus
EVMEthereumethereum1ETHProduction
Arbitrumarbitrum42161ETHProduction
Optimismoptimism10ETHProduction
Basebase8453ETHProduction
Polygonpolygon137MATICProduction
Gnosisgnosis100xDAIProduction
Non-EVMBitcoinbitcoin-BTCProduction
Solanasolana-SOLProduction
Starknetstarknet-ETHProduction
Trontron-TRXProduction
Polkadotpolkadot-DOTProduction
Celestiacelestia-TIAProduction
BetaSeisei-SEIBeta
Suisui-SUIBeta
dYdXdydx-DYDXBeta
Babylonbabylon-BBNBeta
Osmosisosmosis-OSMOBeta

API Usage

# Get data for specific chain
client.get_block("ethereum", "latest")
client.get_block("solana", "latest")
client.get_block("bitcoin", "latest")

Common Operations

Get Chain Info

# Get chain metadata
info = client.get_chain_info("ethereum")
print(info)
# {
# "name": "Ethereum",
# "chain_id": 1,
# "native_token": "ETH",
# "block_time": 12,
# "rpc_url": "https://rpc.axol.io/eth"
# }

Cross-Chain Queries

# Get balances across multiple chains
address = "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb5"
chains = ["ethereum", "polygon", "arbitrum"]

balances = client.get_multi_chain_balances(address, chains)

Gas Prices

# Get gas prices for all supported EVM chains
gas_prices = client.get_gas_prices([
"ethereum", "polygon", "arbitrum", "optimism"
])

for chain, prices in gas_prices.items():
print(f"{chain}: {prices['fast']} gwei")

Chain-Specific Features

Ethereum & EVM

# ENS resolution
address = client.resolve_ens("vitalik.eth")

# Token balances
tokens = client.get_token_balances(
address="0x...",
chain="ethereum"
)

# Smart contract calls
result = client.call_contract(
chain="ethereum",
contract="0x...",
method="balanceOf",
params=[address]
)

Bitcoin

# UTXO queries
utxos = client.get_utxos("bc1q...")

# Transaction details
tx = client.get_transaction("bitcoin", "tx_hash")

# Address balance
balance = client.get_balance("bitcoin", "bc1q...")

Solana

# SPL token balances
tokens = client.get_spl_tokens("pubkey...")

# Program accounts
accounts = client.get_program_accounts(
chain="solana",
program_id="TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
)

# Transaction history
txs = client.get_signatures("pubkey...")

RPC Endpoints

Direct RPC access for each chain:

https://rpc.axol.io/{chain}

Example:

curl -X POST https://rpc.axol.io/ethereum \
-H "X-API-Key: your_key" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

WebSocket Connections

Real-time updates for each chain:

# Subscribe to new blocks
await client.ws.subscribe("blocks:ethereum", on_block)
await client.ws.subscribe("blocks:solana", on_block)

# Subscribe to pending transactions
await client.ws.subscribe("pending:ethereum", on_pending)

Pricing & Resources

All chains consume the same CU cost per method type. There's no premium pricing for specific chains.

See also: