Initialize Configuration
The flow init command creates a new Flow project with a basic flow.json configuration file. This is the first step to set up any Flow project.
Basic usage
_10flow init
This command will:
- Create a new
flow.jsonconfiguration file. - Set up default networks (emulator, testnet, mainnet).
- Create an emulator service account.
- Generate a basic project structure with
cadence/directories. - Give you options for project scaffolding.
Project structure
After you run flow init, you'll have:
_10my-project/_10├── flow.json_10├── emulator-account.pkey_10└── cadence/_10 ├── contracts/_10 ├── scripts/_10 ├── transactions/_10 └── tests/
Configuration only
If you only want to generate the flow.json file, but not create the full project structure, use the --config-only flag:
_10flow init --config-only
This is useful when:
- You already have a project structure.
- You want to add Flow configuration to a current project.
- You want to set up configuration for a specific environment.
Global configuration
You can create a global flow.json file that applies to all Flow projects on your system:
_10flow init --global
Global configuration locations:
- macOS/Linux:
~/flow.json - Windows:
C:\Users\$USER\flow.json
Priority order:
- Local
flow.json(highest priority) - Global
flow.json(lowest priority)
Local configuration files will override global settings for properties that overlap.
Error handling
If a flow.json file already exists, you'll see this error:
_10❌ Command Error: configuration already exists at: flow.json
Solutions:
- Delete the current
flow.jsonfile first. - Initialize in a different directory.
- Use
--config-onlyto create a new config in a different location.
Flags
Configuration only
_10flow init --config-only
Creates only the flow.json file without project structure.
Global flags
The following global flags are also available:
_10# Log level_10flow init --log debug_10_10# Output format_10flow init --output json_10_10# Approve prompts automatically_10flow init --yes
Available log levels: debug, info, error, none
Next Steps
After you initialize the configuration:
- Review the generated
flow.json- Understand the default setup - Add your contracts - Use
flow config add contract - Create accounts - Use
flow accounts createorflow config add account - Configure deployments - Use
flow config add deployment - Start developing - Run
flow emulator start
Related Commands
flow config add- Add configuration itemsflow accounts create- Create new accountsflow project deploy- Deploy contracts