Overview
Conventions, base URLs, and the full endpoint catalogue.
Base URL
https://api.sarg.am/v1/solana (mainnet)
https://api.sarg.am/v1/solana-devnet (devnet)
https://api.sarg.am/v1/ethereum (mainnet)
https://api.sarg.am/v1/ethereum-sepolia (Sepolia)The chain segment is part of the path by design. Solana and Ethereum share the same REST conventions, while chain-specific endpoint support depends on what the underlying network RPC can answer without an indexer.
Conventions
- Auth:
Authorization: Bearer <key>header on every request. - Bodies: JSON in, JSON out.
Content-Type: application/jsononPOST. - Casing: all fields are
camelCase. - Timestamps: ISO 8601 UTC strings (
"2026-08-04T09:41:00Z"). - Amounts: raw + human-readable, always. See Amounts & units.
- Lists:
cursor/limitin,items/nextCursorout. See Pagination. - Reads: optional
confirmationquery parameter, defaultconfirmed. See Confirmation levels. - Failures: uniform error body. See Errors.
Endpoints
The Solana API currently implements the full catalogue below. Ethereum support is in MVP status; see Ethereum support for the route matrix and the indexed-data gaps.
Wallets
| Method | Path | Description |
|---|---|---|
| GET | /wallets/{address}/balance | SOL balance |
| GET | /wallets/{address}/tokens | All tokens with metadata and prices |
| GET | /wallets/{address}/nfts | All NFTs, including compressed |
| GET | /wallets/{address}/transactions | Parsed transaction history |
Transactions
| Method | Path | Description |
|---|---|---|
| GET | /transactions/{signature} | One parsed transaction |
| POST | /transactions/send | Submit a signed transaction |
| GET | /transactions/{signature}/status | Confirmation status |
| POST | /transactions/simulate | Dry-run a transaction |
Tokens
| Method | Path | Description |
|---|---|---|
| GET | /tokens/{mint} | Token metadata, supply, and price |
| GET | /tokens/{mint}/holders | Largest holders |
NFTs
| Method | Path | Description |
|---|---|---|
| GET | /nfts/{id} | One NFT with full details |
| GET | /collections/{address} | Collection info and floor price |
| GET | /collections/{address}/nfts | NFTs in a collection |
Programs (smart contracts)
| Method | Path | Description |
|---|---|---|
| GET | /programs/{programId} | Program info and upgrade authority |
| GET | /programs/{programId}/accounts | Query a program's accounts with filters |
| POST | /programs/{programId}/view | Read-only program call with return value |
Accounts (advanced)
| Method | Path | Description |
|---|---|---|
| GET | /accounts/{address} | Raw account info, decoded |
| POST | /accounts/batch | Up to 100 accounts at once |
Network
| Method | Path | Description |
|---|---|---|
| GET | /network/status | Health, slot, epoch |
| GET | /network/fees | Priority fee estimates |
| GET | /network/blockhash | Fresh blockhash for manual transaction building |
Reading the reference pages
Each endpoint page documents parameters, a real request, a real response, and — in an Under the hood section — which raw Solana RPC calls the endpoint replaces. If you're migrating from hand-written JSON-RPC, that section is your mapping table.