Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 49 additions & 31 deletions docs/networks/resource-limits-fees.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,39 +11,57 @@ Resource limitations and fees only apply to smart contract transactions. Read mo

:::

| Network Setting | Value |
| --- | --- |
| Soroban txn per ledger | 100 |
| Max CPU instructions per txn | 100 million |
| Memory limit per txn | 40 MB |
| Individual ledger key size (contract storage key) | 250 bytes |
| Individual ledger entry size (including Wasm entries) | 128 KiB |
| Read/Write ledger entries per txn | 40 read; 25 write |
| Read/Write bytes per txn | 200 KB read; 129 KiB write |
| Transaction size | 129 KiB |
| Persistent entry minimal/initial lifetime | 120 days |
| Temporary entry minimal/initial lifetime | 1 day |
| Max ledger entry expiration bump | 6 months |
| Events+return value size bytes | 8 KB |
| Max write bytes per ledger | 140 KiB |
| Max txs size in bytes per ledger | 130 KiB |
| Eviction scan size | 500 KB |
### Per-transaction limits

These define the maximum amount of work a single Smart contract transaction can do.

| Network Setting | Value |
| ----------------------------------------------------- | ------------------ |
| Max CPU instructions | 100 million |
| Max memory (RAM) | 40 MB |
| Max number of keys in the footprint | 100 |
| Disk reads\* | 100 entries/200 KB |
| Disk writes | 50 entries/132 KB |
| Transaction size | 132 KB |
| Events+return value size bytes | 16 KB |
| Individual ledger key size (contract storage key) | 250 bytes |
| Individual ledger entry size (including Wasm entries) | 128 KiB |

\* Most transactions don't perform any disk reads, as only archived entries and 'classic' entries (G-accounts, trustlines) are considered to be disk reads. Live smart contract state is in-memory and is not counted towards this limit.

### TTL extension parameters

These define TTL extension parameters.

| Persistent entry TTL on creation | 120 days | | Temporary entry TTL on creation | 1 day | | Max ledger entry TTL extension | 6 months |

### Ledger-wide limits

These define the maximum amount of work done by all the transactions in a single ledger (single block).

| Network Setting | Value |
| ----------------------------------- | ------------------ |
| Max CPU instructions | 600 million |
| Max memory (RAM) | no explicit limit |
| Max number of keys in the footprint | no explicit limit |
| Disk reads | 1000 entries/7 MB |
| Disk writes | 500 entries/143 KB |
| Transactions size | 133 KB |
| Events+return value size bytes | no explicit limit |

## Resource Fees

| Network Setting | Cost (stroops) |
| :--------------------------------------------- | :------------------------ |
| 10,000 instructions | 25 (250,000/max tx) |
| Read 1 ledger entry | 6,250 (250,000/max tx) |
| Write 1 ledger entry | 10,000 (250,000/max tx) |
| Read 1KB from ledger | 1,786 (250,000/max tx) |
| 1KB of transaction size (bandwidth) | 1,624 (113,642/max tx) |
| 1KB of transaction size (history) | 16,235 (1,136,418/max tx) |
| 1KB of Events/return value | 10,000 (80,000/max tx) |
| Write 1KB to ledger | ~11,800 (826'000/max tx) |
| 30 days of rent for 1 KB of persistent storage | 0.29 XLM |
| 30 days of rent for 1 KB of temporary storage | 0.145 XLM |

Note that the write fee normally fluctuates a bit (within 100 stroops/KB). However, if the ledger grows too quickly, the write fee will grow in a linear fashion with a steep slope.

The ledger rent cost ('Write 1KB' entries in the table) is based on the write fee, rent period and some coefficient.
| 10,000 CPU instructions | 25 (250,000/max tx) |
| Read 1 ledger entry from disk | 6,250 (625,000/max tx) |
| Read 1KB from disk | 1,786 (357,200/max tx) |
| Write 1 ledger entry | 10,000 (500,000/max tx) |
| Write 1KB to disk | 3,500 (462'000/max tx) |
| 1KB of transaction size (bandwidth) | 1,624 (214,368/max tx) |
| 1KB of transaction size (history) | 16,235 (2,143,020/max tx) |
| 1KB of Events/return value | 10,000 (160,000/max tx) |
| 30 days of rent for 1 KB of persistent storage | ~427,000 |
| 30 days of rent for 1 KB of temporary storage | ~213,500 |

Note, that the rent fees provided here may go up in case if a lot of contract data is written to the ledger within a short time period. This happens because the rent fees are designed in such a way that the closer the state size to some validator-defined threshold, the more expensive it gets to write new data or extend the TTLs.