Genesis and params
Genesis bootstraps chain state, internal contracts, and initial balances.
Genesis block creation
genesis_block performs:
State initialization and internal contract setup.
Funding of configured genesis accounts (including dev/test keys when used).
Genesis treasury account creation and shielded pool seeding.
Emission of genesis transactions (create2 factory, optional shielded key).
Construction of the genesis header with initial difficulty and gas limit.
Explicit genesis issuance logic
Current native genesis target is 3,900,000,000 MAZZE.
In code, genesis accounting is two-step:
Credit explicit genesis accounts first.
Mint only the remaining amount needed to reach the configured genesis total.
This avoids double-counting between explicit allocations and the special genesis-account mint path.
Shielded pool bootstrap at genesis is a treasury transfer, not extra issuance. See ../tokenomics/shielded-pool-genesis-fund.md.
Genesis inputs
genesis_accountsandgenesis_secretscan override the account set.execute_genesiscontrols whether genesis is executed or loaded from db.
Chain parameters
Configuration exposes key consensus parameters:
initial_difficultyera_epoch_countreferee_boundadaptive_weight_beta,heavy_block_difficulty_ratiotimer_chain_block_difficulty_ratio,timer_chain_betatransaction_epoch_bound
Hardfork transitions are also configured by height/epoch.
Key source files
crates/mazzecore/core/src/genesis_block.rscrates/client/src/configuration.rscrates/mazzecore/internal_common/src/chain_id.rscrates/mazzecore/parameters/src/lib.rs
Last updated
Was this helpful?