Skip to main content
Sui removes JSON-RPC from the full node in v1.82, so no Sui node serves JSON-RPC after the upgrade. On Chainstack, your Sui node serves gRPC, and Sui Mainnet Global Nodes also serve GraphQL, on the same endpoint and auth token. Port each JSON-RPC call to its gRPC or GraphQL equivalent with the method mapping, with no provider switch and no re-sync.
Sui Testnet nodes on Chainstack no longer serve JSON-RPC. Sui Mainnet nodes stop serving it when they upgrade to v1.82, after Sui releases v1.82 for Mainnet.
Sui retires JSON-RPC in stages, per Sui’s migration guide: Sui’s guide gives Mainnet dates only. The Testnet date is when the Testnet network activated the v1.82 protocol.

What is being removed

Sui removes JSON-RPC in two steps. Sui Foundation turned off JSON-RPC on its public endpoints in July 2026. Sui v1.82 then removes the JSON-RPC service from the full node code itself, so a node on v1.82 does not serve JSON-RPC at all. Node operators cannot keep JSON-RPC enabled, because a node on an older version stops when the network activates the v1.82 protocol. gRPC and GraphQL are the interfaces Sui supports going forward. gRPC uses HTTP/2 and Protocol Buffers for binary serialization, which makes payloads smaller and adds server-side streaming — you subscribe to new checkpoints instead of polling for them. On Chainstack, the migration is JSON-RPC → gRPC and GraphQL, and both run on the same node:
  • Move performance-sensitive and streaming workloads to gRPC — backends, indexers, typed clients, low-latency lookups, transaction submission, and checkpoint streaming.
  • Move filtered and paginated queries to GraphQL on Mainnet — transactions by address, events by type, and objects by owner and type. These are the methods with no gRPC equivalent. See Sui GraphQL endpoint.
  • On Testnet, which has no GraphQL endpoint, use gRPC.

Chainstack Sui endpoints

Both interfaces are on the same node. Copy your HTTPS endpoint (shown below as YOUR_CHAINSTACK_ENDPOINT, with its auth token built in) from Chainstack — see View node access and credentials. The gRPC endpoint is the host and port below, and the GraphQL endpoint is the HTTPS endpoint with /graphql appended. Testnet gRPC is sui-testnet.core.chainstack.com:443; Testnet has no GraphQL endpoint. For every authentication option, see Authentication methods available on Chainstack. See Sui tooling for SDK setup and per-language connection code.

Method mapping

Sui’s gRPC API is organized into services under sui.rpc.v2. Most read and write JSON-RPC methods map directly to a gRPC call. The query methods with no gRPC equivalent map to GraphQL on Mainnet. A few analytics methods come from Sui’s indexer, and neither interface serves them. The tables below give the path for each common JSON-RPC method.

Maps to gRPC

No gRPC equivalent — use GraphQL

These methods have no gRPC equivalent. On Mainnet, use the GraphQL query in the table. Testnet has no GraphQL endpoint, so these queries are available on Mainnet only. Filtered transactions and all events queries cover about the most recent 90 days, a shorter window than point lookups. See How far back GraphQL history goes.

Indexer and analytics methods

A few JSON-RPC methods return aggregated analytics that come from Sui’s indexer layer, not from a full node. A full node — Sui’s or Chainstack’s — does not serve them over gRPC. Get the underlying data these ways:
gRPC streaming exposes only SubscribeCheckpoints, not per-event subscriptions. For event streams, subscribe to checkpoints over gRPC and filter events client-side.

gRPC quickstart

The fastest way to confirm your endpoint and explore the API is grpcurl. Sui gRPC has server reflection enabled, so you can list services and call methods without compiling proto files.
GetServiceInfo returns the chain, current epoch, and the node’s checkpoint range:
To inspect any service’s methods and message shapes, describe it:

gRPC from code

In TypeScript, use the official Sui SDK (@mysten/sui). Its default gRPC-Web transport works against Chainstack over HTTPS — in the browser and in Node.js — so you only need your node URL as baseUrl. For server-side apps that prefer native gRPC over HTTP/2, pass a native transport instead (see Sui tooling for the native setup). From other languages, generate stubs from Sui’s proto definitions and attach the x-token metadata.
Use recent client versions — @mysten/sui 2.16 or later (and @grpc/grpc-js 1.14 or later for the native transport). Older releases mishandle gRPC streams and produce intermittent RST and internal errors under load; current versions are reliable.
The default gRPC-Web transport shown above works in the browser and in Node.js. Native gRPC over HTTP/2 is server-side only; use it when you specifically need native gRPC.

Next steps

Last modified on October 20, 2026