Skip to content

Sui concepts

This page explains the Sui concepts that affect how you custody assets in Ripple Custody. Ripple Custody handles most of these differences for you, so your balances, orders, and transaction lifecycle look the same as on other ledgers. For the Sui documentation, see docs.sui.io.

How Sui differs from other ledgers

TopicMost account-based ledgersSui
Balance modelA single balance per accountA set of coin objects per address, plus an optional address balance
Replay protectionAn account nonce or sequence numberThe versions of the coin objects that a transaction spends
FeesGas price and gas limitA gas budget, with a storage rebate
Stuck transactionsReplace with a higher feeThe transaction expires at a set epoch
FinalityAfter several blocks, or probabilisticFinal when the network certifies its checkpoint, with no reorganizations

Addresses and keys

A Sui address is a 32-byte value written as 0x followed by 64 hexadecimal characters, for example 0x7d20dcdb2bca4f508ea9613994683eb4e76e9c4ed371169677c1be02aaf0b58e. It's 66 characters long, compared with 42 characters for an EVM address.

Ripple Custody uses the Ed25519 signature scheme for Sui accounts. The vault derives each account's key from your master seed and computes the address from the public key, so you don't register the address on chain. For more information, see Key derivation.

Coin objects and balances

On Sui, a balance isn't a single number. An address owns discrete coin objects, each with its own value, and the balance is the sum of the coins of each type. Transfers split and merge coins as they go. Since 2026, an address can also hold an address balance, an account-like amount that sits alongside its coin objects.

Ripple Custody hides this detail. It reports one balance per address and asset, which includes both coin objects and the address balance. You never select coin objects yourself.

SUI and Sui coins

Every fungible asset on Sui is a coin type, identified by a Move type tag in the form <package address>::<module>::<name>:

AssetCoin typeDecimals
SUI, the native currency0x2::sui::SUI9. The smallest unit is the MIST: 1 SUI = 1,000,000,000 MIST.
Circle USDC on mainnet0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC6

Ripple Custody supports three kinds of Sui coins:

KindDescription
Legacy coinsCoin<T> coins whose metadata sits in a CoinMetadata object.
Currency Standard coinsCoins whose metadata sits in the Sui coin registry.
Regulated coinsCoins with an issuer-controlled, on-chain deny list. Circle's native USDC is a regulated coin.

When Ripple Custody detects a coin type that it doesn't know yet, it creates the token automatically from the coin's on-chain metadata: symbol, decimals, and coin type. If it can't read the metadata, it doesn't record the transfer or create a token.

Deny lists

A regulated coin's issuer can add addresses to the coin's deny list. The network refuses transfers to an address on the deny list.

Ripple Custody checks the recipient against the deny list before it builds a transfer of a regulated coin. For how the check works and what it returns, see Transfers of regulated coins.

Gas and fees

Every Sui transaction pays gas in SUI, including transfers of other coins. An account that sends a Sui coin must also hold SUI for the fee.

  • Gas budget: The maximum that the sender agrees to pay. Ripple Custody sets it by simulating the transaction on the node, and reports it as the fee estimate. The sending account must hold at least the gas budget in SUI.
  • Actual fee: The network charges for computation and storage, and then refunds a storage rebate for storage that the transaction frees. The fee that you pay is usually lower than the gas budget.
  • Gas price: Sui sets a reference gas price for each epoch.

Epochs and expiration

An epoch on Sui lasts about 24 hours. Every transaction that Ripple Custody builds has an expiration epoch. If the network doesn't finalize the transaction before that epoch, it rejects the transaction for good.

Sui has no way to replace a transaction with a higher fee. For what Ripple Custody does when a transaction expires, see When a transaction expires.

You set how long each transaction stays valid. For more information, see Validity window.

Replay protection and coin reservation

Sui has no account nonce. A transaction names the exact versions of the coin objects that it spends, and the network refuses a second transaction that spends the same versions.

When Ripple Custody prepares a transaction, it selects and reserves the coins that the transaction spends, much as it reserves a nonce on EVM ledgers. It fixes every transaction parameter at preparation, including the gas price, so a signed transaction can wait for hours or days before broadcast. For how gas price changes affect a long wait, see Validity window.

Finality

Sui records history as a sequence of checkpoints. A certified checkpoint is final: it never forks, rolls back, or reorganizes. Ripple Custody confirms a Sui transaction as soon as it processes the transaction's checkpoint.

Networks

NetworkPurpose
MainnetProduction
TestnetPre-production testing
DevnetDevelopment, reset regularly

You register each network that you use as a separate ledger. For the payloads, see Add the Sui ledger.