Integrating SUI, the native token of the Sui blockchain, into a cryptocurrency exchange requires a clear understanding of the network’s architecture, node requirements, and transaction mechanisms. Unlike traditional blockchains, Sui operates on a directed acyclic graph (DAG) consensus model, enabling high throughput and low-latency finality. This guide outlines essential steps and best practices for exchanges aiming to support SUI deposits, withdrawals, and staking services.
Prerequisites for SUI Integration
To begin integrating SUI, your exchange must first establish reliable access to the Sui network. This involves deploying or connecting to a full node.
Full Node Requirements
A Sui full node is necessary to validate transactions, monitor balances, and submit operations to the network. You can either run your own node or use a third-party node provider.
Recommended Hardware Specifications:
- CPU: 8 physical cores / 16 virtual cores
- RAM: 128 GB
- Storage: 4 TB NVMe SSD
For optimal performance, deploy the node on a Linux system—Ubuntu and Debian are officially supported. macOS is also compatible but not recommended for production environments.
Setting Up a Sui Full Node
You can configure a Sui full node using Docker or by compiling from the official GitHub repository. Docker offers faster deployment and easier version management, while building from source provides greater control over configurations.
Once deployed, ensure your node regularly syncs with the latest checkpoint to maintain data consistency across the network.
Generating and Managing Sui Addresses
Sui addresses do not require on-chain initialization. They can be derived off-chain using cryptographic functions and used immediately for receiving and spending funds.
Address Derivation Process
A Sui address is a 32-byte value generated by hashing the concatenation of a signature scheme flag and the public key (flag || pubkey) using the BLAKE2b-256 hash function.
Supported signature schemes and their corresponding flags:
- Ed25519:
0x00 - Secp256k1:
0x01 - Secp256r1:
0x02 - MultiSig:
0x03
Rust Code Example for Address Derivation
let flag = 0x00; // Ed25519
let mut hasher = DefaultHash::default();
hasher.update([flag]);
hasher.update(&public_key);
let arr = hasher.finalize();
let address_string = hex::encode(arr);Displaying Sui Addresses
Sui supports addresses with and without the 0x prefix. However, it is strongly recommended to include the 0x prefix in all API responses and user-facing interfaces to prevent parsing errors and improve compatibility.
Monitoring Balance Changes
Accurate balance tracking is critical for exchange operations. There are two primary methods to monitor SUI balance changes: polling and event subscription.
Method 1: Polling via sui_getBalance
Use the sui_getBalance RPC method at regular intervals to fetch an address’s total SUI balance.
Bash Example:
rpc="https://fullnode.devnet.sui.io:443"
address="0x849d63687330447431a2e76fecca4f3c10f6884ebaa9909674123c6c662612a3"
data="{\"jsonrpc\": \"2.0\", \"method\": \"sui_getBalance\", \"id\": 1, \"params\": [\"$address\"]}"
curl -X POST -H 'Content-type: application/json' --data-raw "$data" $rpcSample Response:
{
"jsonrpc": "2.0",
"result": {
"coinType": "0x2::sui::SUI",
"coinObjectCount": 40,
"totalBalance": 10000000000,
"lockedBalance": {}
},
"id": 1
}This method returns the total balance in nanos (1 SUI = 1,000,000,000 nanos).
Method 2: Event-Based Tracking
For real-time updates, subscribe to events emitted by transactions involving an address. Filter events using the Recipient condition.
Example cURL Request:
data="{\"jsonrpc\": \"2.0\", \"id\":1, \"method\": \"sui_getEvents\", \"params\": [{\"Recipient\": {\"AddressOwner\": \"$address\"}}, null, 100, true]}"
curl -X POST -H 'Content-type: application/json' --data-raw "$data" $rpcUse pagination with nextCursor to handle large datasets efficiently. The cursor uses txDigest and eventSeq from previous responses.
👉 See how leading platforms achieve real-time transaction monitoring with event-driven architectures.
Understanding Checkpoints vs Blocks
Sui uses checkpoints instead of traditional blocks for global ordering and finality.
Key Differences:
- Checkpoints include finalized transactions (already executed).
- No forks, rollbacks, or reorganizations.
- A new checkpoint is created approximately every 3 seconds.
Checkpoint API Endpoints
sui_getCheckpoint– Retrieve a specific checkpoint by sequence number.sui_getLatestCheckpointSequenceNumber– Get the latest checkpoint ID.sui_getCheckpoints– Fetch a paginated list of checkpoints within a range.
These APIs help verify transaction inclusion and maintain audit trails.
Transferring SUI Tokens
In Sui, all assets—including SUI—are represented as objects. Each SUI token is a separate object with its own value.
Managing SUI Objects
An address may hold multiple SUI objects with varying values (e.g., 0.1 SUI, 1.0 SUI). The total balance is the sum of all individual objects.
To send a precise amount:
- Combine smaller objects into one via merging.
- Split larger objects if needed.
Sui provides built-in methods to simplify this process without manual intervention.
SUI Transfer API Operations
Sui offers several RPC methods for transferring tokens:
sui_transferObject
Transfers any object (including SUI) by ID. Requires a separate gas coin.
sui_payAllSui
Merges all SUI coins in an account, deducts gas, and sends the entire balance to a recipient. Ideal for full withdrawals.
Note: Can also be used to consolidate coins by sending to self.
sui_paySui
Pays a specified amount using multiple SUI coins. Automatically selects inputs and covers gas fees.
sui_transferSui
Transfers a specific amount from a single SUI object. Gas is paid from the same object—amount must be less than the object’s value.
Signing Transactions
All transactions must be signed using one of Sui’s supported cryptographic schemes:
- Ed25519 (recommended)
- Secp256k1
- Secp256r1
- MultiSig
Ensure proper serialization of transaction data before signing. Invalid signatures will result in rejected transactions.
Staking SUI on Exchanges
Sui uses a Delegated Proof-of-Stake (DPoS) model, allowing users to stake SUI and earn rewards by delegating to validators.
How Staking Works
- Staked tokens are locked for the duration of the staking period.
- Rewards are distributed at the end of each epoch based on network-wide staking metrics.
- Users can withdraw stakes at any time, but new stakes only activate in the next epoch.
Validators have a maximum voting power cap of 1,000 (10%), ensuring decentralization regardless of stake size.
Staking API Functions
The core staking logic resides in the sui_system Move module:
request_add_stake
Adds a single SUI coin to a validator’s stake pool.
request_add_stake_mul_coin
Supports staking with multiple coins in one transaction.
request_add_stake_with_locked_coin
Enables staking using time-locked SUI tokens.
request_withdraw_stake
Allows partial or full withdrawal of delegated stake.
Exchanges can use these functions to offer staking-as-a-service features with automated reward distribution.
👉 Learn how integrated staking solutions increase user retention and revenue.
Frequently Asked Questions
Q: Can I integrate SUI without running my own node?
A: Yes. While running a full node ensures maximum reliability and control, you can use third-party RPC providers for initial integration. However, exchanges handling large volumes should eventually operate their own nodes for security and performance.
Q: How often are staking rewards distributed?
A: Rewards are calculated and distributed at the end of each staking epoch, which occurs approximately every 24 hours.
Q: Are there withdrawal delays when unstaking SUI?
A: Yes. Withdrawn stakes become available after a cooldown period that lasts until the end of the current epoch—typically less than 24 hours.
Q: Is it safe to reuse Sui addresses?
A: Yes. Addresses can be reused safely for both receiving and sending funds. However, consider privacy implications when designing wallet systems.
Q: What happens if a transaction fails during a transfer?
A: Failed transactions consume gas but do not transfer funds. Always validate transaction status using checkpoint confirmations before updating user balances.
Q: Can I track pending transactions?
A: Sui does not support mempools like Ethereum. Transactions are executed immediately upon validation. Use event subscriptions or checkpoint confirmations to track execution status.
Core Keywords: Sui integration, SUI exchange setup, Sui full node, SUI staking, blockchain API, crypto wallet integration, DAG blockchain, checkpoints vs blocks