Skip to main content

Tools & Dashboards

Interactive tools for blockchain data exploration and analysis, all powered by the same API endpoints you can access programmatically.

Price Dashboard

Real-time cryptocurrency price tracking across all supported chains.

Features:

  • Live price updates every 30 seconds
  • Market cap and volume tracking
  • 24-hour change indicators
  • Historical price charts

Price API Endpoints

EndpointDescriptionCU Cost
GET /v1/price/{chain}/{symbol}Current token price5 CUs
GET /v1/price/{chain}/{symbol}/historyHistorical prices15 CUs/day

Get Current Price

curl -H "X-API-Key: $AXOL_API_KEY" \
https://api.axol.io/api/v1/price/ethereum/ETH

Response:

{
"symbol": "ETH",
"price_usd": 3250.50,
"price_change_24h": 2.5,
"volume_24h": 15000000000,
"market_cap": 390000000000,
"timestamp": "2026-01-15T10:30:00Z"
}

Python Example

import requests

API_KEY = "your_api_key"
BASE_URL = "https://api.axol.io/api/v1"
headers = {"X-API-Key": API_KEY}

def get_price(chain: str, symbol: str) -> dict:
"""Get current token price."""
response = requests.get(
f"{BASE_URL}/price/{chain}/{symbol}",
headers=headers
)
return response.json()

def get_price_history(chain: str, symbol: str, days: int = 7) -> list:
"""Get historical prices."""
response = requests.get(
f"{BASE_URL}/price/{chain}/{symbol}/history",
headers=headers,
params={"days": days}
)
return response.json()

# Get ETH price
eth_price = get_price("ethereum", "ETH")
print(f"ETH: ${eth_price['price_usd']:,.2f}")

# Get 7-day history
history = get_price_history("ethereum", "ETH", days=7)

TypeScript Example

const API_KEY = process.env.AXOL_API_KEY;
const BASE_URL = 'https://api.axol.io/api/v1';

interface TokenPrice {
symbol: string;
price_usd: number;
price_change_24h: number;
volume_24h: number;
market_cap: number;
timestamp: string;
}

async function getPrice(chain: string, symbol: string): Promise<TokenPrice> {
const response = await fetch(
`${BASE_URL}/price/${chain}/${symbol}`,
{ headers: { 'X-API-Key': API_KEY } }
);
return response.json();
}

// Get multiple token prices
const tokens = ['ETH', 'USDC', 'USDT'];
const prices = await Promise.all(
tokens.map(token => getPrice('ethereum', token))
);

prices.forEach(p => {
console.log(`${p.symbol}: $${p.price_usd.toLocaleString()}`);
});

Blockchain Explorer

Universal multi-chain explorer with real-time data.

Features:

  • Universal search across all chains
  • Transaction tracking and analysis
  • Address balance lookups
  • Block information
  • Gas price tracking

Explorer API Endpoints

EndpointDescriptionCU Cost
GET /v1/blockchain/{chain}/blocks/latestLatest block10 CUs
GET /v1/blockchain/{chain}/blocks/{number}Block by number21 CUs
GET /v1/blockchain/{chain}/transaction/{hash}Transaction details15 CUs
GET /v1/blockchain/{chain}/balance/{address}Address balance15 CUs
GET /v1/blockchain/{chain}/gasCurrent gas prices10 CUs

Get Transaction Details

curl -H "X-API-Key: $AXOL_API_KEY" \
https://api.axol.io/api/v1/blockchain/ethereum/transaction/0x123...

Response:

{
"success": true,
"data": {
"hash": "0x123...",
"block_number": 19500000,
"from": "0xabc...",
"to": "0xdef...",
"value": "1000000000000000000",
"gas_used": 21000,
"gas_price": "25000000000",
"status": "success",
"timestamp": "2026-01-15T10:30:00Z"
}
}

Get Address Balance

curl -H "X-API-Key: $AXOL_API_KEY" \
https://api.axol.io/api/v1/blockchain/ethereum/balance/0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb5

Response:

{
"success": true,
"data": {
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb5",
"balance": "12500000000000000000",
"balance_formatted": "12.5 ETH",
"chain": "ethereum"
}
}

Python Explorer Example

import requests
from typing import Optional

API_KEY = "your_api_key"
BASE_URL = "https://api.axol.io/api/v1"
headers = {"X-API-Key": API_KEY}

class BlockchainExplorer:
def __init__(self, chain: str = "ethereum"):
self.chain = chain

