Appearance
Chain data API
A read-only, public API indexing the whole chain. This is a Blockscout v2 instance, so if you have used Blockscout elsewhere the shapes will be familiar.
Base URL: https://api.testnet.kriptonyx.com/api/v2
No authentication, no key.
Endpoints
Chain
| Endpoint | Returns |
|---|---|
GET /stats | Totals — blocks, transactions, addresses, gas prices |
GET /search?q= | Blocks, transactions, addresses and tokens by term |
Blocks
| Endpoint | Returns |
|---|---|
GET /blocks | Recent blocks, paginated |
GET /blocks/{number_or_hash} | One block |
GET /blocks/{number_or_hash}/transactions | Its transactions |
Transactions
| Endpoint | Returns |
|---|---|
GET /transactions | Recent transactions, paginated |
GET /transactions/{hash} | One transaction |
GET /transactions/{hash}/logs | Its event logs |
GET /transactions/{hash}/token-transfers | Its token transfers |
Addresses
| Endpoint | Returns |
|---|---|
GET /addresses/{hash} | Balance, contract flag, metadata |
GET /addresses/{hash}/transactions | Transaction history |
GET /addresses/{hash}/token-balances | All token balances |
GET /addresses/{hash}/logs | Logs emitted by a contract |
Tokens and contracts
| Endpoint | Returns |
|---|---|
GET /tokens | Token registry |
GET /tokens/{hash} | One token |
GET /tokens/{hash}/holders | Holder list |
GET /smart-contracts/{hash} | Verified source and ABI |
Examples
bash
curl -s https://api.testnet.kriptonyx.com/api/v2/statsjson
{ "total_blocks": "6181577", "total_transactions": "415", "total_addresses": "144" }bash
curl -s https://api.testnet.kriptonyx.com/api/v2/transactions/0x3341c2aff0d8409c62f728ea8aef00f77cec5b1c32f91257ee930034876cc075Pagination
List endpoints return next_page_params. Pass it back as a query string to get the next page; null means the end.
js
const base = 'https://api.testnet.kriptonyx.com/api/v2';
let url = `${base}/addresses/${pair}/logs`;
const all = [];
while (url) {
const body = await fetch(url).then((r) => r.json());
all.push(...body.items);
url = body.next_page_params
? `${base}/addresses/${pair}/logs?` + new URLSearchParams(body.next_page_params)
: null;
}Bound your loops
History is long. Stop once you have passed the block or timestamp you care about rather than walking to genesis.
Why not eth_getLogs
The node caps a single log query at 10,000 blocks, and the chain is past six million. Reading a contract's full history over JSON-RPC means hundreds of calls with careful range management. The indexer has already done this — one paginated request gives you the same data.
This is exactly how the explorer's DeFi panel derives pool volume: it reads Swap events from each pair's logs through this API.