# Enhanced Streams Quickstart

> List Enhanced Stream topics and consume JSON events over gRPC.

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

Enhanced Streams publish selected Solana events through a server-streaming gRPC service.

## Download the service proto

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

The service endpoint is:

```text
stream-1.nln.clr3.org:443
```

## List your topics

Topic access depends on your plan.

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

## Subscribe to swaps

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

Each response carries:

- `topic`
- `partition`
- `offset`
- `timestampMs`
- `payload`

For JSON output, `payload` holds UTF-8 JSON bytes. Decode the bytes once.

> Warning: Do not base64-decode `payload` after your protobuf library returns a byte array. Convert the byte array to UTF-8 text, then parse JSON.

  ### [Current topic catalog](/docs/api-reference/enhanced-streams/topics)

Review all 18 live topics and their payload message names.

  ### [Service schema](/docs/api-reference/enhanced-streams/service-schema)

Generate client code from the full proto.
