Docs
Virtual environmentsHow to

How to create a virtual network

Create a simulator network or localnet with project wallets and custom genesis configuration through Studio or the CLI

Available since: Acton 1.2

Create an isolated network for scripts and application integration tests.

Prerequisites

Create the network

Start Studio from the project root:

acton studio
  1. Open Virtual environments → Create environment.
  2. Select Simulator or Localnet and enter a name.
  3. For a simulator, keep Clean network or choose a public-network fork.
  4. Select project wallets under Startup accounts, or clear the selection for no startup wallets.
  5. Select Create environment and wait for readiness. Open the resulting environment.

Studio preselects [localnet].accounts, but initializes only the wallets submitted in the form. Each selected wallet starts with 100 GRAM.

Studio environment creation and startup account selection

Start a persistent network on port 5411:

acton simulator start --port 5411 --db-path .acton/simulator.sqlite --accounts deployer

The deployer must be a configured wallet. Omit --accounts to use [localnet].accounts, or pass --accounts "" to select none. Keep this terminal open.

In another terminal, inspect readiness:

acton simulator status --port 5411 --json

Configure defaults in Acton.toml; explicit flags override them.

Create a named network and leave it running in the background:

acton localnet start dev --port-base 19000 --accounts deployer --detach
acton localnet status dev --json

The command waits for readiness and prints endpoint URLs.

Without --detach, a newly launched service stays in the foreground and Ctrl+C would stop it.

The deployer must be a configured wallet. Omit --accounts to use [localnet].accounts, or pass --accounts "" for no project wallets.

The port range 19000–19005 must be free. Omit --port-base to let Acton choose a range.

These options apply to new networks. Resume an existing network without creation options.

Use a custom genesis

Available since: trunk

A localnet genesis defines the initial account balances and network rules. You can change validator stakes, election timing, consensus, fees, sharding, block limits, and configuration voting.

Create a separate genesis.toml file with the values you need. This example sets a network identifier and a 500 ms block target:

global_id = -42
simplex_target_rate_ms = 500

Missing fields use local development defaults. You do not need to copy the complete configuration into your file.

In Create environment, select Localnet. Open Genesis configuration before you create the network.

  • Import genesis.toml loads your file into the form.
  • The field groups let you edit individual values without a file.
  • Export genesis.toml saves the complete configuration, including defaults.
  • Reset defaults restores the local development configuration.

Studio highlights invalid values and related fields with an explanation. For example, Elections start offset must be less than Validator round duration. Correct the highlighted values before you create the network.

Pass the file when you start a new network:

acton localnet start custom --genesis genesis.toml --detach

To save the configuration without starting Docker, use acton localnet create custom --genesis genesis.toml instead.

The ACTON_LOCALNET_GENESIS environment variable can also supply the file path. An explicit --genesis path takes precedence. Acton does not automatically load genesis.toml from the project directory.

Explicit --block-time-ms and --election-time-seconds values override the corresponding genesis timing values. Acton checks the configuration before it starts Docker.

Acton saves the complete configuration with the network. Later changes to the source file do not affect that network. To use a different genesis, create a new network.

To resume a saved network, omit creation flags such as --genesis. If you set ACTON_LOCALNET_GENESIS in your shell, unset it before you resume the network.

Balances and stakes use whole GRAM. Other fields can use nanograms, seconds, milliseconds, or scaled prices. See the genesis reference for field groups, units, and constraints.

Verify and continue

  • In the Studio, confirm the environment is running and open Home.
  • From the CLI, confirm running: true for the simulator or status: "running" for localnet.

Next, connect scripts and applications using the reported URLs.

Last updated on

On this page