
Account & Token APIs
Common parameters (when enabled):
Many Solana read endpoints support a shared set of knobs.
Common request parameters
This page focuses on account state and SPL token holdings.
Acceso’s Solana API exposes wallet and token state through normalized, production-ready schemas. It abstracts raw Solana RPC quirks and upstream instability.
commitment:processed | confirmed | finalizedmin_context_slot: avoid serving data older than a known slotinclude_metadata: enrich SPL tokens with name/symbol/decimals (route-dependent)
Primary route (documented in examples):
Account reads answer: “does this address exist, who owns it, and what is its native balance?”
Account data
GET /v1/solana/account/<ADDRESS>
Account responses are normalized for application logic. Common fields include:
What you typically get
addressexists(or an equivalent “not found” signal)lamportsandsol(decimal-normalized)owner_program(program id)executablerent_epoch(when applicable)slot/block_timefor the read context (when exposed)
Existence semantics
Solana addresses can be “valid” but have no on-chain account. Deployments typically handle this as either:
200withexists=false, or404with a structured error.
Do not assume one behavior unless your deployment contract states it.
Token holdings (SPL)
Holdings typically provide:
Normalization guarantees
Acceso parses token accounts and produces an aggregated holdings view.
Token holdings answer: “what SPL mints does this wallet hold, and how much?”
Aggregation across multiple token accounts per mint.
Decimal-aware conversion (
raw_amount→ui_amount).Optional metadata enrichment (symbol/name/decimals), when configured.
Fetch account state for SOL balance and ownership context.
Fetch token holdings for SPL balances.
Cache token metadata aggressively (slow-changing).
Example workflow: wallet portfolio snapshot
Caching and freshness
Caching is route-dependent:
Hot reads may be cached for short TTLs to protect upstream RPCs.
Token metadata is usually cached longer and deduplicated across requests.
If your use case is latency-sensitive, prefer fewer, richer calls over many small calls.
Last updated