# 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](https://docs.sui.io).

## How Sui differs from other ledgers

| Topic | Most account-based ledgers | Sui |
|  --- | --- | --- |
| Balance model | A single balance per account | A set of coin objects per address, plus an optional address balance |
| Replay protection | An account nonce or sequence number | The versions of the coin objects that a transaction spends |
| Fees | Gas price and gas limit | A gas budget, with a storage rebate |
| Stuck transactions | Replace with a higher fee | The transaction expires at a set epoch |
| Finality | After several blocks, or probabilistic | Final 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](/pt-br/products/custody/accounts-and-assets/accounts/account-key-derivation-and-ledger-compatibility).

## 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>`:

| Asset | Coin type | Decimals |
|  --- | --- | --- |
| SUI, the native currency | `0x2::sui::SUI` | 9. The smallest unit is the MIST: 1 SUI = 1,000,000,000 MIST. |
| Circle USDC on mainnet | `0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC` | 6 |


Ripple Custody supports three kinds of Sui coins:

| Kind | Description |
|  --- | --- |
| Legacy coins | `Coin<T>` coins whose metadata sits in a `CoinMetadata` object. |
| Currency Standard coins | Coins whose metadata sits in the Sui coin registry. |
| Regulated coins | Coins 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](/pt-br/products/custody/accounts-and-assets/blockchains/sui/send-and-receive-api#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](/pt-br/products/custody/accounts-and-assets/blockchains/sui/send-and-receive-api#when-a-transaction-expires).

You set how long each transaction stays valid. For more information, see [Validity window](/pt-br/products/custody/accounts-and-assets/blockchains/sui/send-and-receive-api#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](/pt-br/products/custody/accounts-and-assets/blockchains/sui/send-and-receive-api#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

| Network | Purpose |
|  --- | --- |
| Mainnet | Production |
| Testnet | Pre-production testing |
| Devnet | Development, reset regularly |


You register each network that you use as a separate ledger. For the payloads, see [Add the Sui ledger](/pt-br/products/custody/accounts-and-assets/blockchains/sui/set-up-api#add-the-sui-ledger).