Chains API
Use the public-testnet API origin. A registry entry does not mean a chain is enabled or that every token has a route on it.
Endpoints
| Endpoint | Description |
|---|---|
GET /api/v1/chains |
All registered EVM chains, including disabled ones |
GET /api/v1/chains?enabled=true |
Enabled EVM chains only |
GET /api/v1/chains/{chainId} |
One chain, by numeric EVM chain ID |
GET /api/v1/chains/explorers/all |
Transaction explorer paths for enabled chains plus Casper |
enabled=true is the only enabled-only filter; omission or enabled=false returns all chains, not just disabled chains. Unknown parsed chain IDs return 404. The current ID route uses decimal parseInt: an ID with no parseable numeric prefix returns 400, but 11155111junk is interpreted as 11155111. Clients should send and validate digits-only IDs, not rely on the server to reject trailing text.
Chain object
List responses contain success: true and a data array. ID lookup contains a single data object.
| Field | Type | Description |
|---|---|---|
chainId |
number | EVM chain ID |
name |
string | Display name |
shortName |
string | API slug, such as base-sepolia |
explorerUrl |
string | Explorer origin |
lockerAddress |
string or null | Locker configured for this deployment |
nativeCurrency |
string | Gas currency symbol |
confirmations |
number | Configured confirmation depth; not a transfer-time guarantee |
blockTime |
string | Decimal seconds, e.g. "0.4000" |
isEnabled |
boolean | Whether this environment enables the chain |
isPrimary |
boolean | Primary-chain flag |
The response does not serve RPC URLs or a finalityMode field. For wallet network configuration supply independently verified public RPC endpoints for the requested chain; reject unsupported IDs rather than passing an undefined RPC URL to the wallet.
Public testnet enables Sepolia (11155111), Base Sepolia (84532), Polygon Amoy (80002) and Robinhood Chain Testnet (46630). See Supported Networks and Contract Addresses.
curl -fsS 'https://api.testnet.astralbeam.io/api/v1/chains?enabled=true' |
jq '.data[] | {chainId, shortName, lockerAddress}'
curl -fsS 'https://api.testnet.astralbeam.io/api/v1/chains/11155111'
Explorer links
Each data entry is keyed by chain slug and contains url and txPath. There is no address-path field. For bridge records prefer the already-built explorerLinks from the Transactions API.
async function transactionExplorerLink(chain, hash) {
const response = await fetch('https://api.testnet.astralbeam.io/api/v1/chains/explorers/all');
const body = await response.json();
if (!response.ok || !body.success) throw new Error(body.error || 'Explorer lookup failed');
const explorer = body.data[chain];
return explorer ? `${explorer.url}${explorer.txPath}${encodeURIComponent(hash)}` : null;
}