🏗 Scaffold-Move
🧪 An open-source, up-to-date toolkit for building decentralized applications (dapps) with Aptos Move. It's designed to make it easier for developers to create and deploy Move modules and build user interfaces that interact with those modules.
⚙️ Built using NextJS, Tailwind and Typescript.
- ✅ Module Hot Reload: Your frontend auto-adapts to your Move modules as you edit it.
- 🪝 Custom hooks: Collection of React hooks to simplify interactions with Move modules .
- 🧱 Components: Collection of common web3 components to quickly build your frontend.
- 🔐 Integration with Wallet Providers: Connect your Petra Wallet and interact with the Aptos.
Requirements
Before you begin, you need to install the following tools:
- Node (>= v18.17)
- Yarn (v1 or v2+)
- Git
Quickstart
To get started with Scaffold-Move, follow the steps below:
- Clone this repo & install dependencies
git clone https://github.com/arjanjohan/scaffold-move.git
cd scaffold-move
yarn install
Run a local network in the first terminal:
If you use Aptos devnet or testnet, you can skip this step.
- On a second terminal, initialize a new account.
yarn account
This command overwrites packages/move/.aptos/config.yaml
with a new Aptos account. The new address is copied over to the first address in the Move.toml file. If no address exists in this file, it is added on a new line.
- Deploy the test modules:
yarn deploy
This command deploys the move modules to the selected network. The modules are located in packages/move/sources
and can be modified to suit your needs. The yarn deploy
command uses movement aptos move publish
to publish the modules to the network. After this is executes the script located in scripts/loadContracts.js
to make the new modules available in the nextjs frontend.
- On a third terminal, start your NextJS app:
yarn start
Visit your app on: http://localhost:3000
. You can interact with your Move modules using the Debug Modules
page. You can tweak the app config in packages/nextjs/scaffold.config.ts
.
Next steps
I have built the most essential and useful features, so that developers can start using Scaffold Move right away. However, there are more features that I want to add to this project after the hackathon. If you have any ideas or suggestions, please reach out to me.
To-do's:
- Debug page
- Styling Resources tab
- Fix Vercel bug with Resources tab (Resources only showing on local for now)
- Group modules under address
- Fix colors for dark mode
- Ensure export default deployedModules satisfies GenericContractsDeclaration
- Add block explorer page