Skip to main content

Solana DEX Pools gRPC Stream

The dex_pools gRPC Stream provides real-time DEX pool liquidity and balance change data across supported Solana protocols.

Configuration​

To subscribe to DEX pool events, configure your stream as follows:

stream:
type: "dex_pools"

Available Data​

The DEX pools stream provides comprehensive pool information including:

  • Transaction details: Slot, signature, status, fees
  • Account information: Signers, token accounts, program IDs
  • Token context: Mint addresses, decimals, owners, metadata
  • Pool specifics: Market addresses, base/quote currencies, liquidity changes
  • Balance updates: Pre/post balances showing pool liquidity changes and token account updates
  • Instruction details: Parsed instruction data with arguments and account names

Sample Data Structure​

Here's an example of the data structure you'll receive:

{
"Block": {
"Slot": 370028492
},
"Transaction": {
...
},
"PoolEvent": {
"InstructionIndex": 8,
"Dex": {
"ProgramAddress": "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA",
"ProtocolName": "pump_amm",
"ProtocolFamily": "Pumpswap"
},
"Market": {
"MarketAddress": "DMoLXDc89o5cUUuvXiteSC3egpcKFwpcjevZrzqLU1o8",
"BaseCurrency": {
"Name": "Wrapped Solana",
"Decimals": 9,
"Symbol": "WSOL",
"MintAddress": "So11111111111111111111111111111111111111112",
"ProgramAddress": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
"QuoteCurrency": {
"Name": "10/1",
"Decimals": 6,
"Symbol": "10/1",
"MintAddress": "BvtbWHDU5sNwtNitWYmNBAEu6Dfu5TWDBnTBHR7w4HZt",
"ProgramAddress": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
}
},
"BaseCurrency": {
"ChangeAmount": 38023549,
"PostAmount": 166166127607
},
"QuoteCurrency": {
"ChangeAmount": -76102597,
"PostAmount": 333332214494
},
"Instruction": {
"Index": 8,
"Program": {
"Address": "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA",
"Name": "pump_amm",
"Method": "sell"
},
"Arguments": [
{
"Name": "base_amount_in",
"Type": "u64",
"UInt": 38023549
},
{
"Name": "min_quote_amount_out",
"Type": "u64",
"UInt": 38103732
}
],
...
},
"BalanceUpdates": [
{
"PreBalance": 40062829,
"PostBalance": 2039280,
"AccountIndex": 1
}
],
"TokenBalanceUpdates": [
{
"PreBalance": 166128104058,
"PostBalance": 166166127607,
"AccountIndex": 3
},
{
"PreBalance": 333408317091,
"PostBalance": 333332214494,
"AccountIndex": 4
}
]
}
}

Filtering Options​

You can filter DEX pool events by:

  • Addresses: program,account
  • Tokens: Specific mint addresses (e.g., WSOL, USDC)
  • Pool addresses: Specific market/pool addresses
  • Protocols: Specific DEX protocols or families
  • Value thresholds: Minimum liquidity change amounts

Pool Event Types​

The DEX pools stream captures various pool-related events:

  • Liquidity additions: When liquidity is added to pools
  • Liquidity removals: When liquidity is withdrawn from pools
  • Swap events: When trades occur that affect pool balances
  • Pool creation: When new pools are created
  • Pool updates: When pool parameters are modified

Schema Reference​

Python Installation​

For Python development, install the protobuf package:

pip install bitquery-corecast-proto

NPM Package​

npm install bitquery-corecast-proto

This package includes all necessary protobuf definitions without requiring manual downloads.