Host Flow
Run the builder-scaffold flow on your host machine, targeting testnet or a local Sui network. The same steps work for any extension example (smart_gate_extension, storage_unit_extension, or your own); this guide uses smart_gate_extension for the publish and scripts steps.
Tip
Prefer Docker? See Docker Flow to run the full flow inside a container with no host tooling required.
1. Prerequisites
- Sui CLI, Node.js, and pnpm installed on your host —
suiupis recommended to manage Sui CLI versions - For testnet: funded accounts (e.g. from Sui testnet faucet)
- For local: a running Sui local node (see below)
Starting a Local Node
This starts a local Sui node on port 9000 with a faucet on port 9123.
2. Clone the Repo
If you haven’t already:
3. Choose Your Network
Testnet — no extra setup, just set your CLI to the right environment:
Localnet — you need a local Sui node running on port 9000:
4. Deploy World and Create Test Resources
Note
These manual steps will be simplified into a single setup command in a future release. See setup-world/readme.md for details.
From your workspace directory (parent of builder-scaffold), clone world-contracts as a sibling and deploy:
Edit .env with your keys and addresses:
Then deploy:
5. Copy World Artifacts into Builder Scaffold
6. Configure .env
Set the following in .env:
- Same keys/addresses as
world-contracts SUI_NETWORK=testnet(orlocalnet)WORLD_PACKAGE_ID— fromdeployments/<network>/extracted-object-ids.json(world.packageId)
7. Publish a Custom Contract
Pick an example (e.g. smart_gate_extension or storage_unit_extension); use its folder in move-contracts/:
Testnet — publish directly:
Localnet — use ephemeral publication:
Set BUILDER_PACKAGE_ID and EXTENSION_CONFIG_ID in .env from the publish output.
For more details see the Move Contracts page.
8. Run Scripts
For the smart_gate_extension example (scripts are in the repo root):
Directory Layout
After completing all steps, your workspace should look like: