This endpoint is only available to Growth and Enterprise plans.
Endpoint Details
Use this stream when raw swaps are not enough and you need derived base/quote context, token metadata, and post-balance fields.
| Chain family | Endpoint | Event |
|---|
| EVM | wss://stream-evm-prod.mobula.io/ | swap-enriched |
| Solana | wss://stream-sol-prod.mobula.io/ | swap-enriched |
Do not mix Solana chainIds on the EVM endpoint, or EVM chainIds on the Solana endpoint.
The EVM addresses used in filters must be lowercase.
Subscription Payload
{
"type": "stream",
"authorization": "YOUR_API_KEY",
"payload": {
"name": "SolanaEnrichedSwaps",
"chainIds": ["solana:solana"],
"events": ["swap-enriched"],
"filters": {
"or": [
{ "eq": ["poolType", "raydium"] },
{ "eq": ["poolType", "raydium-clmm"] }
]
},
"subscriptionId": "solana-enriched-swaps",
"subscriptionTracking": true
}
}
Response Frame
Every message uses the standard Multi-Events frame:
{
"data": {
"type": "swap-enriched",
"poolAddress": "4WYhS4JwJQsqfVfNx2uN9ZoRhrMTTsYo8kjdTLvFtSDy",
"poolType": "raydium-clmm",
"transactionHash": "snFJGsc6gUyZHpYTbxVQQnDYpWSuPUJ4NTdvTJHTX6Wyd2Amsb3MTbNeyDe9VzkRVf87DhQ1aV79Ptnq2fZufei",
"baseToken": "HjgFP3f1nc9kxD71YQXxD1fWHZLNp6b5ARdvhfVKpgCP",
"quoteToken": "So11111111111111111111111111111111111111112",
"baseTokenData": {
"symbol": "TOKEN",
"name": "Token",
"priceUSD": 0.0000123
},
"postBalanceBaseToken": "49131790086269",
"postBalanceRecipientBaseToken": "0",
"date": "2026-06-08T00:18:34.613Z"
},
"chainId": "solana:solana",
"duplicateCount": 1,
"subscriptionId": "solana-enriched-swaps"
}
See the Curated Data Model for the full enriched swap payload.
Common Filters
Pool Types
{
"or": [
{ "eq": ["poolType", "raydium"] },
{ "eq": ["poolType", "raydium-clmm"] }
]
}
Specific Pool
{
"eq": ["poolAddress", "68L2iPWLtkRuxhHBYVJLSzaApBVuM6DNqLL1pEywbDGR"]
}
Wallet Activity
{
"or": [
{ "eq": ["swapSenderAddress", "7rhFTmUrRSQsL2b3YDoTuSC2sBQUeN9smbSHpne3vowa"] },
{ "eq": ["swapRecipient", "7rhFTmUrRSQsL2b3YDoTuSC2sBQUeN9smbSHpne3vowa"] }
]
}
Parameters
chainIds (required): Chain identifiers, for example ["evm:8453"] or ["solana:solana"].
events (required): Must include swap-enriched.
filters (optional): Filter conditions. See filters.
subscriptionId (optional): Identifier copied into matching responses.
subscriptionTracking (optional, default: false): Include subscription details in response logs.
tag (optional): Usage tag shown in the dashboard breakdown.
Keepalive
Unsubscribe
{
"type": "unsubscribe",
"authorization": "YOUR_API_KEY",
"payload": {
"subscriptionId": "solana-enriched-swaps"
}
}