Skip to main content

Sui node operations and developer interfaces

Sui is a MoveVM-based chain where operators expose full node data to wallets, backend services, indexers, and analytics systems. This guide focuses on running the node surface safely and wiring applications to the right API.

:::warning JSON-RPC migration deadline Sui JSON-RPC is deprecated. Operators and application teams should migrate production integrations to gRPC or GraphQL RPC before the July 2026 removal deadline documented in the Sui API reference. :::

Interface strategy

InterfaceUse it forOperator stance
gRPCBackend services, indexers, low-latency object lookup, transaction submission, simulation, streaming subscriptionsPreferred private application API on HTTP/2 port 9000; expose only through controlled gateways.
GraphQL RPCFrontend reads, analytics, flexible historical query, object/address/transaction explorationPreferred public read API when rate-limited and cached.
JSON-RPCExisting legacy clients onlyKeep compatibility windows short; migrate callers to gRPC or GraphQL RPC.

Sui full node gRPC replaces the JSON-RPC surface and publishes protocol buffer services including LedgerService, StateService, TransactionExecutionService, and SubscriptionService in the Full Node gRPC protocol reference. GraphQL RPC is documented separately as a query-oriented interface in the Sui GraphQL RPC guide.

Repository layout

The companion sample repository under chains/sui/ contains:

  • metadata.yaml for inventory, ports, and required sample coverage.
  • samples/grpcurl/ shell scripts for direct full node gRPC calls.
  • samples/typescript-grpc/ TypeScript client patterns for object lookup, transaction dry-run/submission, and checkpoint streaming.
  • samples/graphql/ query documents for object, transaction, event, and pagination flows.
  • samples/event-indexer/ a TypeScript checkpoint/event pipeline modeled on the official Sui real-time event indexer example.
  • Start with initial sync before accepting traffic.
  • Use ports and authentication and exposure policy before publishing any endpoint.
  • Put common rate limits, TLS, and client identity controls in shared platform layers such as /developer/rate-limiting and /operations/ingress-hardening.