Workshop lengkap untuk belajar Sui Move development dari dasar hingga membuat fullstack dApp (smart contract + frontend).
- Overview
- Prerequisites
- Workshop Structure
- Quick Start
- Day 1: Counter dApp
- Day 2: Coin (Fungible Token)
- Day 3: NFT (Non-Fungible Token)
- Resources
Workshop ini berisi:
- ✅ Sui Move fundamentals - Syntax, structs, functions, abilities
- ✅ Smart contract patterns - Counter, Coin (Fungible Token), NFT (Non-Fungible Token)
- ✅ Testing - Unit tests dengan test scenarios
- ✅ Deployment - Deploy ke Sui testnet
- ✅ Frontend integration - React + TypeScript + Sui SDK
- ✅ Best practices - Clean code, error handling, documentation
Target Audience:
- Developers yang ingin belajar blockchain
- Familiar dengan programming (any language)
- Bonus jika tau TypeScript/React (untuk UI)
Sebelum mulai Day 1, WAJIB ikuti setup di:
Checklist yang harus selesai:
- ✅ Rust terinstall
- ✅ Sui CLI terinstall (
sui --version) - ✅ Sui Wallet extension terinstall di browser
- ✅ Wallet setup & punya testnet SUI (via faucet)
- ✅ Bun atau Node.js terinstall (untuk frontend)
sui-workshop-batch-3/
├── INSTALLATION.md # ⚠️ MULAI DARI SINI!
├── README.md # 📖 File ini
├── day1/ # 📘 Day 1: Counter dApp
│ └── counter/
│ ├── contract/ # Smart contract
│ │ ├── sources/
│ │ ├── tests/
│ │ └── Move.toml
│ ├── ui/ # React frontend
│ │ ├── src/
│ │ ├── .env.example
│ │ └── package.json
│ └── README.md # Tutorial lengkap
│
├── day2/ # 📗 Day 2: Coin (Fungible Token)
│ └── coin/
│ ├── contract/
│ │ ├── sources/coin.move
│ │ ├── tests/coin_tests.move
│ │ └── Move.toml
│ ├── ui/
│ │ ├── src/
│ │ ├── .env.example
│ │ └── README.md
│ └── README.md
│
└── day3/ # 📙 Day 3: NFT (Non-Fungible Token)
└── nft/
├── contract/
│ ├── sources/nft.move
│ ├── tests/nft_tests.move
│ └── Move.toml
├── ui/
│ ├── src/
│ ├── .env.example
│ └── README.md
└── README.md
# 1. Setup environment
# Baca & ikuti: INSTALLATION.md (30-60 menit)
# 2. Day 1 - Counter dApp
cd day1/counter
# Baca: README.md
# Build contract → Deploy → Build UI
# 3. Day 2 - Coin Module
cd ../../day2/coin
# Baca: README.md (contract)
# Build → Deploy → Setup UI (baca ui/README.md)
# 4. Day 3 - NFT Module
cd ../../day3/nft
# Baca: README.md (contract)
# Build → Deploy → Setup UI (baca ui/README.md)Fullstack dApp sederhana dengan:
- Smart contract untuk increment/decrement counter
- React UI untuk interact dengan contract
- Event system untuk tracking changes
- ✅ Sui Move basics (struct, functions, abilities)
- ✅ Mutable references (
&mut) - ✅ Events & error handling
- ✅ Deploy contract ke testnet
- ✅ Frontend integration dengan
@mysten/dapp-kit - ✅ Custom React hooks untuk blockchain
day1/counter/contract/sources/counter.move(61 lines)day1/counter/ui/src/App.tsxday1/counter/README.md(1095 lines - tutorial lengkap)
What You'll Build: Custom cryptocurrency dengan:
- Metadata (symbol, name, decimals, icon)
- Mint & burn functionality
- TreasuryCap untuk control supply
- UI untuk mint/burn operations
Learning Objectives:
- ✅ One-Time Witness (OTW) pattern
- ✅
coin::create_currencystandard - ✅ TreasuryCap capabilities
- ✅ Coin object model (split/merge)
Key Files:
day2/coin/contract/sources/coin.move(45 lines)day2/coin/ui/src/app/HomePage.tsx(218 lines)day2/coin/README.md(691 lines)day2/coin/ui/README.md(310 lines)
Start Here: 📖 day2/coin/README.md
What You'll Build: NFT platform dengan:
- Rich metadata (name, description, image, creator)
- Display standard untuk wallet integration
- Mint & burn functionality
- Gallery UI dengan image preview
Learning Objectives:
- ✅ Display standard implementation
- ✅ Publisher capabilities
- ✅ Unique object model
- ✅ NFT metadata best practices
- ✅ Image URL handling
Key Files:
day3/nft/contract/sources/nft.move(90 lines)day3/nft/ui/src/app/HomePage.tsx(282 lines)day3/nft/README.md(480 lines)day3/nft/ui/README.md(257 lines)
Start Here: 📖 day3/nft/README.md
- Sui Documentation: https://docs.sui.io
- Sui Move Book: https://move-book.com/
- dApp Kit: https://sdk.mystenlabs.com/dapp-kit
- TypeScript SDK: https://sdk.mystenlabs.com/typescript
- Explorer (Testnet): https://suiscan.xyz/testnet
- Faucet: https://faucet.testnet.sui.io
- Discord: https://discord.gg/sui
- Picsum Photos: https://picsum.photos
- Pinata IPFS: https://pinata.cloud
Found typo atau ada improvement ideas?
- Create issue atau PR di GitHub
Ready to start? 🚀
Happy Building on Sui! 🌊