Tunable network parameters — the actual config values at runtime.

interface NetworkParameters {
    additionalFee: number;
    additionalFeeBurnPct: number;
    additionalFeeTreasuryPct: number;
    blockTimeMs: number;
    featureFlags: Record<string, boolean>;
    minValidatorStake: string;
    networkFee: number;
    networkFeeBurnPct: number;
    networkFeeTreasuryPct: number;
    rpcFee: number;
    shardSize: number;
    specialOpsBurnPct: number;
    specialOpsRpcPct: number;
    specialOpsTreasuryPct: number;
}

Properties

additionalFee: number

Default additional fee — reserved for the future dApp-paid fee path described in DEM-665. Today every chain ships with additionalFee: 0. Basis-points bounds match the other fee scalars: [0, 5000].

additionalFeeBurnPct: number
additionalFeeTreasuryPct: number
blockTimeMs: number

Target block time in ms. (Phase 2 — consensus-affecting)

featureFlags: Record<string, boolean>

Feature flags — string key → boolean.

minValidatorStake: string

Minimum DEMOS to become a validator. bigint-as-string.

networkFee: number

Default network fee, basis points [0, 5000].

networkFeeBurnPct: number

Per-component fee distribution percentages. DEM-665 splits the single lump-sum gas deduction into network / rpc / additional fee components, each routed across burn / treasury / rpc-operator recipients per these tunable percentages.

Cross-key invariant enforced by safetyBounds.ts: within each group the percentages MUST sum to exactly 100.

network_fee: burnPct + treasuryPct === 100 additional_fee: burnPct + treasuryPct === 100 special_ops: burnPct + treasuryPct + rpcPct === 100

rpc_fee itself is implicit 100% to the rpc operator — no tunables here, no entry on this struct. Proposals touching any distribution key are governed by a tighter ±10% per-proposal cap (vs the default ±50%) so a single bad actor cannot drain the treasury in one vote.

networkFeeTreasuryPct: number
rpcFee: number

Default RPC fee, basis points [0, 5000].

shardSize: number

Default shard size for consensus. (Phase 2 — consensus-affecting)

specialOpsBurnPct: number
specialOpsRpcPct: number
specialOpsTreasuryPct: number