> 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/using-your-endpoint/endpoints-regions-routing.md).

# Endpoints, regions, and routing

Points of presence, endpoint hostnames, protocols, and region pinning.

Standard endpoints use BGP Anycast, so one hostname serves all of Triton's regions. Your requests reach the closest point of presence in network terms, with health checks and failover built in. You don’t need routing logic of your own to reach the nearest region.

* Your endpoint connects to a pool of redundant load balancers.
* The load balancers spread your requests across healthy nodes.
* If a node or data centre goes down, new requests and connections go to healthy capacity automatically.
* Open gRPC and WebSocket streams on that node are closed, so reconnect automatically.
* A load balancer restart or a network path change can also close a long-lived gRPC or WebSocket connection.

Solana devnet and testnet endpoints don't use Anycast. DNS sends them to the closest healthy devnet or testnet node. City hostnames, `<your-endpoint>.shared.rpcpool.com` hostnames and some dedicated endpoints also use DNS instead of Anycast.

## Regions and points of presence

Triton's shared infrastructure has points of presence in 8 cities on 3 continents:

| Region       | Cities (city code)                                           |
| ------------ | ------------------------------------------------------------ |
| US           | Salt Lake City (`slc`), New York (`nyc`), Pittsburgh (`pit`) |
| Europe       | Amsterdam (`ams`), Frankfurt (`fra`), London (`lon`)         |
| Asia Pacific | Singapore (`sgp`), Tokyo (`tyo`)                             |

Sui and Monad nodes run in fewer cities than these points of presence.

## Endpoint hostnames

Copy your endpoint and secret token from the [customer dashboard](https://customers.triton.one). Each chain has its own hostname format:

| Chain  | Hostname                                      | Networks                 |
| ------ | --------------------------------------------- | ------------------------ |
| Solana | `<your-endpoint>.<network>.rpcpool.com`       | mainnet, devnet, testnet |
| Sui    | `<your-endpoint>.<network>.sui.rpcpool.com`   | mainnet, testnet         |
| Monad  | `<your-endpoint>.<network>.monad.rpcpool.com` | mainnet, testnet         |

Some endpoints use `<your-endpoint>.rpcpool.com`, and Sui dedicated nodes use `<your-endpoint>.sui.rpcpool.com`. Always use the exact hostname shown in the dashboard.

## Protocols and authentication

The same hostname serves these protocols:

| Protocol                             | Chains           | Send your token                                                                                                                             |
| ------------------------------------ | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| **JSON-RPC** over HTTPS              | Solana and Monad | In the URL path or the `x-token` header, or use an allowed origin                                                                           |
| **WebSocket** over `wss://`          | Solana and Monad | In the URL path or the `x-token` header, or use an allowed origin                                                                           |
| **gRPC** over HTTPS                  | Solana and Sui   | In the `x-token` header. A token in the URL path doesn’t work, because gRPC clients build the request path from the service and method name |
| **GraphQL** over HTTPS at `/graphql` | Sui mainnet      | In the `x-token` header or in the URL path                                                                                                  |

Sui archival gRPC uses `archive.mainnet.sui.rpcpool.com`. Preconfirmations gRPC uses `preconfs.rpcpool.com`. Riptide uses `riptide.rpcpool.com`. Fumarole uses the `ams` and `nyc` city hostnames; see below.

## Pin a region

Anycast to the closest city (the default) is right for most workloads. To send transactions from several regions at once, or to benchmark one data centre, replace your endpoint's full hostname with a city hostname and keep your token:

```url
https://<city-code>.rpcpool.com/<your-token>
```

City codes are in the table above.

* City hostnames serve shared Solana mainnet.
* They accept your token only. Allowed origins don't work on them.

A city hostname sends your traffic only to that city's load balancers. If one fails, the others in that city take over, but you lose failover between cities. Support can add a hostname for your endpoint that points at one city if you must keep traffic out of other regions. That hostname loses failover between cities the same way.

**Not reaching the region you expect?** Anycast sends your traffic to the point of presence closest in network terms to where it enters the internet, which is usually the nearest one geographically. A VPN or proxy moves that entry point, so test without it, or use a city hostname. If your traffic still reaches the wrong region, contact support.

**Fumarole** is addressed by region: connect to `ams.rpcpool.com` (Europe) or `nyc.rpcpool.com` (US). Each region keeps its own consumer groups and their committed offsets. A consumer group created in one region doesn’t exist in the other.

**Dedicated nodes** run in the Triton data centre you choose. For the lowest latency, choose a city with a point of presence near your backend.

## What's next

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><i class="fa-lock">:lock:</i> <strong>Auth and security</strong></td><td>Authenticate requests and lock your endpoint to trusted origins.</td><td><a href="/security/authentication.md">Auth and security</a></td></tr><tr><td><i class="fa-gauge">:gauge:</i> <strong>Rate and connection limits</strong></td><td>Per-method rate limits and streaming connection limits.</td><td><a href="/using-your-endpoint/rate-and-connection-limits.md">Rate and connection limits</a></td></tr></tbody></table>

***

<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)
