Explorer API
Public REST endpoints for slots, transactions, addresses and tokens.
TestnetVerified Oct 15, 2026
Basics#
The Testnet explorer publishes a read-only JSON API at https://explorer-testnet.kyvro.si/api/v1. Every endpoint returns JSON; failures return {"error": "not_found" | "upstream_error", "message": "…"} with the matching status code. Health is the one endpoint that lives at the site root instead of under /api/v1.
Human-readable pages live alongside the API:
/tx/<signature>, /address/<address>, /block/<slot> and /token/<mint> on https://explorer-testnet.kyvro.si(opens in a new tab).Endpoints#
| Endpoint | Returns |
|---|---|
GET /health | Service health with the current slot and indexer state (at the site root, not /api/v1) |
GET /overview | Chain identity, slot, block height, epoch, supply, TPS, validators and node version |
GET /blocks | Recent blocks (up to 25) plus any indexer error |
GET /transactions | Recent transactions (up to 50) plus any indexer error |
GET /block/:slot | One block: hashes, parent slot, time, rewards and per-transaction results. 404 when the slot was skipped or pruned |
GET /tx/:sig | One transaction, jsonParsed: accounts with pre/post balances, instructions, inner instructions, logs and token balances |
GET /address/:addr | Balance, owner, parsed data and recent signatures — plus upgrade-authority details for programs (see below) |
GET /token/:mint | Decimals, supply, mint/freeze authorities and largest holders |
GET /validators | Epoch, total stake, and per-validator stake, commission, votes and delinquency |
GET /search?q=… | Routes a query to a block, transaction, address or token page |
For program addresses, /address/:addr includes an upgradeable object — the program-data account, upgrade authority (null when immutable), deployment slot and an immutable flag. See checking an authority.
Examples#
curl -s https://explorer-testnet.kyvro.si/api/v1/overview
curl -s https://explorer-testnet.kyvro.si/api/v1/blocks
curl -s "https://explorer-testnet.kyvro.si/api/v1/search?q=<signature-or-address-or-slot>"const res = await fetch("https://explorer-testnet.kyvro.si/api/v1/overview");
const overview = await res.json();
console.log(overview.slot, overview.epoch, overview.tps);Something wrong or missing on this page? Send developer feedback.