# Wallet Transfers

> Real-time gRPC stream for SOL and SPL token wallet-to-wallet transfer events on Solana.

Canonical: https://nolimitnodes.com/api-reference/data-streams/wallet-transfers

Use the current transfer topic:

```text
prod.rpc.solana.system.transfers
```

## Subscribe

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

## Python

```python

channel = grpc.secure_channel(
    "stream-1.nln.clr3.org:443",
    grpc.ssl_channel_credentials(),
)
client = rpc.StreamServiceStub(channel)

request = pb.SubscribeRequest(
    topic="prod.rpc.solana.system.transfers",
    format=pb.JSON,
)

for message in client.Subscribe(
    request,
    metadata=[("x-api-key", "YOUR_API_KEY")],
):
    transfer = json.loads(message.payload)
    print(message.timestamp_ms, transfer)
```

## Migration

Replace `walletTransfers`. The old topic returns `NOT_FOUND`.

Store topic, partition, and offset with every transfer.

### [System transfers reference](/docs/api-reference/enhanced-streams/topics/system-transfers)

Review the live topic and response envelope.
