This section provides practical, implementation-focused examples designed to accelerate your journey developing on Sui.
Whether you are new to blockchain development or an experienced Sui developer, these resources offer structured guidance for building applications, creating assets, and leveraging Sui's unique technical features effectively.
Get started developing on Sui
Install tooling, setup your environment, and deploy a "Hello, World!" Move package to start your Sui developer experience.
Objects
Learn about Sui's object model, ownership patterns, and how to work with dynamic fields.
Everything on the Sui blockchain is an object that has metadata, a type of ownership, and a referencing scheme.
On Sui, object ownership can be represented in different ways. Weigh the benefits of each to decide the best approach for your project.
Everything on Sui is an object. To use objects, they must be transferred between owners, which can be an address or another object.
Dynamic fields and dynamic object fields on Sui are added and removed dynamically, affect gas only when accessed, and store heterogeneous values.
Versioning provides the ability to upgrade packages and objects on the Sui network.
Use the borrow module in the Sui framework to include objects by reference in your programmable transaction blocks.
Packages
Learn how to manage, upgrade, and configure Move packages on Sui.
Learn how to use the Move package manager system.
Sui provides a method of upgrading your packages while still retaining their immutable properties.
Custom upgrade policies are used to upgrade live packages while addressing the security risks of single key ownership upgrades.
Packages published across Mainnet, Testnet, and Devnet each have different addresses. Automated address management tracks these addresses for you.
Transactions
Learn about signing and sending transactions, building programmable transaction blocks, and sponsored transactions.
Each transaction on Sui represents a call to a specific functionality that executes with inputs that define the result of the transaction.
Using the Sui TypeScript SDK, you can create programmable transaction blocks to perform multiple commands in a single transaction.
Sponsored transactions are a primitive on the Sui blockchain that enable the execution of a transaction where you pay the gas fee for your users transactions.
Accessing data
Build your own custom indexer, query data with GraphQL, and work with events.
Overview of the gRPC API to access Sui network data.
Practical guide to making queries of the Sui RPC using the GraphQL service, with examples for common tasks.
The `sui-indexer-alt-framework` is a powerful Rust framework for building high-performance, custom blockchain indexers on Sui. It provides customizable, production-ready components for data ingestion, processing, and storage.
Build a custom indexer using the `sui-indexer-alt-framework` module. The example indexer demonstrates a sequential pipeline that extracts transaction digests from Sui checkpoints and stores them in a local PostgreSQL.
Walrus is a content-addressable storage protocol, where data is retrieved using a unique identifier derived from the content itself, rather than from a file path or location. Integrating a custom Sui Indexer with Walrus can provide novel user experiences.
Use events to notify on-chain assets of activity your smart contracts initiate and query events from other packages to trigger logic based on emitted events.
Currencies and tokens
Learn how to create and manage coins and tokens on Sui.
Learn how to create currencies and mint coins and tokens on the Sui network using the Coin Registry system.
You can create regulated currencies on Sui using the Coin Registry system. These coins include the ability to control access using a deny list.
Use the Sui Closed-Loop Token standard to create tokens that you can use as currency within a game application.
Use the Sui Closed-Loop Token standard to create tokens that are only valid within specific workflows and services. One example of Closed-Loop Tokens is a loyalty token.
If you plan to launch a token on Sui, then you might consider implementing a vesting strategy to strengthen the long-term outlook of your token.
NFTs
Learn how to create NFTs, implement soulbound tokens, and tokenize assets.
On Sui, everything is an object. Moreover, everything is a non-fungible token (NFT) as its objects are unique, non-fungible, and owned.
An example using Sui Move struct abilities and the Sui Framework's `transfer` module to make a NFT soulbound (non-transferable).
An example using the Kiosk Apps standard that provides the ability for users to rent NFTs according to the rules of a provided policy instead of outright owning them. This approach closely aligns with the ERC-4907 renting standard, making it a suitable choice for Solidity-based use cases intended for implementation on Sui.
Learn how to tokenize assets on the Sui blockchain. Asset tokenization refers to the process of representing real-world assets, such as real estate, art, commodities, stocks, or other valuable assets, as digital tokens on the blockchain network.
On-chain primitives
Learn how to work with time and randomness on-chain.
Access network-based time for your transactions. Sui provides a Clock module to capture near-real time or epoch time in your Sui packages.
Randomness is a valuable tool to simulate chance on chain, but can also expose flaws in your logic. Understanding the vulnerabilities and accounting for them can mitigate the threat exposure for your smart contracts.
Cryptography
Learn about on-chain signatures, multisig authentication, and zkLogin.
Sui supports verification within Move smart contracts through several signature schemes. Signature schemes include Ed25519, Secp256k1 recoverable, Secp256k1 non-recoverable, Secp256r1 non-recoverable, Secp256r1 recoverable, BLS G1, and BLS G2.
Zero-knowledge proofs are used to validate statements without revealing information about the proof's inputs.
Sui supports SHA2-256, SHA3-256, Keccak256, and Blake2b-256 cryptographic hash functions.
Elliptic curve verifiable random function is a cryptographic algorithm that enables you to generate a random number and provide proof that the number used a secret key for generation.
Guide on how to create a multisig transaction and then submit it against a local network using the Sui CLI.
zkLogin can be integrated into applications deployed on Sui.
zkLogin can be integrated with an application using an OpenID provider's OAuth Client ID and redirect URI.
An example that breaks down the logic behind each step of zkLogin.
Nautilus
Run secure, off-chain logic in trusted execution environments (TEEs), and verify it on-chain to trigger safe smart contract workflows.
Details on how to use Nautilus with the reproducible build template.
Details on how to customize Nautilus server logic, test functionality locally, and manage the enclave.
Example applications
Try out these example applications to learn more about Sui.
An app that allows users to create counters that anyone can increment, but only the owner can reset.
An app that performs atomic swaps on Sui. Atomic swaps are similar to escrows but without requiring a trusted third party.
Learn Sui through a coin flip dApp that covers the full end-to-end flow of building a Sui Move module and connecting it to a React Sui dApp.
This example app creates a food rating service that stores all review data and algorithms on-chain.
Learn Sui using an example implementation of the popular casino game Blackjack.
Learn Sui through an example implementation of the popular casino game, Plinko.
This example demonstrates how to create three variations of a tic-tac-toe app on Sui.
Oracles connect smart contracts deployed on-chain with data that is stored off-chain.
Write a module (smart contract) in Move that fetches the weather data from the OpenWeather API every 10 minutes and updates the weather conditions for over 1,000 locations around the world.
Operator guides
Processes and guides for validators and node operators on the Sui network.
Guides for operators on the Sui network. Whether you are running a full node for your dApp or operating as a validator on the Sui network, these guides help you set up your environment and operate your network.
Operate a Sui full node to validate blockchain activities, like transactions, checkpoints, and epoch changes.
A high-level description of data management on the Sui network that you can use to optimize your Sui full node configuration.
Monitor Sui node metrics to ensure the health and performance of your node.
Learn how to set up, configure, and manage a Sui validator node.
Correct configuration of your node ensures optimal performance and valid metrics data.
SuiPlay0X1
Guides for developing games for the SuiPlay0X1 handheld gaming device.
Learn how to build games for the SuiPlayX01 handheld gaming device.
Integrate with SuiPlay0X1 using the Playtron GameOS SDK.
SuiPlay0X1 is part of the Sui gaming ecosystem. Users can migrate accounts between on-device and off-device versions of a game.
SuiPlay0X1 supports integration with several wallet solutions, including self-custodial wallets, zkLogin wallets, Playtron wallets, and custodial wallets.
Adhere to best practices when developing for SuiPlay0X1.