Skip to main content

Example Apps

Each example below ships as a runnable repository with its own README. Clone the repository, publish the Move package to Testnet, and run the app.

If you are new to Sui, start with "Hello, World!" to install the toolchain and publish your first package, then come back here.

Move patterns

ExampleWhat it demonstratesSource
Capability patternGating privileged functions behind an AdminCap instead of hardcoded address checks.sui-move-bootcamp/C1
Derived objectsPredicting an object ID before creation, and looking up objects by key without an indexer.sui-move-bootcamp/C5
Scenario testingMulti-transaction Move tests with test_scenario, including access control and transaction effects.sui-move-bootcamp/G1

Frontend apps

ExampleWhat it demonstratesSource
dApp Kit starterWallet connection, network switching, and owned-object queries in a React app.sui-move-bootcamp/E2
NFT minting appA shared registry Move package plus a frontend that mints through a programmable transaction block.sui-move-bootcamp/F1
PlinkoOnchain randomness in a house-managed game, with sponsored transactions and a payout table.plinko-poc

Data and indexing

ExampleWhat it demonstratesSource
Real-time event indexerA gRPC checkpoint subscription that decodes BCS event data into structured TypeScript fields.sui-move-bootcamp/K1

To add an indexer to your own service rather than run this one, see the custom indexer guide.

Capture the flag challenges

The CTF repository holds capture-the-flag challenges. Each one deploys a deliberately vulnerable contract to Testnet and asks you to exploit it.

ChallengeWhat it teaches
LootboxWhy functions that consume sui::random must be entry rather than public.
Merchant using USDCPassing exact Coin<T> amounts to Move functions with splitCoins.
Staking with time-accumulationHow time-based access control breaks when the client controls accumulation.