Skip to main content
The dexploit.v1.SwapStream gRPC service delivers Solana DEX swaps in real time, filtered server-side. Use it when you want typed clients + flow control without parsing raw transactions.

Endpoint

  • Host: grpc.dexploit.dev:443 (TLS)
  • Service: dexploit.v1.SwapStream
  • Auth: x-api-key metadata header (or authorization: Bearer …)
  • Proto: swap_stream.proto

RPCs

StreamLive(StreamLiveRequest) → stream UnifiedSwap

Live tail. Streams every new swap that matches your filter until the connection closes.

StreamFromCursor(StreamFromCursorRequest) → stream UnifiedSwap

Reserved for v1.1. Currently returns UNIMPLEMENTED. Will replay history from a Solana slot cursor + transition to live.

Filter shape

Tier caps

Exceeding the cap returns RESOURCE_EXHAUSTED with a message like stream cap exceeded; tier=developer cap=10.

wallet_tags tier gating

If a Free/Developer caller passes a non-empty wallet_tags filter, the server silently drops the tag filter and proceeds with the rest of the filter. The response carries an initial metadata header:
This matches the REST tier-locked features posture — same response shape for paid + locked, with a clear upgrade signal.

Backpressure

Each open stream gets a 1024-event server-side buffer. If a client falls behind by more than 1024 events, the server cancels the stream with:
Clients are expected to reconnect. The current scenario where this happens in practice is browser tabs that background for >5 seconds during a busy market window.

Error codes

Compared to WebSocket /ws/swaps

Use WebSocket for browser clients. Use gRPC for indexers, backend services, and anywhere typed clients + flow control matter.