Skip to main content

Guides and Tutorials

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.

1. Install Sui

Install the Sui framework and its required prerequisites on your system.

2. Configure a Sui Client

The Sui client configuration specifies which network to connect to and which address to send transactions.

3. Create a Sui Address

You need an address on the Sui network before you can build packages and own objects.

4. Get SUI from Faucet

Use the Sui faucet to obtain free SUI tokens for use on the Sui Devnet and Testnet networks.

5. Hello, World!

Create and publish your first Move package using a basic 'Hello, World!' example.

6. Next Steps

To continue your journey building on Sui, you can review other documentation, join the community of other Sui builders, or check out the Awesome Sui repo.

Objects

Learn about Sui's object model, ownership patterns, and how to work with dynamic fields.

Object Model

Everything on the Sui blockchain is an object that has metadata, a type of ownership, and a referencing scheme.

Object Ownership

On Sui, object ownership can be represented in different ways. Weigh the benefits of each to decide the best approach for your project.

Transfers

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

Dynamic fields and dynamic object fields on Sui are added and removed dynamically, affect gas only when accessed, and store heterogeneous values.

Object Versioning

Versioning provides the ability to upgrade packages and objects on the Sui network.

Simulating References

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.

Move Package Management

Learn how to use the Move package manager system.

Package Upgrades

Sui provides a method of upgrading your packages while still retaining their immutable properties.

Custom Policies

Custom upgrade policies are used to upgrade live packages while addressing the security risks of single key ownership upgrades.

Automated Address Management

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.

Sign and Send Transactions

Each transaction on Sui represents a call to a specific functionality that executes with inputs that define the result of the transaction.

Building PTBs

Using the Sui TypeScript SDK, you can create programmable transaction blocks to perform multiple commands in a single transaction.

Sponsored Transactions

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.

gRPC Overview

Overview of the gRPC API to access Sui network data.

Query with GraphQL

Practical guide to making queries of the Sui RPC using the GraphQL service, with examples for common tasks.

Custom Indexing Framework

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 Your First Custom Indexer

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.

Custom Indexer and Walrus

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.

Using Events

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.

Create Currencies and Tokens

Learn how to create currencies and mint coins and tokens on the Sui network using the Coin Registry system.

Regulated Currency and Deny List

You can create regulated currencies on Sui using the Coin Registry system. These coins include the ability to control access using a deny list.

In-Game Currency

Use the Sui Closed-Loop Token standard to create tokens that you can use as currency within a game application.

Loyalty Token

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.

Vesting Strategies

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.

Create an NFT

On Sui, everything is an object. Moreover, everything is a non-fungible token (NFT) as its objects are unique, non-fungible, and owned.

Soulbound NFT

An example using Sui Move struct abilities and the Sui Framework's `transfer` module to make a NFT soulbound (non-transferable).

NFT Rental Example

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.

Asset Tokenization

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 On-Chain Time

Access network-based time for your transactions. Sui provides a Clock module to capture near-real time or epoch time in your Sui packages.

On-Chain Randomness

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 On-Chain Signatures Verification in Move

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.

Groth16

Zero-knowledge proofs are used to validate statements without revealing information about the proof's inputs.

Hashing

Sui supports SHA2-256, SHA3-256, Keccak256, and Blake2b-256 cryptographic hash functions.

ECVRF

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.

Multisig Authentication

Guide on how to create a multisig transaction and then submit it against a local network using the Sui CLI.

zkLogin Integration Guide

zkLogin can be integrated into applications deployed on Sui.

Configure OpenID Providers

zkLogin can be integrated with an application using an OpenID provider's OAuth Client ID and redirect URI.

zkLogin Example

An example that breaks down the logic behind each step of zkLogin.

Nautilus

Nautilus Overview

Run secure, off-chain logic in trusted execution environments (TEEs), and verify it on-chain to trigger safe smart contract workflows.

Using Nautilus

Details on how to use Nautilus with the reproducible build template.

Customize Nautilus

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.

End-to-End Counter

An app that allows users to create counters that anyone can increment, but only the owner can reset.

Trustless Swap

An app that performs atomic swaps on Sui. Atomic swaps are similar to escrows but without requiring a trusted third party.

Coin Flip

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.

Review Rating

This example app creates a food rating service that stores all review data and algorithms on-chain.

Blackjack

Learn Sui using an example implementation of the popular casino game Blackjack.

Plinko

Learn Sui through an example implementation of the popular casino game, Plinko.

Tic-Tac-Toe

This example demonstrates how to create three variations of a tic-tac-toe app on Sui.

Oracles

Oracles connect smart contracts deployed on-chain with data that is stored off-chain.

Weather Oracle

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.

Meta Pricing Oracle

Operator guides

Processes and guides for validators and node operators on the Sui network.

Operator Overview

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.

Run a Sui Full Node

Operate a Sui full node to validate blockchain activities, like transactions, checkpoints, and epoch changes.

Full Node Data Management

A high-level description of data management on the Sui network that you can use to optimize your Sui full node configuration.

Monitoring

Monitor Sui node metrics to ensure the health and performance of your node.

Validator Configuration

Learn how to set up, configure, and manage a Sui validator node.

Sui Bridge Node Configuration

Correct configuration of your node ensures optimal performance and valid metrics data.

SuiPlay0X1

Guides for developing games for the SuiPlay0X1 handheld gaming device.

SuiPlay0X1 Overview

Learn how to build games for the SuiPlayX01 handheld gaming device.

Integration

Integrate with SuiPlay0X1 using the Playtron GameOS SDK.

Migration Strategies

SuiPlay0X1 is part of the Sui gaming ecosystem. Users can migrate accounts between on-device and off-device versions of a game.

Wallet Integration

SuiPlay0X1 supports integration with several wallet solutions, including self-custodial wallets, zkLogin wallets, Playtron wallets, and custodial wallets.

Best Practices

Adhere to best practices when developing for SuiPlay0X1.