For the complete documentation index, see llms.txt
Usage limits
Midnight Network includes two types of usage limits: block limits and transaction limits.
Block limits
Midnight uses a multi-dimensional cost model rather than a single byte cap per block. The following table shows the dimensions and their limits:
| Dimension | Limit per block | Description |
|---|---|---|
block_usage (broadcast bytes) | 200,000 bytes | Bytes of transaction data included in the block |
bytes_written (persistent writes) | 50,000 bytes | Net bytes written to disk permanently |
bytes_churned (temp writes) | 1,000,000 bytes | Bytes written temporarily or overwritten |
| Read time budget | 1 second | I/O read cost across all txs in the block |
| Compute time budget | 1 second | Compute cost across all txs in the block |
The Substrate layer also imposes an overall 1 MB block byte limit, with ~786 KB available for normal transactions (75% of 1 MB). Block time is 6 seconds.
Transaction limits
The maximum transaction size is 1 MiB (1,048,576 bytes). This is the serialized byte size of the entire transaction.
It's enforced during well-formedness validation. Transactions exceeding it are rejected with MalformedTransaction::TransactionTooLarge.
Both the block and transaction limits are configurable ledger parameters and can be adjusted via governance.
Per account transaction limit
There is also a per-account throttle of up to 10 MB of transaction data per day (across a rolling window of 14,400 blocks at 6s/block).