High-performance Solana DEX transaction indexer built with Substreams. Stream and parse swap transactions across multiple DEX protocols in real timeβfor analytics, MEV research, trading bots, and on-chain data pipelines.
- Features
- Supported DEX Protocols
- Architecture
- Quick Start
- Authentication
- Running the Indexer
- Example Output
- Use Cases
- Publishing
- Connect
| Real-time | Stream Solana DEX swaps as they land on-chain |
| Substreams | Built on StreamingFast Substreams for scalable, deterministic indexing |
| Program filtering | Only processes transactions that touch supported DEX Program IDs |
| Multi-protocol | Single pipeline for multiple DEX protocols |
| Use-case ready | Analytics, MEV, trading signals, and data pipelines |
| Protocol | Status |
|---|---|
| Raydium | β |
| Orca | β |
| Meteora | β |
| Pump.fun | β |
| PumpSwap | β |
| Bonk.fun | β |
βββββββββββββββββββ
β Solana Blocks β
ββββββββββ¬βββββββββ
β
βΌ
βββββββββββββββββββββββββββ
β Substreams Engine β
ββββββββββ¬βββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββ
β map_filtered_transactions β β Filter by Program IDs, exclude voting
ββββββββββ¬βββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββ
β DEX Swap Parser β
ββββββββββ¬βββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββ
β Structured Trade Events β
ββββββββββ¬βββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββ
β JSON / Your Data Pipeline β
βββββββββββββββββββββββββββββββββββ
- Input: Solana blocks from the Substreams engine
- Logic: Keeps only transactions that interact with supported DEX Program IDs; voting transactions are excluded.
- Output: Filtered transactions ready for the DEX swap parser.
-
Install the Substreams CLI
-
Build the project
substreams build
-
Authenticate (see Authentication)
-
Run (see Running the Indexer)
Log in to the StreamingFast endpoint before running the indexer:
substreams authStream filtered DEX transactions and write them to a file:
substreams run \
-e mainnet.sol.streamingfast.io:443 \
substreams.yaml \
map_filtered_transactions \
-s 355325435 \
-t +1 \
> trades.jsonl-sβ start slot-t +1β stream one block (adjust for continuous streaming)
Each emitted event is a structured trade record (e.g. one line per trade in trades.jsonl):
{
"dex": "Raydium",
"token_in": "SOL",
"token_out": "USDC",
"amount_in": 1.5,
"amount_out": 150.2,
"wallet": "abc123",
"slot": 355325435
}Use this stream for dashboards, research, or downstream pipelines.
- DEX analytics dashboards β volume, pairs, and flow in real time
- MEV research β detect and analyze sandwich and arbitrage patterns
- Trading bots β use on-chain swap flow as signals
- On-chain data pipelines β feed data warehouses or ML models
- Market monitoring β track liquidity and large trades across DEXes
Publish this Substream to the Substreams registry:
substreams registry login
substreams registry publishBuilt with Substreams for the Solana ecosystem.