Skip to main content

Configuration

Basalt nodes are configured exclusively through environment variables. No configuration file is required.

Environment Variables

VariableDescriptionDefault
BASALT_MODENode mode: standalone, validator, or rpcstandalone
BASALT_SYNC_SOURCEHTTP URL of the validator to sync from (RPC mode)--
BASALT_VALIDATOR_INDEXValidator index in the active set (-1 for standalone)-1
BASALT_VALIDATOR_ADDRESSValidator address in hex format--
BASALT_VALIDATOR_KEYEd25519 private key in hex format--
BASALT_PEERSComma-separated list of peer addresses (host:port)--
BASALT_NETWORKNetwork name identifiermainnet
BASALT_CHAIN_IDNumeric chain identifier1
HTTP_PORTREST API listen port5000
P2P_PORTP2P listen port30303
BASALT_DATA_DIRDirectory for RocksDB data storage./data
tip

For local development, the defaults are sufficient. Simply run the node without setting any variables to start in standalone mode.

Chain Configurations

Basalt defines three standard network profiles. Each network shares the same block time and transaction limits but differs in validator set size, staking requirements, and epoch length.

Block and Transaction Parameters

ParameterMainnetTestnetDevnet
Chain ID1231337
Block Time2s2s2s
Max Block Size2 MB2 MB2 MB
Max Transactions Per Block10,00010,00010,000
Max Transaction Data128 KB128 KB128 KB

Validator and Epoch Parameters

ParameterMainnetTestnetDevnet
Validator Set Size64324
Minimum Validator Stake100,000 BSLT10,000 BSLT1,000 BSLT
Epoch Length1,000 blocks500 blocks100 blocks
Unbonding Period~21 days~5 days--

Notes

  • Chain ID must match between the node configuration and transaction signatures. Transactions signed with a mismatched chain ID are rejected.
  • Unbonding period on devnet is disabled to allow rapid iteration.
  • Validator set size defines the maximum number of validators that can be active in a single epoch. Additional stakers are queued until the next epoch boundary.