Skip to content
OnchainQueries

OQ — 000 · Solana onchain data

OnchainQueries decodes Solana program data straight from the IDL into typed tables, then serves them over read-only OnchainQL. Thirty-seven protocols, sub-second reads, and every result checksummed so you can prove where the number came from.

Slot
372,140,688
Decode lag
1.4s
Programs
37
Tables
1074
Scroll //
Meteora Pools/meteora_pools_call_partner_claim_fee/1.2ms|Kamino Limit Orders/kamino_limit_orders_call_flash_take_order_end/1.9ms|Virtuals/virtuals_evt_buy_event/1.2ms|Meteora Dynamic Bonding Curve/meteora_dynamic_bonding_curve_evt_evt_swap2/2.7ms|Kamino Vault/kamino_vault_call_init_vault/4ms|Jupiter Limit Order/jupiter_limit_order_call_initialize_order/3.2ms|Meteora DLMM/meteora_dlmm_evt_claim_fee2/0.7ms|Pump.fun/pump_fun_evt_admin_set_idl_authority_event/4.1ms|Kamino Limit Orders/kamino_limit_orders_call_update_global_config_admin/2.4ms|Kamino Limit Orders/kamino_limit_orders_call_update_global_config/2.3ms|Vertigo/vertigo_evt_pool_created/2ms|Marinade Finance/marinade_finance_call_resume/2ms|Kamino Lending/kamino_lending_call_redeem_reserve_collateral/2.8ms|Meteora AMM/meteora_amm_evt_evt_fund_reward/0.7ms|PumpSwap/pump_swaps_evt_reserved_fee_recipients_event/3.8ms|Meteora AMM/meteora_amm_evt_evt_withdraw_ineligible_reward/2.8ms|Stabble Stable Swap/stabble_stable_swap_evt_pool_balance_updated_event/3.6ms|Raydium Launchpad/raydium_launchpad_evt_trade_event/1.4ms|Pump.fun/pump_fun_evt_close_user_volume_accumulator_event/2.1ms|Boop/boop_boop_evt_config_updated_event/4.2ms|PancakeSwap/pancakeswap_pancakeswap_evt_collect_personal_fee_event/3.4ms|Meteora Dynamic Bonding Curve/meteora_dynamic_bonding_curve_evt_evt_curve_complete/3.6ms|Virtuals/virtuals_evt_launch_event/1.8ms|Lifinity AMM v2/lifinity_amm_v2_call_swap/1.8ms|Jupiter Limit Order/jupiter_limit_order_call_initialize_order/4.4ms|Jupiter Swap/jupiter_swap_evt_candidate_swap_quote_error/2.7ms|Orca Whirlpool/orca_whirlpool_evt_pool_initialized/2.3ms|Jupiter Limit Order/jupiter_limit_order_call_initialize_order/3.7ms|
OQ — 002The loop

From a question to a published dashboard, without leaving the browser.

Catalog37 programs
pump
  • pump_fun.trade_event event1.94B
  • pump_fun.create_event event31.7M
  • pump_fun.complete_event event4.2M
  • pump_fun.call_buy call1.21B
  • pump_swaps.buy_event event612M
OQ — 003Query engine

Every query is read-only, queued, and given the resources its shape calls for. You get the state, the attempt and the result — no dial to tune, no capacity planning.

grouped-aggregate.sql
SELECT date_trunc('hour', ts) AS hour,       count_if(is_buy) AS buysFROM pump_fun.trade_eventWHERE ts >= {{start_time}}GROUP BY hourORDER BY hour;
Latency distribution · last 24hOnchainQueries chose Medium

Job lifecycle

  1. Queued
  2. Running
  3. Complete
  • TerminalFailed
  • TerminalCancelled
  • TerminalExpired · 24h

Cancel a running job and its capacity is released immediately. Results live for 24 hours, then expire — so nothing you did not ask for is kept around.

OQ — 004Coverage

Not scraped, not inferred. OnchainQueries reads each program's IDL and produces typed tables with real column names — so pump_fun.complete has a sol_amount, not a byte offset.

1,074 tables · 37 programs

OQ — 005Dashboards

Save the query, pick a visualisation, and drop it on a canvas. Everything stays live against the engine — refresh it, schedule it, share it, or embed it in your own site.

dashboard · Solana market overviewRefreshed 40s ago Public
Decoded volume1.24B rows / day
Query mixby dataset family
  • DEX & Trading41%
  • Launchpads26%
  • Lending19%
  • Staking14%
Programs indexed

37

SOL / USDC1h candles
OQ — 006Data delivery

Results are not locked in a web app. Every query can leave as Parquet or Arrow, with a manifest and a checksum per part, so the number in your model is provably the number OnchainQueries returned.

query · zshVerified
$ query login
$ query sql --file trades.sql \ --param 'start_time:timestamp=2026-08-28 00:00:00' \ --output ./results
8f31c2 queued auto
8f31c2 running medium attempt 1
8f31c2 complete 128,441 rows
results/part-00000-00000.parquet 6.2 MB
results/part-00000-00001.parquet 6.1 MB
results/manifest.json
$ query status 8f31c2
"state": "complete", "selected_engine": "medium",
"expires_at": "2026-08-29T09:14:22Z"
✓ every part checksum-verified before rename

Parquet

--transport parquet

Numbered Parquet parts plus a manifest recording schema, source coverage, row counts and a SHA-256 per part. The manifest is written last.

Arrow Flight

--transport flight

Arrow IPC stream parts and a signed Flight ticket. Pass the decoded ticket to GetFlightInfo and pull batches with DoGet.

REST API

protobuf control API

Submit, poll status, attach to a running query, and cancel. The same control API the CLI uses — no private endpoints.

CLI

query sql --file

Run a .sql file with typed parameters, follow the job, and write checksum-verified results to disk in one command.

OQ — 007In production

“We replaced four indexers and a warehouse with one SQL box.”

Head of Research, NorthgatePlaceholder
Programs decoded
37
Tables available
367
Rows indexed
8.4B
Median query
0.6s
Helion CapitalNorthgate ResearchOrbital LabsVector TradingKestrel DigitalAnvil ProtocolRunway AnalyticsMeridian Funds

Placeholder logos — replace before launch

OQ — 008Pricing

Prepaid in SOL,on your schedule.

Top up when you need compute. The current rate is 50,000 credits per SOL, and your balance never resets.

1 SOL

1 SOL

one-time top-up

50,000 query credits

  • Prepaid balance never resets
  • Native SOL or quoted USDC
  • Wallet extension or manual transfer
  • Finalized on-chain receipt
Most picked

5 SOL

5 SOL

one-time top-up

250,000 query credits

  • Prepaid balance never resets
  • Native SOL or quoted USDC
  • Wallet extension or manual transfer
  • Finalized on-chain receipt

10 SOL

10 SOL

one-time top-up

500,000 query credits

  • Prepaid balance never resets
  • Native SOL or quoted USDC
  • Wallet extension or manual transfer
  • Finalized on-chain receipt

Need a different amount? Enter any custom top-up from 0.1 to 100 SOL after signup. Enterprise capacity remains available by arrangement.

OQ — 009Get started

Create a zero-balance account, then top up from 0.1 SOL. Prepaid only.