Skip to main content

GoldRush Warehouse Recipes on Solana

Critical Rules

  1. Warehouse delivery lands decoded Solana data as unified tables into ClickHouse, BigQuery, Postgres, Kafka, or S3.
  2. The swaps normalizer streams decoded DEX trades; the transfers normalizer streams decoded SPL token transfers.
  3. SPL transfer history is not available on the Foundational REST API for Solana - use the warehouse transfers normalizer instead.

The swaps normalizer streams decoded Solana DEX trades into your warehouse as one unified table.

Why warehouse delivery

REST is great for live lookups, but every retention cohort, churn model, token analytics dashboard, and tax export lives in your data warehouse - not in HTTP responses. GoldRush 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 it solana-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.
Optional: SQL transform Filter or reshape rows before they land. Example: keep only swaps over $100 of volume.
Deploy Decoded swaps begin flowing within seconds.

Schema

Key columns of the swaps table 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.
  • SPL Transfers warehouse recipe - companion table for transfer-side analytics.

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).

Pipeline configuration

Create a pipeline In the GoldRush Platform, navigate to Manage Pipelines and click Create Pipeline. Name it solana-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.
Optional: SQL transform Filter rows before they land. Example: keep only stablecoin transfers.
Deploy Decoded transfers begin flowing within seconds.

Schema

Key columns of the transfers table:
  • 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_index for 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 against destination_owner to attribute deposits.

Production tips

  • source_owner and destination_owner are the wallet pubkeys, not the SPL token-account pubkeys. Index on these for wallet-centric queries.
  • amount is raw uint64. Always divide by power(10, token_decimals) (or use the *_ui balance 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.
  • DEX Swaps warehouse recipe - companion table for DEX-trade analytics.
  • Wallet endpoints (REST) - REST lookups for the same transfer history.