> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chainstack.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sui gRPC endpoint

> The Chainstack Sui endpoint serves JSON-RPC and gRPC on the same node, with deep checkpoint retention and x-token authentication. Migrate off Sui's public JSON-RPC without switching providers.

The Chainstack Sui endpoint serves both JSON-RPC and gRPC on the **same node**, so you can move off JSON-RPC without re-syncing or switching providers. Sui Foundation's public endpoints no longer serve JSON-RPC, and Sui removes JSON-RPC from the full node code in mid-October 2026 — see [Migrate Sui from JSON-RPC to gRPC and GraphQL](/docs/sui-migrate-json-rpc-to-grpc). Keep calling JSON-RPC while you port your code, then move each call to gRPC on the same endpoint. Sui Mainnet Global Nodes also serve GraphQL for filtered queries — see [Sui GraphQL endpoint](/docs/sui-graphql-endpoint).

## What you get

* One node, both interfaces — JSON-RPC over HTTPS and native gRPC over HTTP/2, from a single Chainstack Sui node.
* Deep checkpoint retention — tens of millions of checkpoints of history for point lookups and backfills.
* Server reflection enabled on gRPC — explore services and call methods with grpcurl, no proto compilation needed.
* `x-token` authentication on gRPC; auth token or basic auth on JSON-RPC.

## Endpoints

Find your endpoint and credentials on Chainstack — see [View node access and credentials](/docs/manage-your-node#view-node-access-and-credentials). Copy the full HTTPS endpoint (shown below as `YOUR_CHAINSTACK_ENDPOINT`) — it already carries your auth token.

| Interface | Endpoint | Authentication |
| - | - | - |
| JSON-RPC (HTTPS) | `YOUR_CHAINSTACK_ENDPOINT` | auth token or basic auth, built into the endpoint |
| gRPC | `sui-mainnet.core.chainstack.com:443` | `x-token` metadata header |
| GraphQL (Mainnet) | `YOUR_CHAINSTACK_ENDPOINT/graphql` | auth token, basic auth, or `x-token` header |

Testnet gRPC is `sui-testnet.core.chainstack.com:443`. The auth token and x-token are the node's access credentials, not your Chainstack platform API key. For every authentication option, see [Authentication methods available on Chainstack](/docs/authentication-methods-for-different-scenarios).

## Checkpoint retention

The Chainstack Sui node holds a window of checkpoints from `lowestAvailableCheckpoint` to the tip, not the full ledger from genesis. `GetServiceInfo` reports both ends of the window — the tip (`checkpointHeight`) and the oldest checkpoint the node holds (`lowestAvailableCheckpoint`):

```bash theme={"system"}
grpcurl -H "x-token: YOUR_X_TOKEN" \
  sui-mainnet.core.chainstack.com:443 \
  sui.rpc.v2.LedgerService/GetServiceInfo
```

```json theme={"system"}
{
  "chainId": "4btiuiMPvEENsttpZC7CZ53DruC3MAgfznDbASZ7DR6S",
  "chain": "mainnet",
  "epoch": "1263",
  "checkpointHeight": "327352270",
  "timestamp": "2026-09-27T02:41:27.573Z",
  "lowestAvailableCheckpoint": "237661232",
  "lowestAvailableCheckpointObjects": "237661232",
  "server": "sui-node/1.80.1-782577ca40c9"
}
```

In this response from Sep 27, 2026, the node held checkpoints 237,661,232 through 327,352,270 — about 89.7M checkpoints. `lowestAvailableCheckpointObjects` is the matching floor for historical object versions. The floor can change, so read `lowestAvailableCheckpoint` at runtime instead of hard-coding it.

How the window applies to each interface:

* gRPC — checkpoints, transactions, and object versions older than the window return `NotFound`.
* GraphQL — point lookups share this floor, and filtered transaction and event queries keep a shorter window. `serviceConfig.availableRange` reports each window — see [How far back GraphQL history goes](/docs/sui-graphql-endpoint#how-far-back-graphql-history-goes).
* JSON-RPC — object versions older than the window return `VersionNotFound`. On Mainnet, JSON-RPC also resolves older checkpoint and transaction lookups through the implicit archival fallback built into Sui's JSON-RPC, which Sui's [deprecation timeline](https://docs.sui.io/develop/accessing-data/json-rpc-migration) disconnects at the end of September 2026. Do not build on JSON-RPC reads below `lowestAvailableCheckpoint`.

For data older than the window, query an archival service — see Sui's [Archival Store and Service](https://docs.sui.io/develop/accessing-data/archival-store).

## Verify your endpoint

<CodeGroup>
  ```bash JSON-RPC theme={"system"}
  curl --request POST \
    --url YOUR_CHAINSTACK_ENDPOINT \
    --header 'Content-Type: application/json' \
    --data '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "sui_getLatestCheckpointSequenceNumber",
      "params": []
    }'
  ```

  ```bash gRPC theme={"system"}
  grpcurl -H "x-token: YOUR_X_TOKEN" \
    sui-mainnet.core.chainstack.com:443 \
    list
  ```
</CodeGroup>

The `list` output shows the node's `sui.rpc.v2` services — [Sui tooling](/docs/sui-tooling#grpc-api) describes what each one is for.

<Info>
  The official Sui TypeScript SDK (`@mysten/sui`) works here over both its default gRPC-Web transport and a native gRPC transport — see [the setup in Sui tooling](/docs/sui-tooling#grpc-from-code). gRPC-Web is served over HTTPS on Mainnet and Testnet, so browser apps can use the SDK directly, no proxy required.
</Info>

## Next steps

* [Migrate Sui from JSON-RPC to gRPC](/docs/sui-migrate-json-rpc-to-grpc) — call-by-call method mapping and quickstart.
* [Sui tooling](/docs/sui-tooling) — SDKs and per-language connection code.
