Indexed SolanaBlockchain Data
Solana runs the SVM on a proof-of-stake Layer 1 with 400-millisecond slots, where programs hold no state of their own and data lives in accounts they own.
How to query Solana data with SonarX
Instant Data Share
Available todaySnowflake, and file dumps to your object storage
Query Solana blockchain data with plain SQL from a live database inside your own Snowflake account, populated with the indexed chain dataset. There is no pipeline to build and no second copy to store. The same dataset ships as file dumps to your own object storage for lakes and warehouses that are not Snowflake.
- Full history as a Snowflake data-share
- File dumps to S3 or your own object storage
- Real-time delivery, current to chain tip
Used for:
- Analytics teams already on Snowflake that want Solana data beside their existing tables
- Fund accounting and treasury reporting that reconciles against a fixed history
- Cross-chain questions answered in one SQL statement instead of one query per chain
- Loading Solana history into BigQuery, Databricks, Redshift or a Spark lake
- Replacing a self-hosted indexer and the engineering time that keeps it running
- Serving one governed dataset to several desks without copying it per team
Kafka Streaming
Available todayEvent stream
Consume Solana activity as a continuous stream of normalized records, produced as the chain is indexed instead of polled for.
Used for:
- Trading and execution systems that act on Solana activity within seconds
- Fraud and anomaly detection that has to fire before settlement
- Live dashboards and alerting on Solana wallet or protocol activity
- Feeding a stream processor that already reads from Kafka
- Keeping an internal store hot without waiting for a batch window
- Event-driven services that would otherwise poll on a timer
Curated Datasets
Available todayPurpose-built tables
Protocol-level Solana datasets modelled for one job, so the decoding and the joins are done before the data reaches you.
- DeFi
- Staking
- Tokens and payments
Used for:
- Position-level Solana lending, swap and liquidity analysis
- Reward, delegation and validator reporting without rebuilding the model
- Token distribution, holder and payment-flow reporting
- Risk and exposure work that needs protocol state, not raw logs
- Skipping the decoding layer an in-house team would have to maintain
- Extending an existing Solana share with a modelled slice
Balances
Available todayTables and REST
Read what a Solana address held, either as it stands now or exactly as it stood at a past block or timestamp.
- Point-in-time balance tables, as at any block or timestamp
- Real-time balances API for latest and historical balances
- Batch API for wallets, tokens and balances in bulk
Used for:
- Reconstructing Solana portfolios and NAV as at a reporting date
- Audit and reconciliation work that has to be repeatable months later
- Wallet and portfolio products that render Solana balances on page load
- Compliance checks that read one Solana address at one block height
- Refreshing holdings for a whole book of accounts on a schedule
- Tax and cost-basis workflows that need holdings at each event
Realtime API
Enabled on requestREST over the indexed dataset
Query indexed Solana records over REST, reading the same dataset the share reads, with no warehouse in the path.
Used for:
- Applications that need one answer rather than a table scan
- Customer-facing screens where query latency is visible to a user
- Services that have no data warehouse and do not want to run one
- Prototyping against production data before committing to a share
- Backend checks that run per request instead of per batch
- Teams that want indexed Solana data behind their own API layer
Solana data: frequently asked questions
What is Solana?
Solana is a Layer 1 that opened its mainnet beta in March 2020. Blocks come from a proof-of-stake validator set running Tower BFT, with Proof of History supplying a verifiable clock so the leader schedule can be fixed in advance: a slot is 400 milliseconds by design, and 432,000 slots make an epoch of about two days. Execution happens in the Sealevel runtime, which runs transactions in parallel whenever they declare non-overlapping account writes, and programs are compiled to SBF bytecode rather than EVM bytecode. The account model is the part that surprises people. Programs hold no state of their own, data lives in separate accounts they own, and a wallet’s position in a token sits in one token account per mint instead of a field on the wallet itself. The native asset is SOL, divisible into a billion lamports, with each base fee split between a burn and the block leader. Since 2023 the ledger has also carried compressed state, where large collections are committed as a Merkle root and the individual records exist only in transaction history.
Solana data on SonarX
SonarX indexes Solana at the level the ledger records it: slots and blocks, transactions with their instructions and inner instructions, account writes, program invocations, and token mints, transfers and balances. Those records are normalized into the same model SonarX uses on every network it covers, so a Solana query and a Sui query take the same shape and can be joined without a translation layer between them.
Full historical coverage is available today as a data-share or a file delivery. Real-time delivery keeps the same dataset current to chain tip. Point-in-time balance tables, the real-time balances API and the batch wallets, tokens and balances API are all available for Solana. Kafka streaming carries the same records as a live topic today.
How SonarX indexes Solana
Solana has no event logs. Nothing plays the part an ERC-20 transfer event plays elsewhere, so a transfer view is assembled by decoding instructions and inner instructions per program and by differencing the pre- and post-transaction token balances stored beside them. Versioned transactions reference accounts through lookup tables, so the account list is not fully present in the message. Slot numbers are not block numbers either: leaders skip slots, and a restart after a halt resumes from a snapshot, so absences in the sequence are expected. Compressed collections have no account to read at all, and their current state is only recoverable from history.
What teams build with Solana data
NFT market analysis is the loudest request here: listings, sales and royalty payments are program instructions rather than logs, so a marketplace’s history only reconstructs when that program’s instruction layout is decoded correctly, compressed collections included. Market-structure research is next, where swap-level history across several AMM programs has to land in one table instead of one per venue. Third is token distribution work, tracing an issuance from its mint authority through token accounts to the holders who kept it, which on Solana means following accounts rather than one contract’s internal ledger. Underneath all three sits the same requirement: program decoding that keeps up as the programs themselves change, since a marketplace or an AMM that ships a new version leaves its old instruction layout in the history. Token analytics and cross-chain flow studies read the same records, often beside Monad when teams are comparing execution models.
Getting Solana data from SonarX
Tell us the delivery target, how far back you need and how fresh it has to be, and the share is scoped against that. Solana history and the balance APIs are available now, so a first delivery is provisioning rather than engineering. The published coverage matrix for every network SonarX indexes lives in the data documentation, and the rest of the catalogue is at all indexed chains.
Is there a Solana data API?
Yes. Real-time and batch APIs over indexed Solana data are available today, covering historical and latest balances and wallet, token and balance lookups in bulk. They read from the same indexed dataset as the Snowflake share and the file delivery, so an API answer and a warehouse query agree.
How do I get Solana data into Snowflake?
SonarX provisions a data-share into your own Snowflake account. The share appears as a database you query with SQL, so there is no pipeline to build and no second copy to store, and it stays current as SonarX advances the indexing pipeline.
How far back does Solana coverage go?
The historical data-share and file delivery cover Solana's recorded history from the 2020 mainnet beta forward, and are available today. Solana produces far more records per year of wall-clock time than a chain with multi-second blocks, so most engagements scope the backfill by date range first and then decide whether the earliest years are worth carrying.
How does SonarX index Solana without event logs?
By parsing what the ledger does record. There is no transfer event to subscribe to, so transfers and program activity are reconstructed from instructions and inner instructions, decoded per program, and from the pre- and post-transaction token balances the ledger stores next to them. That is also why program coverage, rather than contract coverage, is the useful question to ask about Solana data.
Are SPL token balances included in Solana data?
Yes, and they are modelled the way Solana models them. A wallet does not hold token balances directly: it owns one token account per mint, and its position in a token is that account's balance. Indexed data keeps the account-level detail and the wallet-level rollup, because reconciliation work needs the first and reporting needs the second.
Do Solana vote transactions appear in the data?
Vote transactions are part of the ledger, and they are consensus messages rather than user activity. Any analysis that counts Solana transactions has to decide whether to include them, so the indexed data keeps the distinction visible instead of making that call for you.
How are Solana network halts and skipped slots reflected in the data?
As gaps, which are normal on this chain. Leaders skip slots, so slot numbers are not a dense block sequence, and after a halt the network resumes from a snapshot at an agreed height. Indexed Solana data preserves the real slot numbering rather than renumbering blocks to look continuous, so a query that expects one block per slot needs to allow for absences.
How do I start with Solana data?
Tell SonarX the delivery target, the history depth and the refresh cadence you need, and the share is scoped against that. There is no self-serve signup: every engagement is provisioned, so the first conversation is about scope rather than credentials.