Skip to content

Chain parameters

Parameter Value
Network Frost
Chain ID 8141 ({NETWORK.chainIdHex})
RPC {NETWORK.rpcUrl}
Explorer {NETWORK.explorerUrl}
Faucet {NETWORK.faucetUrl}
Currency Frost Ether (ETH), 18 decimals
Block time 1 second
Block gas limit 60,000,000
Priority fee Always 0 — the chain is fee-blind

Frost activates every Ethereum fork at genesis, up to and including Osaka. There is no historical fork schedule to reason about: from block 0, the EVM is at its current feature level, with shanghaiTime, cancunTime, pragueTime and osakaTime all zero.

One Frost-native fork exists, also active from genesis:

Fork Activation Effect
Frost genesis Witness segregation — activates the strippedTransactionsRoot header field.

The practical consequence is that all Osaka-level opcodes and precompiles are available, including the BLS12-381 set and P256VERIFY. See Precompiled contracts.

Type Name Status
0x00 Legacy Supported
0x01 EIP-2930 access list Supported
0x02 EIP-1559 Supported
0x03 EIP-4844 blob Supported
{FRAME_TX_TYPE} EIP-8141 frame transaction Frost’s post-quantum path

See Transaction type 0x06.

Precompile Address Gas Input size
VERIFY_MLDSA65 0x14 16,0005,293 B
VERIFY_MLDSA44 0x15 10,5003,764 B

Both are priced at ecrecover throughput parity on validator-class hardware. See Pricing the verifiers.

Parameter set Public key Signature
ML-DSA-44 1,312 B2,420 B
ML-DSA-65 1,952 B3,309 B

Standard FIPS 204 encodings. The message is always 32 bytes.

Also consensus-critical — these are enforced on the block-processing path, not merely at admission.

Parameter Value Meaning
MAX_FRAMES 64 Maximum frames per transaction.
MAX_SIGNATURES 128 Maximum signature entries per transaction.
MAX_ARBITRARY_MSG_SIGNATURE_SIZE 4,096 B Per-entry cap on non-elidable (permanent) witnesses.
MAX_ELIDABLE_SIGNATURE_SIZE 16,384 B Per-entry cap on the elidable witness channel.
MAX_ELIDABLE_TOTAL_SIZE 16,384 B Per-transaction cap on elidable witnesses.
FRAME_TX_PERMANENT_SIG_BYTE_GAS 40 Surcharge per permanent witness byte, on top of EIP-7623 calldata gas.

These are not consensus rules. They bound work at the submission gate, and a node running a different value disagrees about what to accept into a mempool, never about what a block means.

Parameter Value Meaning
MAX_VERIFY_GAS 100,000 Gas budget for the VERIFY-frame prefix during validation simulation.
15,000 intrinsic
+ 475 × frame count
+ calldata gas EIP-7623, including signature bytes
+ per-signature verification 2,800 secp256k1 · 6,700 P256 · 0 ARBITRARY
+ permanent-witness surcharge 40 per byte, non-elidable witnesses only
+ Σ frame gas limits

The transaction-level gas_limit is a signed field: it is covered by the sig-hash, validity requires it to be at least the computed total, the payer is charged it up front, and unused gas is refunded.

Parameter Value
CREATE2 factory {ACCOUNTS.factory}
Salt domain {ACCOUNTS.saltDomain}
Code ID — fixed ML-DSA-44 {ACCOUNTS.codeIds.fixedMldsa44}
Code ID — fixed ML-DSA-65 {ACCOUNTS.codeIds.fixedMldsa65}
Code ID — rotatable v2 {ACCOUNTS.codeIds.rotatableV2}
Nonce after materialising (v2) 3
salt = keccak256("{ACCOUNTS.saltDomain}" ‖ ACCOUNT_CODE_ID ‖ uint64_le(index))
address = keccak256(0xff ‖ factory ‖ salt ‖ keccak256(initcode))[12:]

See Account contracts.

Parameter Value
Protocol Mysticeti V2 (DAG-based BFT)
Block signature scheme FN-DSA-512 (rotating, scheme-tagged block keys)
Checkpoint root schemes ML-DSA-65 and SLH-DSA-SHA2-192s — both must verify
Transport key exchange X25519MLKEM768, offered as the only group
Transport identity ML-DSA-65 raw public keys (RFC 7250)

See Consensus and blocks and Two-tier consensus keys.

Anything network-level can be checked directly against the chain:

Terminal window
curl -s https://rpc.frostfi.net -H 'content-type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
curl -s https://rpc.frostfi.net -H 'content-type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"eth_maxPriorityFeePerGas","params":[]}'

The consensus-critical constants on this page are checked in CI against the chain definition, so a value that drifts fails the documentation build rather than quietly misleading you.