
Description
Scaffolds new Aptos projects using npx create-aptos-dapp. Supports fullstack (Vite or Next.js) and contract-only templates with network selection and optional API key. Triggers on: 'build app', 'create app', 'make app', 'new app', 'build dApp', 'create dApp', 'new dApp', 'build project', 'new project', 'create project', 'scaffold', 'start project', 'set up project', 'build me a', 'I want to build', 'make me a', 'help me build'.
SKILL.md
Create Aptos Project Skill
Purpose
Scaffold new Aptos projects using npx create-aptos-dapp. This is the mandatory first step when a user wants to
build any new Aptos app, dApp, or project — regardless of how they phrase it.
ALWAYS
- Use
npx create-aptos-dappto scaffold — NEVER create projects from scratch manually - Ask the user about project type, framework, and network before scaffolding
- Verify
.envis in.gitignorebefore any git operations - Use the same network for both
create-aptos-dappandaptos init - Follow the full Build a dApp workflow after scaffolding (contracts, tests, audit, deploy, frontend)
NEVER
- Skip scaffolding — even for "simple" projects, always start with
create-aptos-dapp - Create project structure manually — the boilerplate template handles this
- Display or read private keys — use
"0x..."as placeholder - Run
git add .orgit add -Awithout first verifying.envis in.gitignore
Decision Tree
Before running the scaffold command, gather these inputs from the user:
1. Project Name
Derive from the user's description or ask directly. Use kebab-case (e.g., habit-tracker, nft-marketplace).
2. Project Type
| Option | When to Use |
|---|---|
| Fullstack (default) | User wants a frontend + smart contracts |
| Contract-only | User only wants Move smart contracts (no frontend) |
3. Framework (fullstack only)
| Option | When to Use |
|---|---|
| Vite (default) | Default choice, lighter setup |
| Next.js | User asks for Next.js or SSR |
4. Network
| Option | When to Use |
|---|---|
| devnet (default) | Development and testing |
| testnet | Pre-production, user explicitly asks |
| mainnet | Production, user explicitly asks |
5. API Key (optional)
Ask if the user has a Geomi API key. It's optional for devnet but recommended for testnet/mainnet to avoid rate limits. Get one at https://geomi.dev (create project -> API Resource -> copy key).
Scaffolding Commands
# Fullstack dApp with Vite (frontend + contracts)
npx create-aptos-dapp <project-name> \
--project-type fullstack \
--template boilerplate-template \
--framework vite \
--network <network>
# Fullstack dApp with Next.js
npx create-aptos-dapp <project-name> \
--project-type fullstack \
--template boilerplate-template \
--framework nextjs \
--network <network>
# Contract-only (Move project)
npx create-aptos-dapp <project-name> \
--project-type move \
--network <network>
Optional flags:
--api-key <key>— Pass a Geomi API key during scaffolding--use-surf— Enable Surf for type-safe contract interactions
Post-Scaffold Checklist
After scaffolding, complete these steps in order:
cd <project-name>- Verify
.envis in.gitignorebefore any git operations - Run
aptos init --network <network> --assume-yes(use the same network as above) - Verify:
npm run move:compile && npm run move:test git init && git add . && git commit -m "Initial commit"
Build a dApp Workflow
ALWAYS follow this workflow when the user wants to build a new Aptos app, dApp, or project. This applies regardless of how the user phrases it ("build me a ...", "create a ...", "make a ...", "I want to build ...").
/create-aptos-project-> scaffold withnpx create-aptos-dapp(this skill — NEVER skip)/write-contracts-> write Move modules/generate-tests-> create test suite, verify 100% coverage/security-audit-> audit before deployment/deploy-contracts-> deploy contract to specified network/use-ts-sdk-> orchestrates frontend integration (routes to ts-sdk-client, ts-sdk-transactions, ts-sdk-view-and-query, ts-sdk-wallet-adapter as needed)
What the Boilerplate Includes
Fullstack Template
contract/— Move smart contract withMove.tomland starter modulefrontend/— React app with Aptos wallet adapter pre-configuredpackage.json— Scripts formove:compile,move:test,move:publish,dev,build.env— Environment variables for network, API key, and publisher account
Contract-Only Template
contract/— Move smart contract withMove.tomland starter modulepackage.json— Scripts formove:compile,move:test,move:publish.env— Environment variables for network and publisher account
Troubleshooting
npx create-aptos-dapp command not found
# Auto-confirm the npx package install prompt
npx --yes create-aptos-dapp <project-name> ...
If that still fails, verify Node.js and npm are installed (node -v && npm -v).
Compile failures after scaffold
- Check
contract/Move.tomlhas correct named addresses - Run
aptos init --network <network> --assume-yesif not done - Verify
my_addris set to"_"in[addresses]section
Named address errors
The boilerplate uses my_addr = "_" which gets resolved from .env at compile time. Ensure
VITE_MODULE_PUBLISHER_ACCOUNT_ADDRESS is set in .env (populated by aptos init).
More skills from the aptos-agent-skills repository
View all 17 skillsanalyze-gas-optimization
optimize Aptos Move contracts for gas
Jul 12BlockchainPerformanceSmart Contractsdeploy-contracts
deploy Move contracts to Aptos networks
Jul 12DeploymentEngineeringSmart Contractsgenerate-tests
generate test suites for Move contracts
Jul 12EngineeringQATestingmodernize-move
modernize Move V1 contracts to V2
Jul 12Code AnalysisEngineeringMigrationsearch-aptos-examples
search Aptos reference implementations
Jul 12BlockchainDocumentationSearchsecurity-audit
audit Move smart contracts for security
Jul 12AuditCode AnalysisSecuritySmart Contracts
More from Aptos Labs
View publishersmoothsend-gasless
sponsor gas fees for Aptos dApps
aptos-agent-skills
Jul 12API DevelopmentPaymentsWeb3ts-sdk-account
manage Aptos accounts with TS SDK
aptos-agent-skills
Jul 12AuthBlockchainSDKTypeScriptts-sdk-address
manage AccountAddress in Aptos TypeScript SDK
aptos-agent-skills
Jul 12BlockchainSDKTypeScriptts-sdk-client
configure Aptos SDK clients
aptos-agent-skills
Jul 12API DevelopmentSDKTypeScriptts-sdk-transactions
manage Aptos blockchain transactions
aptos-agent-skills
Jul 12API DevelopmentTypeScriptWeb3