Skip to main content
Sui is deprecating JSON-RPC, and Sui Foundation’s public endpoints no longer serve it. On Chainstack, your Sui node serves JSON-RPC and gRPC on the same endpoint, and Sui Mainnet Global Nodes also serve GraphQL on it. You migrate call by call — keep using JSON-RPC while you port each call to gRPC or GraphQL, with no provider switch and no re-sync.
JSON-RPC calls to Sui Foundation’s public endpoint fullnode.mainnet.sui.io return -32601 Method not found. Sui removes JSON-RPC from the full node code in mid-October 2026.
Sui retires JSON-RPC on Mainnet in stages, per Sui’s migration guide: Sui publishes this timeline for mainnet only and does not give a separate testnet date.

What is being deprecated

Sui deprecates JSON-RPC in two steps. Sui Foundation has already turned off JSON-RPC on its public endpoints. In mid-October 2026, Sui removes JSON-RPC from the full node code itself. Your Chainstack Sui endpoint still serves JSON-RPC, so you can keep calling it while you port your code to gRPC and GraphQL on the same endpoint — plan to finish that move rather than stay on JSON-RPC. 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 all three 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.
  • Keep anything you have not ported yet on JSON-RPC. Your Chainstack endpoint still serves it, including on Testnet, which does not serve GraphQL.

Chainstack Sui endpoints

All three interfaces are on the same node. Copy your JSON-RPC 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 JSON-RPC 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. Your Chainstack JSON-RPC endpoint still serves them, which is the path on Testnet. 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 JSON-RPC or gRPC (calling them on Chainstack returns -32601 Method not found). Get the underlying data these way:
gRPC streaming exposes only SubscribeCheckpoints, not per-event subscriptions. For event streams, keep suix_subscribeEvent on the JSON-RPC WebSocket, or subscribe to checkpoints over gRPC and filter 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 September 29, 2026