Free Sui RPC (SUI)
SUI is a high-performance, Move-based Layer 1 blockchain designed for parallel transaction execution and built to deliver low-latency, high-throughput applications at scale.
Connect to Sui
Access reliable, enterprise-grade endpoints that power your dApp with ultra-low latency and 99.9% uptime.
Connect to Sui Gateway
Make your first RPC call on Sui's Blockchain Gateway.
Testnet
TestnetDevnet
Testnet* Rate limit enabled - perfect for testing and development. For production, we recommend to Upgrade.
Get 200 requests/second, priority support and advanced blockchain features.
Global Load Balancer
Route to nearest node
Batch RPC Calls
Multiple requests at once
Archive Nodes
Historical blockchain data
Debug & Trace
Advanced debugging
Advanced Analytics
Usage & performance
Bring Your Own RPC
Custom RPC gateways
Increase your limit and access all network features in Tatum Development Platform.
No signup. No paywalls. Just RPC that works. Great ideas come from everywhere.
With love by Tatum
Sui methods
Every method the Sui gateway accepts, grouped by interface. 67 in total, read live from the node rather than kept by hand.
Mainnet is the live Sui network. Every transaction it
accepts is final, and every SUI balance it
reports is real money.
Sui runs 2 test networks here, Testnet and Devnet. All of them answer the same methods as Mainnet, so pick whichever your tooling already targets and switch the URL when you go live.
Sui answers over 2 interfaces: JSON-RPC and gRPC. Each is listed once below with every method it accepts. The endpoints differ per network, and all of them are in the gateway list above.
What sits between you and Sui
A node is a machine running Sui with a copy of the chain. Your code cannot ask the chain directly, it asks a node. The gateway picks a healthy one for every call, so you point at one URL instead of one machine.
- One URL, nothing to run or keep patched yourself.
- Calls routed to a node that is up and in sync.
- A failing node is skipped rather than returned to you as an error.
JSON-RPC
40 methodsThe default. Every wallet, library and framework speaks it, and it is what you want unless you specifically need something else.
One POST carries a method name, its parameters and an id, and the response comes back on the same connection carrying that same id. Requests are independent, so there is no session to keep alive and nothing to reconnect, which is why it runs unchanged behind a load balancer or inside a serverless function. Send an array instead of a single object and the node works through the whole batch in one round trip.
Where it fits
- Anything your library already does for you. ethers, web3.js, viem and their equivalents all target this.
- Batching reads. One array of twenty calls costs one round trip instead of twenty.
- Stateless and serverless deployments, because nothing has to stay connected between calls.
- Historical queries, by passing a block number where you would otherwise pass latest.
Trade-offs
- It cannot push. Finding out that a block landed means polling for it, or moving to WebSocket.
- Wide log queries get refused. Page through in fixed block windows and merge the results yourself.
- Batch responses may come back in any order. Match them on id, never on position.
Enabled and tested methods
Read live from the endpoint, so this is what it actually serves today rather than what the protocol allows in principle. Anything not on this list returns a method-not-found error.
- rpc.discover
- Returns the OpenRPC document describing every method this node exposes.
- sui_devInspectTransactionBlock
- Runs a transaction block for inspection, returning effects and return values without any gas charge.
- sui_dryRunTransactionBlock
- Runs a transaction block without committing it, returning its effects and gas cost.
- sui_executeTransactionBlock
- Submits a signed transaction block for execution.
- sui_getChainIdentifier
- Returns the identifier of the chain the node serves.
- sui_getCheckpoint
- Returns a checkpoint, which is the unit of finality on Sui.
- sui_getCheckpoints
- Returns a paged list of checkpoints.
- sui_getEvents
- Returns the events emitted by a transaction block.
- sui_getLatestCheckpointSequenceNumber
- Returns the sequence number of the newest checkpoint.
- sui_getMoveFunctionArgTypes
- Returns the argument types a Move function expects.
- sui_getNormalizedMoveFunction
- Returns the normalised signature of a Move function.
- sui_getNormalizedMoveModule
- Returns the normalised definition of a Move module.
- sui_getNormalizedMoveModulesByPackage
- Returns the normalised definitions of every module in a package.
- sui_getNormalizedMoveStruct
- Returns the normalised definition of a Move struct.
- sui_getObject
- Returns an object and its contents.
- sui_getProtocolConfig
- Returns the protocol configuration and feature flags in force.
- sui_getTotalTransactionBlocks
- Returns how many transaction blocks the chain has executed.
- sui_getTransactionBlock
- Returns a transaction block, with its effects and events.
- sui_multiGetObjects
- Returns several objects in one call.
- sui_multiGetTransactionBlocks
- Returns several transaction blocks in one call.
- sui_tryGetPastObject
- Returns an object as it was at an earlier version.
- sui_tryMultiGetPastObjects
- Returns several objects at earlier versions in one call.
- sui_verifyZkLoginSignature
- Verifies a zkLogin signature against an address.
- suix_getAllBalances
- Returns every coin balance held by an address.
- suix_getAllCoins
- Lists every coin object owned by an address.
- suix_getBalance
- Returns the balance of one coin type for an address.
- suix_getCoinMetadata
- Returns the symbol, decimals and description of a coin type.
- suix_getCoins
- Lists the coin objects of one type owned by an address.
- suix_getCommitteeInfo
- Returns the validator committee for an epoch.
- suix_getDynamicFieldObject
- Returns one dynamic field attached to an object.
- suix_getDynamicFields
- Lists the dynamic fields attached to an object.
- suix_getLatestSuiSystemState
- Returns the system state: validators, epoch and staking totals.
- suix_getOwnedObjects
- Lists the objects owned by an address, with optional filtering.
- suix_getReferenceGasPrice
- Returns the reference gas price for the current epoch.
- suix_getStakes
- Returns the stakes delegated by an address.
- suix_getTotalSupply
- Returns the total supply of a coin type.
- suix_queryEvents
- Searches events by sender, type, module or time range.
- suix_queryTransactionBlocks
- Searches transaction blocks by sender, recipient or object touched.
- suix_resolveNameServiceAddress
- Resolves a SuiNS name to the address behind it.
- suix_resolveNameServiceNames
- Returns the SuiNS names pointing at an address.
Common JSON-RPC errors
What you are most likely to hit calling this interface, and what to do about it.
- -32700
- Parse error. The request body was not valid JSON. Check that the body is serialised JSON and that Content-Type is application/json.
- -32600
- Invalid request. The JSON parsed, but it is not a well-formed JSON-RPC call. Include jsonrpc, method and id fields. A batch must be a non-empty array.
- -32601
- Method not found. This node does not expose the method you called. Check the spelling and the namespace, and confirm the method is in the list above for this network. Tracing methods in particular are not enabled everywhere.
- -32602
- Invalid params. The method exists but the arguments are wrong. Check argument order and types. Most EVM methods want hex-encoded quantities, and a block parameter such as latest or a hex height.
- -32603
- Internal error. The node failed while handling an otherwise valid request. Retry with backoff. If it persists on one method, it is usually that method rather than the node.
- -32000
- Server error. A catch-all the node uses for execution failures, most often a reverted call or a request over a limit. Read the accompanying message. Execution reverted means your call failed on chain, not in transport. Narrow the block range if you are querying logs.
- HTTP 429
- Rate limited. You have exceeded the free tier request allowance. Back off and retry, batch reads into single calls, or move to a dedicated endpoint for production traffic.
- HTTP 413
- Payload too large. The request body exceeded what the node accepts. Split large batches into smaller ones.
gRPC
27 methodsBinary messages over HTTP/2, checked against a schema both ends share.
Clients are generated from that schema rather than written by hand, so a renamed field breaks your build instead of quietly returning nothing at three in the morning. Messages are protocol buffers, appreciably smaller than the JSON equivalent, and a single connection multiplexes many calls at once rather than queueing them.
Where it fits
- Backends making a very large number of calls, where JSON parsing and connection setup start to dominate.
- Streaming in either direction, without the reconnect bookkeeping a WebSocket needs.
- Catching schema drift at compile time rather than in production.
Trade-offs
- You cannot inspect it with curl or a browser. Reach for grpcurl instead.
- Nothing works until you have the schema and a generated client, so it is a poor fit for a quick look.
- Not every gateway publishes a method list. Use server reflection to see what is actually exposed.
Enabled and tested methods
Read live from the endpoint, so this is what it actually serves today rather than what the protocol allows in principle. Anything not on this list returns a method-not-found error.
- grpc.reflection.v1.ServerReflection/ServerReflectionInfo
- Lets a client discover the gRPC services and message types this server offers.
- grpc.reflection.v1alpha.ServerReflection/ServerReflectionInfo
- The v1alpha form of gRPC server reflection, kept for older clients.
- sui.rpc.v2.CheckpointSummaryService/GetCheckpointSummary
- Returns the summary of one checkpoint.
- sui.rpc.v2.CheckpointSummaryService/ListCheckpointSummaries
- Lists checkpoint summaries.
- sui.rpc.v2.LedgerService/BatchGetObjects
- Returns several objects in one request.
- sui.rpc.v2.LedgerService/BatchGetTransactions
- Returns several transactions in one request.
- sui.rpc.v2.LedgerService/GetCheckpoint
- Returns a checkpoint.
- sui.rpc.v2.LedgerService/GetEpoch
- Returns an epoch, including its validator committee.
- sui.rpc.v2.LedgerService/GetObject
- Returns an object and its contents.
- sui.rpc.v2.LedgerService/GetServiceInfo
- Returns the chain identifier, epoch and latest checkpoint of the node.
- sui.rpc.v2.LedgerService/GetTransaction
- Returns a transaction, with its effects and events.
- sui.rpc.v2.LedgerService/ListCheckpoints
- Lists checkpoints.
- sui.rpc.v2.MovePackageService/GetDatatype
- Returns the definition of a Move struct or enum.
- sui.rpc.v2.MovePackageService/GetFunction
- Returns the signature of a Move function.
- sui.rpc.v2.MovePackageService/GetPackage
- Returns a Move package and its modules.
- sui.rpc.v2.MovePackageService/ListPackageVersions
- Lists the published versions of a Move package.
- sui.rpc.v2.NameService/LookupName
- Resolves a SuiNS name to the address behind it.
- sui.rpc.v2.NameService/ReverseLookupName
- Returns the SuiNS name pointing at an address.
- sui.rpc.v2.SignatureVerificationService/VerifySignature
- Verifies a signature against an address.
- sui.rpc.v2.StateService/GetBalance
- Returns the balance of one coin type for an address.
- sui.rpc.v2.StateService/GetCoinInfo
- Returns metadata and supply for a coin type.
- sui.rpc.v2.StateService/ListBalances
- Lists every coin balance held by an address.
- sui.rpc.v2.StateService/ListDynamicFields
- Lists the dynamic fields attached to an object.
- sui.rpc.v2.StateService/ListOwnedObjects
- Lists the objects owned by an address.
- sui.rpc.v2.SubscriptionService/SubscribeCheckpoints
- Streams checkpoints as they are finalised.
- sui.rpc.v2.TransactionExecutionService/ExecuteTransaction
- Submits a signed transaction for execution.
- sui.rpc.v2.TransactionExecutionService/SimulateTransaction
- Runs a transaction without committing it, returning its effects.
Common gRPC errors
What you are most likely to hit calling this interface, and what to do about it.
- UNAVAILABLE
- The service could not be reached, or the connection dropped mid-call. Retry with backoff. This code is explicitly safe to retry.
- DEADLINE_EXCEEDED
- The call did not complete within the deadline you set. Raise the deadline for expensive calls, or page the request into smaller ones.
- RESOURCE_EXHAUSTED
- A quota or rate limit was hit, or the message exceeded the size limit. Back off and retry, reduce concurrency, or raise the client max message size for large responses.
- INVALID_ARGUMENT
- The request message was rejected as malformed, independently of system state. Check the field types against the schema. Retrying without changing the request will not help.
- NOT_FOUND
- The requested object, transaction or checkpoint does not exist on this node. Confirm the identifier, and that the node retains history that far back.
- UNIMPLEMENTED
- The service or method is not enabled on this endpoint. Check the service name against the list above; use server reflection to see what is actually exposed.
Indexed Sui Data Insights
Complete on-chain data access, no infrastructure to run yourself. Query wallets, tokens, NFTs, and transaction history with lightning-fast APIs.
About Sui
What it is, and guides for building on it.
SUI is a permissionless Layer 1 blockchain developed by Mysten Labs, built to support fast, secure, and scalable decentralized applications. Utilizing the innovative Move programming language, SUI introduces a unique object-centric data model and parallel transaction execution, enabling low latency and high throughput without sacrificing security. Its architecture empowers developers to build dynamic, asset-rich applications, while the chain’s scalability and efficiency make it ideal for next-generation web3 use cases.
From the Tatum blog
Building on Sui: How to Use RPC Endpoints for High Performance Dapps
Learn how to build on Sui with this technical guide. Explore Sui’s object-centric model, Move language, and how to us...
What's new
Sui gRPC
Sui gRPC is available on Tatum for teams that want a faster, more structured, and type-safe way to access chain data ...
Sui JSON-RPC Migration Notice
The Sui Foundation has officially deprecated JSON-RPC. To ensure network performance and scalability, Tatum is transi...
SUI (new RPC) - Mainnet, Testnet & Devnet
We’re thrilled to introduce SUI to the Tatum Blockchain Gateway!
Frequently Asked Questions
Everything you need to know about Sui RPC endpoints
Quick Answer: What is Sui RPC?
RPC (Remote Procedure Call) is the standard way to interact with the network programmatically - reading on-chain data, submitting transactions, and deploying smart contracts through JSON-RPC calls. The free tier ships 5 requests per minute with no registration required, which covers most learning and testing workflows. Production applications typically move to Tatum Premium for 200 requests per second and enterprise-grade reliability.
What is Sui RPC?
How do I connect to Sui using these RPC endpoints?
What are the rate limits for the free RPC tier?
Is Sui RPC free forever?
What happens if I exceed the free tier rate limit?
Can I use these Sui RPC endpoints with MetaMask?
Are these RPC endpoints secure?
What's the difference between mainnet and testnet RPC endpoints?
How do I troubleshoot RPC connection errors?
Can I use these endpoints in production?
Explore Other Blockchains
Discover RPC endpoints for other popular blockchain networks