> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sundialprotocol.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Protocol parameters

> The consensus and ledger parameters of the Sundial L2, with their meanings, design ranges and the constraints between them.

These are the parameters of the Sundial L2 protocol and ledger. For the node's own settings, see [Node configuration](https://docs.sundialprotocol.com/operators/configuration.md).

## Consensus parameters

| Parameter | Meaning |
| - | - |
| `event_wait_duration` | Wait added to the upper bound of an event-creating transaction's validity interval to give an L1 event its inclusion time |
| `maturity_duration` | Minimum time a header waits in the state queue before merging. Also the challenge period of a resolution claim. |
| `registration_duration` | Wait before a registered operator can activate |
| `required_bond` | The operator bond in ADA. Equals `fraud_prover_reward` plus `slashing_penalty`. |
| `fraud_prover_reward` | Part of a forfeited bond paid to the fraud prover |
| `slashing_penalty` | Part of a forfeited bond paid to the settlement L1's treasury |
| `inactivity_slashing_penalty` | Part of an operator's bond slashed when it is retired for inactivity |
| `shift_duration` | Length of an operator's shift |
| `max_inactivity_between_block_commitments` | Longest period without a block commitment before an operator can be struck |
| `user_events_negligence_timeout` | Longest period an operator can ignore a user event slated for its shift |
| `new_shift_inactivity_grace_period` | Grace period of a newly appointed operator |
| `max_inactivity_strikes` | Strikes after which an operator is partially slashed and retired |
| `max_validity_range_length` | Longest validity range of a scheduler advance, a state queue initialization or a block commitment |
| `max_tokens_allowed_in_deposits` | Most distinct tokens, ADA included, in a deposit |
| `escape_hatch_block_age` | Age of the last queued block beyond which the escape hatch can trigger |
| `escape_hatch_trigger_duration` | Longest validity range of a trigger transaction |
| `emergency_duration` | Length of the emergency period |
| `emergency_required_bond` | Bond that a registration must post during the emergency period |
| `emergency_grace_period` | Time after the emergency period in which reduced-bond operators can retire or top up |
| `emergency_retirement_penalty` | Part of an under-bonded operator's bond claimed by whoever retires it after the grace period |
| `da_multisig_threshold` | Quorum threshold of the certified availability backing |

### Design ranges

For a network that secures value:

| Parameter | Design range |
| - | - |
| `event_wait_duration` | 2 to 4 minutes |
| `maturity_duration` | 3 to 7 days |
| `registration_duration` | 1 day |
| `required_bond` | 50,000 to 200,000 ADA |
| `fraud_prover_reward` | 30% to 50% of `required_bond` |
| `slashing_penalty` | 50% to 70% of `required_bond` |
| `shift_duration` | 1 hour |

### Constraints

These hold in every configuration:

* `required_bond = fraud_prover_reward + slashing_penalty`.
* `emergency_required_bond` is less than `required_bond` and greater than `slashing_penalty`, so that a slashed reduced-bond operator still leaves a reward for the prover.
* `escape_hatch_block_age` exceeds `max_inactivity_between_block_commitments` plus `new_shift_inactivity_grace_period`, so that ordinary inactivity is handled by strikes before the escape hatch can open.
* `max_validity_range_length` doesn't exceed `event_wait_duration`, so that every event a block must include was already on L1 when the operator built the block.
* `maturity_duration` is above 24 hours, twice the depth at which Cardano nodes reject forks.

## Ledger parameters

| Parameter | Value | Use |
| - | - | - |
| `min_fee_a` | 44 lovelace per byte | Minimum fee. Same as Cardano's `minFeeA`. |
| `min_fee_b` | 155,381 lovelace | Minimum fee. Same as Cardano's `minFeeB`. |
| `coins_per_utxo_byte` | The settlement L1's value | Minimum UTXO value |
| Network ID | `1` when the node's network is `Mainnet`, otherwise `0` | Separates the L2 ledger from the L1 and from other instances |

The minimum fee of a transaction is `min_fee_a × size + min_fee_b`, where `size` is the byte size of its CBOR encoding.

## Networks

| Network | Settlement L1 | Network ID | Genesis funds and faucet |
| - | - | :-: | - |
| `Preprod` | Cardano Preprod testnet | 0 | Seeded from genesis wallets. The faucet can be enabled. |
| `Preview` | Cardano Preview testnet | 0 | Seeded from genesis wallets |
| `Custom` | A local or emulated L1 | 0 | Seeded from genesis wallets |
| `Mainnet` | Cardano mainnet | 1 | Not seeded. Faucet disabled. |

The reference testnet settles on Preprod.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.