Skip to main content
Parsed Streams is in closed beta. Access is limited to whitelisted project ids for now, and the API may change before general availability. To join the closed beta, apply here.
Parsed Streams uses JSON-RPC 2.0 over a single WebSocket connection. Each request receives a response with the same id. A subscription then pushes parsedTransactionNotification messages until you unsubscribe or disconnect.

parsedTransactionSubscribe

Subscribe to decoded transactions matching a program, account, and instruction filter.

parsedTransactionUnsubscribe

Stop a subscription by its id.

ping

Check liveness and keep a quiet connection alive.

describeProgram

Discover the exact instruction and role names the matcher compares against.

Connection

The Helius team whitelists your project id and shares the connection endpoint with you. Authenticate with your project’s API key, passed as the api-key query parameter (or the x-api-key header):
wscat
A missing, invalid, or non-whitelisted key is rejected with HTTP 401. A project at its connection cap gets HTTP 429.

Limits

Errors

Errors follow JSON-RPC 2.0: { "error": { "code": <int>, "message": "<text>" }, "id": <id> }. Messages say exactly what was wrong and where. Connections can also close with a WebSocket close code — see Handling Reconnects for what each one means and how to recover.

Learn more

Parsed Streams Overview

What Parsed Streams is and the mental model behind filters.

Quickstart

Connect, send your first filter, and read a decoded notification.

Parsed Events Reference

Query the same decoded transactions on demand through REST or GraphQL.

Handling Reconnects

Survive idle timeouts and deploys, then backfill exactly what you missed.