Skip to content

GET /v1/stream/tx

Track transaction lifecycle updates via SSE.

This endpoint is designed to give you earlier transaction visibility than raw RPC polling alone. In practice, landed is an optimistic early signal and processed is the first dependable fast status for most integrations.

Request

http
GET /v1/stream/tx?signatures=sig1,sig2&events=landed,confirmed
x-api-key: YOUR_API_KEY

Browser-native EventSource cannot set custom headers. For browser clients, use ?apiKey=YOUR_API_KEY instead.

Query parameters

FieldTypeRequiredDefaultDescription
signaturesstringYesComma-separated base58 signatures (1-10)
eventsstringNolandedComma-separated subset of landed, processed, confirmed, finalized

Events

EventDescription
readyWatchers are registered and the stream is armed for the requested signatures
txTransaction status update
errorSetup error for one signature; other signatures keep streaming

Example payload

text
event: tx
data: {"signature":"2rFf8q...","status":"confirmed","slot":411007599}

Status values

StatusMeaning
landedSeen in a block shred; fastest optimistic landing signal
processedThe transaction has been observed as processed by the system; for most consumers this is the first dependable fast status
confirmedRPC confirmed
finalizedRPC finalized
failedTransaction errored on chain
timeoutOnly for landed-only mode when the fast landing signal never appeared
verify-timeoutThe requested confirmation tier was not reached before server timeout

Notes

  • The stream closes after every requested signature has reached its terminal state.
  • landed is an optimistic signal. A transaction can be seen early and still fail or never reach stronger confirmation.
  • If you only need a fast, reliable post-submit state transition, prefer processed.
  • Consumers that care about watcher readiness can wait for the ready event before assuming the stream is armed.
  • For resilience, fall back to GET /v1/tx/:signature when SSE is unavailable.

Example

bash
curl -N -H "x-api-key: YOUR_API_KEY" \
  "https://api.venum.dev/v1/stream/tx?signatures=2rFf8qgx...&events=landed,processed"

# Browser/EventSource fallback
curl -N \
  "https://api.venum.dev/v1/stream/tx?signatures=2rFf8qgx...&events=landed,processed&apiKey=YOUR_API_KEY"

Errors

StatusDescription
400Missing signatures, invalid event name, or more than 10 signatures
401Missing or invalid API key
429SSE connection limit exceeded
503Commitment-tier polling unavailable on this server

Rate Limit

Counts against the SSE streams connection limit in Plans & Rate Limits.