> For the complete documentation index, see [llms.txt](https://docs.triton.one/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.triton.one/solana/real-time-streaming/riptide.md).

# Riptide

Dragon's Mouth gRPC at riptide.rpcpool.com, a lower-latency path for shared subscriptions, with connection details, 403 errors, and reconnect handling.

Riptide is a separate endpoint for the existing [Dragon's Mouth gRPC service](/solana/real-time-streaming/dragon-s-mouth-grpc.md). It provides the same streams, unary methods, protocol, and SDK support through a lower-latency network path.

If you use Dragon's Mouth through a shared subscription, point your client at `https://riptide.rpcpool.com:443`. Your shared-subscription token, SDK, Protobuf version, subscription requests, and filters continue to work.

## Connection details

| Setting        | Value                                                           |
| -------------- | --------------------------------------------------------------- |
| Endpoint       | `https://riptide.rpcpool.com:443`                               |
| Availability   | Shared subscriptions — see [Availability](#availability)        |
| Authentication | Your shared-subscription token in the `x-token` metadata header |
| Protocol       | Dragon's Mouth / Yellowstone gRPC over TLS                      |
| Network        | Mainnet                                                         |
| Routing        | Automatic to the nearest location via `riptide.rpcpool.com`     |

Riptide serves Dragon's Mouth gRPC. Use your standard RPC endpoint for JSON-RPC and WebSocket requests. For client setup, subscription filters, and request examples, see the [Dragon's Mouth documentation](/solana/real-time-streaming/dragon-s-mouth-grpc.md).

## Availability

Riptide is available on shared Dragon's Mouth subscriptions, and usage is billed as part of the shared service. Dedicated-node tokens do not work on `riptide.rpcpool.com`.

If your account has dedicated nodes and no shared subscription, you have two options:

* Add a shared gRPC subscription to your account for immediate access. Shared-service billing applies.
* Contact our support team — over your dedicated support channel, or at <support@triton.one> — to ask whether a dedicated Riptide setup is available for your own nodes.

{% hint style="info" %}
A `403 Access forbidden` response with empty `x-ratelimit-*` headers means the token you are sending is not enabled for this endpoint. Check that the token value is correct, use your shared-subscription token, or contact our support team to enable access.
{% endhint %}

## Connection resets and reconnection

Riptide's failover operates at the connection level: it directs new connections to healthy backends but cannot move an existing gRPC stream between them. Because the network path can change during normal operation, a dropped connection may arrive as a TCP reset (`RST`) rather than a graceful close. Your client should:

1. Detect stream errors, end-of-stream events, and TCP resets.
2. Reconnect automatically, using exponential backoff with jitter for repeated failures.
3. Create a new stream and send the complete subscription request again after reconnecting.
4. Track the last fully processed slot and use [`from_slot`](/solana/real-time-streaming/dragon-s-mouth-grpc.md#replay-from-a-slot) to recover buffered updates after a short interruption. Deduplicate updates from the replayed slot.

Ordinary subscriptions in the Dragon's Mouth Rust and TypeScript clients don't reconnect, so build these steps into your client. `subscribe_with_reconnect` (Rust) and `subscribeWithReconnect()` (TypeScript) reconnect, resubscribe, and replay for you, and your code drops the partly delivered banks each `Disconnected` event lists. See [Reconnect with bank recovery](/solana/real-time-streaming/dragon-s-mouth-grpc.md#reconnect-with-bank-recovery).

Riptide does not replace or deprecate your existing Dragon's Mouth endpoint. It provides the same features over a faster path, and the reconnection handling above applies to both endpoints, so if you use a shared subscription, we recommend moving your gRPC traffic to Riptide.

## What's next

* [Dragon's Mouth gRPC](/solana/real-time-streaming/dragon-s-mouth-grpc.md) — filters, subscription requests, and client examples
* [Real-time streaming overview](/solana/real-time-streaming.md) — compare Triton's streaming interfaces
* [Real-time streaming best practices](/solana/real-time-streaming/best-practices.md) — reconnection and throughput guidance

***

<i class="fa-life-ring">:life-ring:</i> Contact support by clicking the chat icon in your [customer dashboard](https://customers.triton.one)\ <i class="fa-briefcase">:briefcase:</i> Sales questions? [Contact us](https://triton.one/contact)\ <i class="fa-sparkles">:sparkles:</i> AI agent? Read [llms.txt](https://docs.triton.one/llms.txt)\ <i class="fa-rss">:rss:</i> Follow updates: [Blog](https://blog.triton.one) · [X](https://x.com/triton_one) · [YouTube](https://www.youtube.com/@triton_one_ltd) · [Telegram](https://t.me/tritonone) · [GitHub](https://github.com/rpcpool)
