Example Apps
Explore examples that demonstrate common Sui development patterns. Each example includes source code, setup instructions, key code highlights, and troubleshooting guidance.
Capability Pattern
Control access to privileged operations in Move using capability objects that you can delegate, revoke, and compose.
Sui dApp Kit Frontend
Build a React frontend that connects a wallet, mints an NFT through a Move contract, queries owned objects, and refreshes the UI automatically using Sui dApp Kit and React Query.
Derived Objects
Create deterministic Sui objects whose IDs you can predict offchain before the objects exist, using four derivation strategies in Move and the TypeScript SDK.
Real-Time Event Indexer
Build a real-time event indexer that subscribes to Sui checkpoints through gRPC, filters for specific Move events, and decodes BCS-encoded event data in TypeScript.
NFT Minting App
Build an end-to-end app with a Hero NFT Move contract and a React frontend that mints heroes, equips weapons, and queries onchain state.
Lootbox
Exploit a public randomness function in a lootbox contract by deploying a wrapper module that aborts losing transactions, so you only pay when you win.
Merchant Using USDC
Buy a flag from a Move merchant contract by acquiring Testnet USDC and building a transaction that pays the exact amount required.
Plinko
Build a provably fair, gasless Plinko game on Sui using onchain randomness and sponsored transactions through Enoki.
Scenario Testing
Write multi-transaction tests for Move smart contracts using test_scenario to simulate real-world flows with multiple users, shared objects, and cross-module interactions.
Staking with Time-Accumulation
Analyze a staking contract with a time-accumulation vulnerability and exploit the receipt merging logic to claim the flag without waiting a full week.