def get_latest_block(self) -> dict:
"""Get the latest block."""
response = requests.get(
f"{BASE_URL}/blockchain/{self.chain}/blocks/latest",
headers=headers
)
return response.json()["data"]

def get_transaction(self, tx_hash: str) -> dict:
"""Get transaction details."""
response = requests.get(
f"{BASE_URL}/blockchain/{self.chain}/transaction/{tx_hash}",
headers=headers
)
return response.json()["data"]

def get_balance(self, address: str) -> dict:
"""Get address balance."""
response = requests.get(
f"{BASE_URL}/blockchain/{self.chain}/balance/{address}",
headers=headers
)
return response.json()["data"]

def get_gas_prices(self) -> dict:
"""Get current gas prices."""
response = requests.get(
f"{BASE_URL}/blockchain/{self.chain}/gas",
headers=headers
)
return response.json()["data"]

# Usage
explorer = BlockchainExplorer("ethereum")

# Get latest block
block = explorer.get_latest_block()
print(f"Latest block: {block['block_number']}")

# Check balance
balance = explorer.get_balance("0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb5")
print(f"Balance: {balance['balance_formatted']}")

# Get gas prices
gas = explorer.get_gas_prices()
print(f"Gas (fast): {gas['fast']} gwei")

TypeScript Explorer Example

const API_KEY = process.env.AXOL_API_KEY!;
const BASE_URL = 'https://api.axol.io/api/v1';

class BlockchainExplorer {
constructor(private chain: string = 'ethereum') {}

private async fetch<T>(endpoint: string): Promise<T> {
const response = await fetch(
`${BASE_URL}${endpoint}`,
{ headers: { 'X-API-Key': API_KEY } }
);
const data = await response.json();
return data.data;
}

async getLatestBlock() {
return this.fetch(`/blockchain/${this.chain}/blocks/latest`);
}

async getTransaction(hash: string) {
return this.fetch(`/blockchain/${this.chain}/transaction/${hash}`);
}

async getBalance(address: string) {
return this.fetch(`/blockchain/${this.chain}/balance/${address}`);
}

async getGasPrices() {
return this.fetch(`/blockchain/${this.chain}/gas`);
}
}

// Usage
const explorer = new BlockchainExplorer('ethereum');

const block = await explorer.getLatestBlock();
console.log(`Latest block: ${block.block_number}`);

const gas = await explorer.getGasPrices();
console.log(`Fast gas: ${gas.fast} gwei`);

Gas Tracker

Compare gas prices across chains and find the cheapest option.

Gas Comparison Endpoint

curl -H "X-API-Key: $AXOL_API_KEY" \
"https://api.axol.io/api/v1/gas/compare?chains=ethereum,polygon,arbitrum,optimism,base"

Response:

{
"success": true,
"data": {
"timestamp": "2026-01-15T10:30:00Z",
"prices": {
"ethereum": {"fast": 30, "usd_per_transfer": 2.50},
"polygon": {"fast": 100, "usd_per_transfer": 0.02},
"arbitrum": {"fast": 0.1, "usd_per_transfer": 0.15},
"optimism": {"fast": 0.001, "usd_per_transfer": 0.08},
"base": {"fast": 0.001, "usd_per_transfer": 0.05}
},
"cheapest": "base"
}
}

Find Cheapest Chain

def find_cheapest_chain(chains: list[str]) -> tuple[str, float]:
"""Find the cheapest chain for a transaction."""
response = requests.get(
f"{BASE_URL}/gas/compare",
headers=headers,
params={"chains": ",".join(chains)}
)
data = response.json()["data"]
cheapest = data["cheapest"]
cost = data["prices"][cheapest]["usd_per_transfer"]
return cheapest, cost

# Find cheapest L2
chain, cost = find_cheapest_chain(["arbitrum", "optimism", "base", "polygon"])
print(f"Cheapest: {chain} (${cost:.4f} per transfer)")

Data Sources

All tools use the same reliable data infrastructure:

  • Direct node connections for real-time blockchain data
  • Aggregated price feeds from major exchanges
  • Historical data with 99.9% accuracy
  • Sub-second update latency

CU Usage Summary

Tool FeatureTypical CU Cost
Price lookup5 CUs
Gas price check10 CUs
Balance lookup15 CUs
Transaction details15 CUs
Block data10-21 CUs
Gas comparison10 CUs

Dashboard queries typically use low-cost methods (5-25 CUs per request).


See Also