Explorer
Blocks, transactions and addresses on Ethereum (eip155:1), Monad (eip155:143) and Arc (eip155:5042). All chains share the same request and response shapes, so code written for one works for the other.
Chains and status
/v1/chains lists the chains with their ID, name, coin symbol, decimals and block_time_ms. /v1/status shows each chain's latest, safe and finalized blocks and head_age_s, the age of the newest block. A chain that does not answer in time is null, and meta.partial is true. Both cost 0 credits.
curl -s "https://api.sonaintel.com/v1/status"Blocks
A block by decimal number, hash or tag. The tags are latest, safe (the newest block the validators have voted safe) and finalized (the newest final block).
curl -s "https://api.sonaintel.com/v1/chains/eip155:143/blocks/latest"| Field | Meaning |
|---|---|
number, hash, parent_hash, time | Identity and time |
miner | The address that receives the block's rewards and tips |
gas_used, gas_limit, base_fee_per_gas | Gas figures |
tx_count, transactions | The count and the hash of every transaction, in block order |
A block number written in hexadecimal answers 301 with a Location header holding the decimal form. Follow it, it costs nothing. The tags move as the chain grows, so links.self keeps the tag you used. Use data.number or data.hash to refer to that exact block later.
Transactions
One transaction on a chain you name.
curl -s "https://api.sonaintel.com/v1/chains/eip155:1/txs/0xd8da0850029a64bcf82546585d1305d349a2e2565f5b7fe329868f3c98d48966"| Field | Meaning |
|---|---|
status | success, failed (it ran but reverted, and its fee was still paid), pending or unknown |
block, index | Where it sits |
from, to, contract_created | Sender, receiver, and the new contract's address when it deployed one |
value, fee | The coin sent and the total paid for gas |
gas_used, effective_gas_price | Gas figures |
method_id, input_size, log_count | The called function and the sizes of the call data and events |
A pending transaction has status pending, null block and fee fields, and is not cached.
When you hold only a hash, /v1/txs/{hash} asks every chain and returns data.matches, each with the chain, block, finality and the href of the full transaction. It costs 5 credits.
Addresses
The balance, nonce and kind of an address. {id} is a CAIP-10 account ID for one chain, or evm: plus the address for every chain.
curl -s "https://api.sonaintel.com/v1/addresses/eip155:1:0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"| Field | Meaning |
|---|---|
type | A plain wallet (eoa), a smart contract, a wallet delegated to a contract, or a precompile |
balance | The chain's coin as raw wei, decimals, symbol and value |
nonce | How many transactions the address has sent |
block | The block the figures were read at |
Balances are read at the latest block, so meta.finality is always confirmed. An address that has never been used is not an error. It comes back with balance 0, nonce 0 and type eoa. The evm: form costs 2 credits and returns one entry per chain in data.chains, with null for a chain that did not answer within 400 ms. The route does not list an address's transactions or token balances.
Block, transaction and address answers use EIP-55 mixed-case addresses. A mixed-case address you send with a wrong checksum answers 400 invalid_id.
Search
Turns text typed into a search box into the lookup that answers it. Pass the text as q. Spaces and invisible characters around it are removed first.
curl -s "https://api.sonaintel.com/v1/search?q=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"| You type | You get |
|---|---|
An address (0x and 40 hex digits, or with evm:) | One address match, which works on every chain |
An address on one chain, eip155:143:0x... | One account match |
| A chain ID | One chain match |
eip155:1/tx/0x... | One tx match |
eip155:1/block/26149668 | One block match |
| A decimal number | One block match per served chain. Sona does not check the block exists. |
| A 64-character hash | One tx or block match from the first chain that has it |
Each match has type, chain, id and the href that returns its details. data.query is the input in canonical form. A search costs 1 credit, 5 for a 64-character hash because every chain is asked, and 0 for text that matches nothing. When no chain has the hash the answer is 404 not_found_on_supported_chains.
Reference pages: Blocks, Transactions, Addresses, Search and Chains.