Chains and IDs
Chain IDs
A chain is named by a CAIP-2 chain ID, a namespace:reference label. All of them are EVM chains, so the namespace is eip155 and the reference is the chain number.
| Chain | ID | Coin | Served for |
|---|---|---|---|
| Ethereum | eip155:1 | ETH | Blocks, transactions, addresses, tokens, prices, DeFi and daily activity |
| Monad | eip155:143 | MON | Blocks, transactions, addresses, tokens, prices, DeFi and daily activity, plus x402 and Perpl |
| Arc | eip155:5042 | USDC | Blocks, transactions, addresses, tokens, prices, DeFi and daily activity |
| Base | eip155:8453 | ETH | x402 only |
x402 covers Monad and Base. Perpl covers Monad only. A well-formed ID of a chain Sona does not serve, such as eip155:10, answers 404 unsupported_chain. A malformed ID answers 400 invalid_id.
GET /v1/chains lists the explorer chains, Ethereum, Monad and Arc. Polymarket routes are not chain-scoped.
Arc
Arc, eip155:5042, has a block about every 0.5 s and instant finality, so a block is final as soon as it is seen. Its coin is USDC, which has 18 decimals as the native coin and 6 decimals as the ERC-20 token at 0x3600000000000000000000000000000000000000. Native values on Arc use 18 decimals and token values use 6, and Sona never adds the two views of the same movement together. Gas is paid in USDC.
Addresses
An address is 0x and 40 hex digits. Requests accept lowercase, uppercase or EIP-55 mixed case. In mixed case the capital letters act as a checksum, so a mixed-case address with a wrong checksum answers 400 invalid_id.
| Form | Example | Used by |
|---|---|---|
| Plain address | 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 | x402, Perpl, token and Polymarket routes, and search |
| Chain-qualified (CAIP-10) | eip155:1:0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 | GET /v1/addresses/{id}, one chain |
| Every chain | evm:0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 | GET /v1/addresses/{id}, every chain at once |
Block, transaction and address answers use EIP-55. x402 and Perpl answers use lowercase.
Transactions and blocks
A transaction or block hash is 0x and 64 hex digits. Any case is accepted and answers use lowercase.
A block is named in the path by one of these.
| Form | Example |
|---|---|
| Decimal number, no leading zeros | 26149668 |
| Block hash | 0x44197de439609e2d858fab83f3018ba37537816a3275ee3f037587c018c129fa |
latest | The newest block |
safe | The newest block the chain's validators have voted safe |
finalized | The newest final block |
A block number in hexadecimal, such as 0x18f0224, answers 301 with a Location header holding the decimal path. It costs nothing.
To find a transaction without knowing its chain, use GET /v1/txs/{hash}. It asks every chain and costs 5 credits.
Other IDs
| ID | Form |
|---|---|
| Perpl market | The symbol in any case, or the decimal perp id |
| x402 facilitator | A registry id of lowercase letters, digits and hyphens (at most 64 characters), a relayer address, or unknown |
| x402 seller or payer | An address |
| Token | A 0x address of 40 hex digits in any case, lowercased by Sona. Price charts also accept native for the chain's coin. |
| Polymarket wallet | A 0x address of 40 hex digits in any case, lowercased by Sona |
Not sure what a user typed? GET /v1/search?q= turns an address, hash, block number or chain ID into the route that answers it.