Usage
Arguments
| Argument | Required | Description |
|---|---|---|
project-name | Yes | Name of the new project directory |
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
-t, --template | string | evm-basic | Template to use |
--chain | string | ethereum | Chain type |
--engine | string | anvil | Node engine (anvil, hardhat, geth) |
--no-git | bool | false | Skip git repository initialization |
--dir | string | . | Target parent directory |
Description
Creates a new project directory with smart contracts, tests, deployment scripts, and adokrypt.yaml configuration file scaffolded from the selected template.
The scaffolding process:
- Validates the project name and checks that the target directory doesn’t already exist
- Loads the selected template (built-in or installed from marketplace)
- Renders all template files, replacing variables like
{{ .ProjectName }},{{ .ChainName }},{{ .ChainID }}, and{{ .Engine }} - Initializes a git repository (unless
--no-gitis set) - Displays the created files and next steps
Available Templates
| Template | Difficulty | Description |
|---|---|---|
evm-basic | Beginner | Counter + ERC-20 starter |
evm-token | Intermediate | ERC-20, vesting, staking, multisig |
evm-nft | Intermediate | ERC-721, marketplace, royalties, IPFS |
evm-dao | Advanced | Governor, timelock, treasury, voting |
evm-defi | Advanced | AMM, lending, staking, oracle |
Examples
Basic project with defaults
my-project/ with the evm-basic template, Anvil engine, and Ethereum chain.
DeFi project
NFT project with custom chain
Skip git initialization
Scaffold into a specific directory
Output Structure
The created directory structure depends on the template. Forevm-basic:
my-project
dokrypt.yaml
foundry.toml
README.md
contracts
Counter.sol
SimpleToken.sol
test
Counter.t.sol
SimpleToken.t.sol
scripts
deploy.js
Errors
| Error | Cause | Solution |
|---|---|---|
| Directory already exists | Target directory is not empty | Choose a different name or delete the existing directory |
| Template not found | Template name is invalid | Run dokrypt template list to see available templates |
| Failed to load template | Template filesystem is corrupted | Reinstall Dokrypt or the template |