Chain parameters
Network
Section titled “Network”| 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.
Transaction types
Section titled “Transaction types”| 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 |
Post-quantum verifier gas
Section titled “Post-quantum verifier gas”| Precompile | Address | Gas | Input size |
|---|---|---|---|
| VERIFY_MLDSA65 | 0x14 |
16,000 | 5,293 B |
| VERIFY_MLDSA44 | 0x15 |
10,500 | 3,764 B |
Both are priced at ecrecover throughput parity on validator-class hardware.
See Pricing the verifiers.
ML-DSA encoding sizes
Section titled “ML-DSA encoding sizes”| Parameter set | Public key | Signature |
|---|---|---|
| ML-DSA-44 | 1,312 B | 2,420 B |
| ML-DSA-65 | 1,952 B | 3,309 B |
Standard FIPS 204 encodings. The message is always 32 bytes.
Frame transaction limits
Section titled “Frame transaction limits”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. |
Admission budgets
Section titled “Admission budgets”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. |
Gas accounting for frame transactions
Section titled “Gas accounting for frame transactions” 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 limitsThe 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.
Account derivation
Section titled “Account derivation”| 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.
Consensus
Section titled “Consensus”| 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.
Verifying these values
Section titled “Verifying these values”Anything network-level can be checked directly against the chain:
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.