GoldRush Streaming on Solana
Critical Rules
- GraphQL WebSocket URL:
wss://streaming.goldrushdata.com/graphql. - Chain enum:
SOLANA_MAINNET(SCREAMING_SNAKE_CASE) - notsolana-mainnet(that is the Foundational REST chain name). newPairsonSOLANA_MAINNETcovers Raydium AMM/CLMM, Orca Whirlpool, Meteora DLMM/Dynamic, Jupiter, and PumpFun on one subscription. Filter client-side on theexchangefield.- PumpFun launches surface as
exchange: pumpfun. Raydium graduations surface seconds later asexchange: raydium-ammwith the samebase_token.address. ohlcvCandlesForPairtakes pool addresses (base58);ohlcvCandlesForTokentakes SPL mints and aggregates across every pool carrying that token.walletTxsaccepts thousands of wallet addresses per subscription on one WebSocket.- No rate limits on Streaming for Solana; no per-IP subscription cap.
Common Recipes
| Goal | Subscription | Filter / Args |
|---|---|---|
| New-pool firehose across every Solana DEX | newPairs | chain_name: SOLANA_MAINNET |
| PumpFun launches only | newPairs → filter exchange === "pumpfun" | client-side |
| Graduation detection | newPairs → track (base_token.address, exchange) pairs | client-side |
| Live OHLCV for a specific pool | ohlcvCandlesForPair | pair_addresses: ["<pool-pubkey>"] |
| Aggregated price for an SPL mint | ohlcvCandlesForToken | token_addresses: ["<mint>"] |
| Wallet activity firehose | walletTxs | chain_name: SOLANA_MAINNET, wallet_addresses: [...] |
GoldRush’s
newPairs subscription on SOLANA_MAINNET delivers new DEX pairs as they appear.
Subscribe
GraphQL Subscription
Python
wss://streaming.goldrushdata.com/graphql with your API key in the connection parameters.
The protocol field carries the DEX protocol name. Filter client-side to scope to a particular venue.
Patterns
”New pools” tab
Stream the firehose, dedupe bypair_address, drop pools below a liquidity threshold to filter spam, and display chronologically.
Cross-DEX arbitrage discovery
The same base/quote pair can launch on multiple venues within minutes. Group new pools by base/quote token addresses to discover routes for arb.Production considerations
- Reconnect on close or error. Wrap the subscribe call in a function and re-invoke on
error/completewith a 1-2s backoff. - Dedupe by
pair_address. During brief reconnects you may see a recently-emitted pool twice; deduplicate onpair_address. - No backfill on reconnect. The subscription delivers events from the moment it opens. For historical pairs and swaps, use the warehouse
swapsrecipe.
Related
- DEX Swaps warehouse recipe - decoded swaps landed in your warehouse.
- New DEX Pairs Stream reference - full subscription schema.
The
walletTxs subscription delivers transactions for the wallets you subscribe to, with decoded_details typed as a SwapTransaction or TransferTransaction union member.
Subscribe
GraphQL Subscription
SOLANA_MAINNET (SCREAMING_SNAKE_CASE), not solana-mainnet. The Streaming API uses the enum; the Foundational REST API uses the kebab-case form.
Patterns
Copy-trading
Subscribe to a curated list of high-performing wallets. Filter the stream onSwapTransaction and mirror to your own execution layer.
Whale watch
Subscribe to a curated list of high-balance wallets and surface every fill and large transfer in a live tape.Compliance / AML alerts
Subscribe to flagged addresses. Filter onTransferTransaction events and alert when amount exceeds a threshold.
Push vs pull
For long-range transfer history, use the warehousetransfers normalizer; use walletTxs here for the live tip.
Production considerations
- Reconnect on close or error. Wrap subscribe in a function; re-invoke with 1-2s backoff on
error/complete. - Validate addresses up front. Pre-filter with a base58 validator before passing in.
- No gap-fill on reconnect. Events that occurred during a disconnect are not replayed. For continuity across a gap, query the warehouse
transfersorswapstable over the disconnect window.
Related
- Wallet endpoints - REST companion for SPL token balances.
- SPL Transfers warehouse recipe - decoded SPL transfers landed in your warehouse.
- DEX Swaps warehouse recipe - decoded DEX swaps landed in your warehouse.
- Wallet Activity Stream reference - full subscription schema.
GoldRush exposes two OHLCV streams on
SOLANA_MAINNET:
ohlcvCandlesForPair- candles for a specific pool address.ohlcvCandlesForToken- candles aggregated across pools carrying that SPL mint.
Stream candles for a specific pool
Best for charting one pool.GraphQL Subscription
pair_addresses is an array of base58 pool addresses. You can subscribe to multiple pools on one subscription.
Stream candles for a token (across all pools)
ohlcvCandlesForToken aggregates across pools carrying that mint.
When to use pairs vs tokens
| Use case | Stream |
|---|---|
| Chart a single pool | ohlcvCandlesForPair with the pool address |
| Track arbitrage between two venues for the same pair | ohlcvCandlesForPair with both pool addresses |
| Get the USD price of a token aggregated across pools | ohlcvCandlesForToken |
Patterns
TradingView chart
Subscribe toohlcvCandlesForPair at the user’s selected interval; push candles into TradingView’s UDF datafeed adapter. The timestamp / open / high / low / close / volume_usd fields map 1:1 to UDF.
Discovery → chart
Pair this stream with the DEX firehose: when a new pool appears innewPairs, automatically subscribe to its OHLCV. Limit to pools above a liquidity threshold to avoid spam.
Pricing service
UseohlcvCandlesForToken on 1d candles for an aggregated USD price.
Related
- DEX firehose - discover new pools to subscribe to.
- OHLCV Pairs Stream reference - full subscription schema.
- OHLCV Tokens Stream reference - full subscription schema.
Warehouse Recipes
Theswaps normalizer streams decoded Solana DEX trades into your warehouse as one unified table. See the Solana normalizers page for the full per-column schema and supported protocols.
Why warehouse delivery
Streaming and REST are great for live execution and lookups, but every retention cohort, churn model, token analytics dashboard, and tax export lives in your data warehouse - not in HTTP responses. The Pipeline API streams Solana data continuously into customer-managed destinations with no ETL on your side.Pipeline configuration
Create a pipeline In the GoldRush Platform, navigate to Manage Pipelines and click Create Pipeline. Name itsolana-swaps.
Pick Solana + Swaps
Choose Solana as the chain and Swaps as the data type.
Configure your destination
Connect ClickHouse, BigQuery, Postgres, Kafka, S3/GCS/R2, SQS, or a Webhook. ClickHouse is recommended for high-volume analytical queries over swaps.
Schema
Theswaps table is documented in full on the Solana Normalizers page. Key columns include block_slot, block_time, tx_id, signer, pool_address, base_mint, quote_mint, base_amount, quote_amount, price_usd, volume_usd, protocol_name, and CPI attribution fields (outer_program, inner_program, instruction_type).
Sample analytical queries
Top tokens by 24h volume
Per-protocol market share by token
Whale activity
Jupiter routing through Raydium and Orca
Production tips
- ClickHouse for high-volume analytics. Solana swap volume is significant; analytical queries over millions of rows are much faster on ClickHouse than Postgres.
- Partition by
block_date. Most analytical queries are time-bounded. - Materialized views for per-token metrics. Build hourly / daily roll-ups in ClickHouse materialized views to keep dashboards snappy.
Related
- Solana Normalizers (full schema) - column-level reference for
swapsand other Solana entities. - SPL Transfers warehouse recipe - companion table for transfer-side analytics.
- DEX firehose (streaming) - real-time push for new pair events.
The
transfers normalizer streams decoded SPL token transfers on Solana into your warehouse. Each row carries source/destination account context (owner, balance pre/post, UI amount). See the Solana normalizers page for the full schema.
Pipeline configuration
Create a pipeline In the GoldRush Platform, navigate to Manage Pipelines and click Create Pipeline. Name itsolana-spl-transfers.
Pick Solana + Transfers
Choose Solana as the chain and Transfers as the data type.
Configure your destination
Connect ClickHouse, BigQuery, Postgres, Kafka, S3/GCS/R2, SQS, or a Webhook.
Schema
Thetransfers table is documented in full on the Solana Normalizers page. Key columns:
block_slot,slot,block_time,tx_hash(signature).mint,amount(raw uint64),token_decimals,is_raw_amount.source_address(token account),source_owner(wallet pubkey).destination_address,destination_owner.- Pre/post balances on both sides (
*_pre_balance,*_post_balance) plus UI-amount variants. transfer_indexfor ordering within a transaction.
Sample analytical queries
Daily stablecoin volume by mint
Net flow per wallet for a token
Exchange deposit attribution
Maintain a table of known exchange wallets; join againstdestination_owner to attribute deposits.
Production tips
source_owneranddestination_ownerare the wallet pubkeys, not the SPL token-account pubkeys. Index on these for wallet-centric queries.amountis raw uint64. Always divide bypower(10, token_decimals)(or use the*_uibalance columns) for human-readable amounts.- High-volume mints (USDC, USDT, WSOL). Partition by date and consider materialized views per top-N mint for fast dashboarding.
Related
- Solana Normalizers (full schema) - column-level reference for
transfersand other Solana entities. - DEX Swaps warehouse recipe - companion table for DEX-trade analytics.
- Wallet endpoints (REST) - REST lookups for the same transfer history.