Ai Overview
Sui transaction RPC trips up a lot of teams for the same reason Sui itself feels fast and different: writes depend on object references, object versions, and execution details that do not map cleanly to account-based chain habits. A read call can look simple, but the moment you submit a transaction block, stale object versions, missing gas objects, or misunderstood finality can break the flow.
Key Takeaways
- Sui transaction RPC requires you to manage object references and versions, not just signed transaction bytes.
- A successful submission response is not the same as a successful execution result, so your app should track both separately.
- Stale input objects and gas object conflicts are the most common write-breaking issues in real Sui applications.
- Safe retries on Sui usually mean rebuilding with fresh object references and re-signing, not resending the same bytes blindly.
- Endpoint architecture matters at scale because write coordination, read volume, and operational visibility need different handling patterns.
Sui transaction RPC trips up a lot of teams for the same reason Sui itself feels fast and different: writes depend on object references, object versions, and execution details that do not map cleanly to account-based chain habits. A read call can look simple, but the moment you submit a transaction block, stale object versions, missing gas objects, or misunderstood finality can break the flow.
That is why a practical Sui transaction RPC guide needs to focus less on generic chain concepts and more on what actually reaches your node, what the network validates, and what your app should store between retries. If you are building wallets, games, DeFi apps, or back-office workers on Sui, the operational gap usually appears after signing, not before.
In this guide, we will walk through the request fields that matter, the lifecycle from submission to confirmed effects, common failure modes, and production-safe retry patterns. Examples use the Sui endpoint on Nadcab RPC: https://rpc.nadcab.com/sui/<your-api-key>. You can create a key from the Nadcab RPC console login and review chain support on the supported networks page.
One API key. 70+ blockchains. Production-grade RPC.
Nadcab RPC gives you HTTPS and WebSocket endpoints across 150+ chain endpoints with smart routing and a 99.99% gateway uptime target. Pay as you go from $0.375 per 1M compute units.
Why Sui transactions feel different over RPC
On many chains, developers think in terms of one account nonce, one balance, one transaction hash, and a fairly linear write path. Sui transaction handling is more object-centric. Instead of mutating account state directly, a transaction consumes or references specific objects, each with its own identity and version.
That difference changes how you design your RPC layer. You are not just sending signed bytes and waiting for inclusion. You are making sure the objects named in the transaction are still valid at the expected versions, that the gas object is usable, and that the result you read back includes the execution details your app needs.
If your team is still getting comfortable with Sui object ownership and reads, first review this related guide on Sui object reads, ownership, and scaling. It pairs well with transaction debugging because most failed writes start with bad object assumptions.
What this means for your backend
- Cache object metadata carefully, but assume it can go stale before submit.
- Store the exact transaction intent and signer context so you can rebuild when references change.
- Request execution details explicitly when reading transaction results.
- Separate submission success from execution success.
- Design around eventual availability of effects and events across indexers, workers, and user-facing APIs.
The transaction request fields developers must understand
The exact RPC method you use depends on your stack and whether you submit raw transaction bytes or higher-level client abstractions. The important point is that the payload usually includes a built transaction block, a signature set, and execution options that determine what comes back in the response.
Core fields to track
| Field area | Why it matters | Common mistake |
|---|---|---|
| Transaction bytes | The serialized intent your signer approved | Reusing bytes after referenced object versions changed |
| Signatures | Proof that the signer approved the exact bytes | Rebuilding bytes without re-signing |
| Gas object | Funds execution and must be valid at submission time | Using a gas object already consumed elsewhere |
| Input objects | Objects the transaction reads or mutates | Building with stale versions from cached reads |
| Execution options | Controls whether effects, events, object changes, or balance changes are returned | Not requesting enough detail to debug failures |
| Request type / wait mode | Affects how long the RPC call waits before responding | Treating submission acknowledgement as final execution |
Example JSON-RPC submission
The following example shows a raw JSON-RPC request shape for submitting a transaction and asking for useful diagnostics in the response. The exact base64 values are placeholders, but the endpoint format is real.
curl -s https://rpc.nadcab.com/sui/<your-api-key>
-H 'Content-Type: application/json'
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "sui_executeTransactionBlock",
"params": [
"BASE64_TX_BYTES",
["BASE64_SIGNATURE"],
{
"showEffects": true,
"showEvents": true,
"showObjectChanges": true,
"showBalanceChanges": true,
"showInput": true
},
"WaitForLocalExecution"
]
}'
For app development, it is often worth defaulting to richer options in staging and trimming them in production only after you have separate observability pipelines. You can also review general setup patterns in Nadcab’s Web3 API integration guide.
Object references, versions, and why they break writes
This is the part that catches most teams. In Sui, many transactions depend on object references that must still be valid when the network executes the transaction. If another transaction updates or consumes one of those objects first, your previously built transaction can fail even though the user signed it correctly.
The stale version problem
Imagine your frontend reads a user-owned object at version 17 and builds a transaction around it. Before the user confirms, another wallet action updates the same object to version 18. The signed transaction still points to the older reference. On submission, execution can fail because the object state no longer matches the transaction’s expectations.
This is not just a frontend issue. Background workers can create the same race if they share gas pools or mutate the same application objects concurrently.
Production handling pattern
- Read the latest object metadata immediately before building transaction bytes.
- Keep the unsigned intent separate from the resolved object references.
- If submit fails due to an object version conflict, rebuild with fresh object references.
- Re-sign the rebuilt transaction. Do not reuse signatures for changed bytes.
- Use idempotency keys in your own application layer so one business action does not execute twice.
Gas objects need the same care
Gas is also object-based. If you maintain a server-side gas pool, two workers can accidentally try to use the same gas object at the same time. The fix is operational, not cosmetic: shard gas assignment, lock by gas object ID during build-and-submit, and release only after a terminal result.
For a broader view of event and checkpoint processing around these state changes, see Sui RPC patterns for events, checkpoints, and scale.
Connect to Sui in one line
Swap your current endpoint for Nadcab RPC and keep your existing ethers, viem, web3.js or Solana code:
https://rpc.nadcab.com/sui/<your-api-key>
What happens between submission, execution, and finality
A common mistake is collapsing the full write lifecycle into a single idea of success. With Sui transaction RPC, you want to track at least three stages: accepted for processing, executed with effects, and treated as final enough for your product flow.
Stage 1: submission acknowledgement
The RPC server accepts your request, validates request shape, and starts processing. This only tells you that the gateway and upstream path received something usable. It does not guarantee successful execution.
Stage 2: execution result
The transaction runs, and you receive effects such as status, gas used, mutated objects, created objects, deleted objects, and emitted events. This is usually the level your app needs before showing a successful action to the user.
Stage 3: product-level finality
Your exact definition depends on the app. A wallet may consider execution effects enough. An exchange or game backend may also wait until a downstream worker has indexed the resulting objects and events. The important point is to define this explicitly in your architecture.
When you need stable routing and operational visibility for this flow, Nadcab RPC status and the smart-routing gateway model help reduce the guesswork between transient RPC issues and real transaction logic problems. Nadcab RPC exposes Sui over HTTPS and WebSocket within its multi-chain gateway, which is useful if the same system also serves EVM and Solana traffic.
Reading effects, events, gas usage, and status correctly
The transaction response is only useful if you interpret it correctly. Teams often log the transaction digest and move on, then struggle to answer basic questions like: Did execution fail before object mutation? Was gas spent? Which object version should I use next?
Status first, then side effects
Start with the execution status. If status indicates failure, treat every other field as diagnostic detail, not evidence of a successful business action. Then inspect gas usage and error details to determine whether the failure came from object conflicts, Move logic, authorization, or invalid inputs.
Fields worth persisting
- Transaction digest
- Execution status and error message
- Gas object reference and gas usage details
- Created, mutated, wrapped, deleted, or transferred object summaries
- Event payloads relevant to your domain
- Checkpoint or sequencing metadata if your workers depend on ordered processing
Minimal read-after-write fetch
If your first response does not include everything you need, fetch the transaction by digest with explicit options.
curl -s https://rpc.nadcab.com/sui/<your-api-key>
-H 'Content-Type: application/json'
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "sui_getTransactionBlock",
"params": [
"0xTRANSACTION_DIGEST",
{
"showInput": true,
"showEffects": true,
"showEvents": true,
"showObjectChanges": true,
"showBalanceChanges": true
}
]
}'
If your app also spans other chains, Nadcab RPC’s one-key endpoint model can simplify operational setup from a single console at console.nadcab.com, while still letting your Sui-specific code request the fields it needs.
Pick the RPC setup that fits your stage
- Nadcab Cloud: shared, auto-scaling endpoints for dApps and wallets
- Nadcab Core: bring your own nodes and add our smart routing engine
- Nadcab Craft: dedicated clusters, custom auth, compliance logging and enterprise SLA
- Nadcab for Chains: RPC infrastructure for new L1 and L2 networks
Common Sui transaction failure modes and how to debug them
Most failures fall into a few repeatable categories. The best debugging approach is to classify the failure before you retry.
1. Stale object version
Symptoms: A transaction builds successfully, signatures look correct, but execution fails because an input object reference is outdated.
Debug path: Re-fetch the latest object metadata, compare object ID and version used in the built transaction, and check whether another transaction mutated the same object first.
2. Gas object conflict or insufficiency
Symptoms: Concurrent workers produce intermittent write failures, or execution cannot proceed due to gas constraints.
Debug path: Check whether the same gas object was assigned twice. Persist gas selection logs and lock ownership during the transaction lifecycle.
3. Move-level aborts
Symptoms: The RPC layer works, but business logic inside the target package fails.
Debug path: Inspect status and module-level error context. Reproduce with the same inputs in a controlled environment. Do not assume an infra issue when the request is structurally valid but the contract rules reject it.
4. Invalid or incomplete execution options
Symptoms: The transaction seems to succeed, but your application cannot determine object changes or event payloads.
Debug path: Ensure the submit or follow-up read requests include the response fields your app relies on.
5. Timeout between app and RPC gateway
Symptoms: Your HTTP client times out and marks the write unknown, but the chain may still execute it.
Debug path: Never immediately resubmit blind. First search by your application idempotency record, signer activity, or stored digest if available. This is where clean retry discipline matters more than raw speed.
RPC patterns for retries, idempotency, and throughput
Reliable Sui write handling is mostly a state-management problem. Your goal is to avoid duplicate business actions while still recovering from transient network issues.
Idempotency pattern
- Assign a unique application action ID before building the transaction.
- Store unsigned intent, resolved object references, gas selection, and submit attempts.
- Mark the action as terminal only after you have a confirmed execution outcome that satisfies your product rules.
- If a timeout occurs, resume lookup before rebuild or retry.
Safe retry checklist
| Situation | Should you retry? | What to do first |
|---|---|---|
| HTTP timeout before response | Not immediately | Check whether the transaction was already submitted or executed |
| Stale object version error | Yes | Re-read objects, rebuild bytes, re-sign, then resubmit |
| Move abort | Usually no | Fix input or contract assumptions before another attempt |
| Temporary gateway or upstream issue | Yes | Use backoff and preserve the original action record |
| Gas object double-use | Yes, after correction | Assign a different gas object and rebuild safely |
Throughput planning
If your workload is high-volume, separate read workers from write workers. Reads can scale broadly, but writes need coordination around object ownership and gas usage. Queue transactions by contention domain, such as shared object or user wallet, instead of firing everything in parallel.
For general infrastructure choices behind these patterns, Nadcab has a useful primer on nodes, RPCs, and APIs in Web3 infrastructure.
Stop overpaying for RPC requests
Nadcab Cloud starts at $10 with no rate tiers: you pay $0.375 per 1M compute units and scale up or down without contracts. Every plan includes archive and WebSocket access on supported networks.
Choosing endpoint architecture for Sui apps at scale
The right endpoint setup depends on where your bottleneck really is. Many Sui apps do not fail because the chain is hard to query. They fail because production traffic mixes hot-path writes, indexing reads, analytics pulls, and backfills against the same RPC path without clear separation.
When shared gateway access is enough
If you are launching or still validating product-market fit, shared auto-scaling endpoints are usually enough. Nadcab Cloud gives you shared endpoints behind Nadcab’s routing layer, using the same one-key endpoint format across 70+ networks and 150+ endpoints.
When you need more control
If your Sui app needs custom routing behavior, isolation from noisy workloads, or compliance-oriented logging, the architecture changes. Nadcab Core fits teams that want their own nodes combined with Nadcab’s routing engine. Nadcab Craft is for dedicated clusters, custom auth, compliance logging, and an enterprise SLA.
Questions to ask before choosing
- Do your write workers need isolated capacity from your analytics or indexing reads?
- Will you run multi-chain backends from one API key and console?
- Do you need WebSocket feeds alongside HTTPS requests?
- Are archive-style historical reads required for your broader stack, especially on major EVM chains?
- Do you need operational visibility through a live status page and predictable pay-as-you-go pricing?
Nadcab RPC is often a practical fit here because it combines Sui access with broader multi-chain coverage in one gateway, with pay-as-you-go pricing at $0.375 per 1M compute units, Nadcab Cloud from $10, and no rate tiers. If you are planning a new chain launch rather than just consuming Sui, Nadcab for Chains is the product built for RPC on new L1 and L2 networks.
Teams that need implementation help beyond infrastructure can also review Nadcab’s Web3 development services and blockchain development company offerings.
Related guides from Nadcab Labs
Final Thoughts
Sui transaction handling becomes much easier once you stop treating writes like account-based chain transactions with a different URL. The important units are object references, object versions, gas objects, and the execution effects that come back after submission.
In practice, most production issues come from stale object references, uncoordinated gas usage, weak idempotency, or reading too little from the transaction result. Fix those four areas and your Sui transaction RPC flow becomes far more predictable.
Use a gateway that gives you dependable routing, clear endpoint structure, and room to grow across environments. For Sui, the Nadcab RPC endpoint is straightforward to adopt at https://rpc.nadcab.com/sui/<your-api-key>, and the surrounding docs, status page, and product options make it easier to move from debugging single writes to operating a real production system.
Ship faster on infrastructure you don’t have to babysit
Get one API key for 70+ networks, HTTPS and WebSocket endpoints, smart routing and a live status page. Building something bigger? Our blockchain team can design and run the full stack with you.
Get Your Free API Key →Talk to Our Experts
Pay as you go · No rate tiers · 99.99% gateway uptime target
Frequently Asked Questions
Q1.What is the main difference between Sui transaction RPC and EVM transaction RPC?
The biggest difference is that Sui writes are object-centric. Transactions often depend on specific object IDs and versions, including gas objects, so a valid signature is not enough by itself. If an object changes before execution, the transaction may fail and need to be rebuilt and re-signed.
Q2.Why does my Sui transaction fail even though signing succeeded?
Signing only proves that the signer approved a specific set of transaction bytes. If those bytes reference stale object versions, an unavailable gas object, or inputs that violate Move contract rules, execution can still fail. Always inspect the execution status, effects, and object references used at build time.
Q3.Should I retry a failed Sui transaction automatically?
Only after classifying the failure. Temporary transport or gateway issues may justify a retry with backoff, but stale object errors require rebuilding the transaction with fresh references, and Move-level aborts usually require fixing the inputs or business logic first. Blind retries can create duplicates or more failures.
Q4.How do I confirm a Sui transaction really completed?
Do not rely on submission acknowledgement alone. Read the transaction result by digest and request effects, events, object changes, and balance changes as needed. Your application should define what counts as complete, such as successful execution plus downstream indexing or internal reconciliation.
Q5.What Sui RPC endpoint format does Nadcab RPC use?
The endpoint format is https://rpc.nadcab.com/
Explore Services
Related Services
Reviewed by

Aman Vaths
Founder of Nadcab Labs
Aman Vaths is the Founder & CTO of Nadcab Labs, a global digital engineering company delivering enterprise-grade solutions across AI, Web3, Blockchain, Big Data, Cloud, Cybersecurity, and Modern Application Development. With deep technical leadership and product innovation experience, Aman has positioned Nadcab Labs as one of the most advanced engineering companies driving the next era of intelligent, secure, and scalable software systems. Under his leadership, Nadcab Labs has built 2,000+ global projects across sectors including fintech, banking, healthcare, real estate, logistics, gaming, manufacturing, and next-generation DePIN networks. Aman’s strength lies in architecting high-performance systems, end-to-end platform engineering, and designing enterprise solutions that operate at global scale.


