What is Sui used for?
October 26, 2026
Sui is used to build apps that hold and move digital assets: DeFi protocols and order books, games with onchain items, NFTs and collectibles, payments, and consumer apps where people sign in with a regular web account. Because every asset is an object with its own ID and owner, and independent transactions run in parallel, Sui suits apps with many users each touching their own items. The Sui docs list DeepBook, Walrus, zkLogin and digital assets as its main use cases.
Common use cases
DeFi. DeepBook is a central limit order book that runs onchain as shared Move objects. Other protocols can call it as their liquidity layer. Lending markets, DEXs and liquid staking protocols are built the same way. Programmable transaction blocks let one transaction chain several protocol calls, such as swap, deposit and borrow, and the whole thing either succeeds or fails together.
Digital assets and NFTs. Any Move struct with the key ability is an object an address can own. Display metadata controls how wallets and explorers render an object, and Kiosk adds trading with royalty and transfer policies that creators enforce.
Games. Items, characters and inventories can each be separate objects. That means players' moves don't contend with each other, and items can be wrapped inside other objects or owned by them.
Consumer apps and onboarding. With zkLogin, users get a Sui address from an OAuth sign-in (Google, Apple, Twitch, and others) without managing a seed phrase. Sponsored transactions let an app pay gas for its users.
Storage and data. Walrus stores large blobs (media, datasets, websites) off-chain and coordinates them through Sui objects. Seal adds encryption with onchain access control, and SuiNS maps readable .sui names to addresses.
Tokens and payments. Creating a fungible token takes one Move module (see create a coin). Coin transfers usually involve only owned objects, so they don't wait on each other.
A small example
Here's a minimal asset type in Move 2024. Each Ticket is its own object, owned by whoever receives it:
module example::ticket;
public struct Ticket has key, store {
id: UID,
seat: u64,
}
public fun mint(seat: u64, ctx: &mut TxContext): Ticket {
Ticket { id: object::new(ctx), seat }
}The caller then transfers the returned Ticket to someone in the same PTB. You can mint and move objects like this on testnet from the playground.
When Sui is a poor fit
Sui doesn't run EVM bytecode, so you can't deploy Solidity contracts to it unchanged. Logic has to be rewritten in Move, and app code has to talk to Sui's object-based APIs. Read is Sui EVM compatible before porting.
Sources
- Sui documentation, use cases and Sui Stack
- DeepBookV3, Sui documentation
- zkLogin, Sui documentation
- Walrus documentation