# Program Streams Quickstart

> Subscribe to a Solana program instruction or event with a topic name.

Canonical: https://nolimitnodes.com/docs/quickstarts/program-streams

Program Streams preserve each program's instruction args, accounts, and event fields.

Use this endpoint:

```text
events.nln.clr3.org:443
```

## Download the proto

```bash
curl -O https://nolimitnodes.com/protos/program-streams.proto
```

## List available topics

```bash
grpcurl \
  -H "x-api-key: YOUR_API_KEY" \
  -import-path . \
  -proto program-streams.proto \
  -d '{}' \
  events.nln.clr3.org:443 \
  nln.stream.v1.StreamService/ListTopics
```

## Read one schema

```bash
grpcurl \
  -H "x-api-key: YOUR_API_KEY" \
  -import-path . \
  -proto program-streams.proto \
  -d '{"topic":"solana.pump_fun.trade_event"}' \
  events.nln.clr3.org:443 \
  nln.stream.v1.StreamService/GetTopicSchema
```

The response includes the full program proto and the message type for your topic.

## Subscribe

```bash
grpcurl \
  -H "x-api-key: YOUR_API_KEY" \
  -import-path . \
  -proto program-streams.proto \
  -d '{"topic":"solana.pump_fun.trade_event","format":"JSON"}' \
  events.nln.clr3.org:443 \
  nln.stream.v1.StreamService/Subscribe
```

JSON responses include the topic, Solana slot, and decoded JSON text.

```json
{
  "topic": "solana.pump_fun.trade_event",
  "slot": "357954001",
  "payload": "{\"accounts\":{},\"args\":{}}"
}
```

  ### [Browse every stream](https://nolimitnodes.com/products/program-streams)

Search 1,074 topics across 37 programs.

  ### [Payload formats](/docs/api-reference/program-streams/payload-formats)

Choose JSON or protobuf output.
