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

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://docs.ton.org/feedback

```json
{
  "path": "/foundations/limits",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# Blockchain limits

export const Aside = ({type = "note", title = "", icon = "", iconType = "regular", children}) => {
  const asideVariants = ["note", "tip", "caution", "danger"];
  const asideComponents = {
    note: {
      outerStyle: "border-sky-500/20 bg-sky-50/50 dark:border-sky-500/30 dark:bg-sky-500/10",
      innerStyle: "text-sky-900 dark:text-sky-200",
      calloutType: "note",
      icon: <svg width="14" height="14" viewBox="0 0 14 14" fill="currentColor" xmlns="http://www.w3.org/2000/svg" className="w-4 h-4 text-sky-500" aria-label="Note">
          <path fill-rule="evenodd" clip-rule="evenodd" d="M7 1.3C10.14 1.3 12.7 3.86 12.7 7C12.7 10.14 10.14 12.7 7 12.7C5.48908 12.6974 4.0408 12.096 2.97241 11.0276C1.90403 9.9592 1.30264 8.51092 1.3 7C1.3 3.86 3.86 1.3 7 1.3ZM7 0C3.14 0 0 3.14 0 7C0 10.86 3.14 14 7 14C10.86 14 14 10.86 14 7C14 3.14 10.86 0 7 0ZM8 3H6V8H8V3ZM8 9H6V11H8V9Z"></path>
        </svg>
    },
    tip: {
      outerStyle: "border-emerald-500/20 bg-emerald-50/50 dark:border-emerald-500/30 dark:bg-emerald-500/10",
      innerStyle: "text-emerald-900 dark:text-emerald-200",
      calloutType: "tip",
      icon: <svg width="11" height="14" viewBox="0 0 11 14" fill="currentColor" xmlns="http://www.w3.org/2000/svg" className="text-emerald-600 dark:text-emerald-400/80 w-3.5 h-auto" aria-label="Tip">
          <path d="M3.12794 12.4232C3.12794 12.5954 3.1776 12.7634 3.27244 12.907L3.74114 13.6095C3.88471 13.8248 4.21067 14 4.46964 14H6.15606C6.41415 14 6.74017 13.825 6.88373 13.6095L7.3508 12.9073C7.43114 12.7859 7.49705 12.569 7.49705 12.4232L7.50055 11.3513H3.12521L3.12794 12.4232ZM5.31288 0C2.52414 0.00875889 0.5 2.26889 0.5 4.78826C0.5 6.00188 0.949566 7.10829 1.69119 7.95492C2.14321 8.47011 2.84901 9.54727 3.11919 10.4557C3.12005 10.4625 3.12175 10.4698 3.12261 10.4771H7.50342C7.50427 10.4698 7.50598 10.463 7.50684 10.4557C7.77688 9.54727 8.48281 8.47011 8.93484 7.95492C9.67728 7.13181 10.1258 6.02703 10.1258 4.78826C10.1258 2.15486 7.9709 0.000106649 5.31288 0ZM7.94902 7.11267C7.52078 7.60079 6.99082 8.37878 6.6077 9.18794H4.02051C3.63739 8.37878 3.10743 7.60079 2.67947 7.11294C2.11997 6.47551 1.8126 5.63599 1.8126 4.78826C1.8126 3.09829 3.12794 1.31944 5.28827 1.3126C7.2435 1.3126 8.81315 2.88226 8.81315 4.78826C8.81315 5.63599 8.50688 6.47551 7.94902 7.11267ZM4.87534 2.18767C3.66939 2.18767 2.68767 3.16939 2.68767 4.37534C2.68767 4.61719 2.88336 4.81288 3.12521 4.81288C3.36705 4.81288 3.56274 4.61599 3.56274 4.37534C3.56274 3.6515 4.1515 3.06274 4.87534 3.06274C5.11719 3.06274 5.31288 2.86727 5.31288 2.62548C5.31288 2.38369 5.11599 2.18767 4.87534 2.18767Z"></path>
        </svg>
    },
    caution: {
      outerStyle: "border-amber-500/20 bg-amber-50/50 dark:border-amber-500/30 dark:bg-amber-500/10",
      innerStyle: "text-amber-900 dark:text-amber-200",
      calloutType: "warning",
      icon: <svg className="flex-none w-5 h-5 text-amber-400 dark:text-amber-300/80" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-label="Warning">
          <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path>
        </svg>
    },
    danger: {
      outerStyle: "border-red-500/20 bg-red-50/50 dark:border-red-500/30 dark:bg-red-500/10",
      innerStyle: "text-red-900 dark:text-red-200",
      calloutType: "danger",
      icon: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor" className="text-red-600 dark:text-red-400/80 w-4 h-4" aria-label="Danger">
          <path d="M17.1 292c-12.9-22.3-12.9-49.7 0-72L105.4 67.1c12.9-22.3 36.6-36 62.4-36l176.6 0c25.7 0 49.5 13.7 62.4 36L494.9 220c12.9 22.3 12.9 49.7 0 72L406.6 444.9c-12.9 22.3-36.6 36-62.4 36l-176.6 0c-25.7 0-49.5-13.7-62.4-36L17.1 292zm41.6-48c-4.3 7.4-4.3 16.6 0 24l88.3 152.9c4.3 7.4 12.2 12 20.8 12l176.6 0c8.6 0 16.5-4.6 20.8-12L453.4 268c4.3-7.4 4.3-16.6 0-24L365.1 91.1c-4.3-7.4-12.2-12-20.8-12l-176.6 0c-8.6 0-16.5 4.6-20.8 12L58.6 244zM256 128c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"></path>
        </svg>
    }
  };
  let variant = type;
  let gotInvalidVariant = false;
  if (!asideVariants.includes(type)) {
    gotInvalidVariant = true;
    variant = "danger";
  }
  const iconVariants = ["regular", "solid", "light", "thin", "sharp-solid", "duotone", "brands"];
  if (!iconVariants.includes(iconType)) {
    iconType = "regular";
  }
  return <>
      <div className={`callout my-4 px-5 py-4 overflow-hidden rounded-2xl flex gap-3 border ${asideComponents[variant].outerStyle}`} data-callout-type={asideComponents[variant].calloutType}>
        <div className="mt-0.5 w-4" data-component-part="callout-icon">
          {}
          {icon === "" ? asideComponents[variant].icon : <Icon icon={icon} iconType={iconType} size={14} />}
        </div>
        <div className={`text-sm prose min-w-0 w-full ${asideComponents[variant].innerStyle}`} data-component-part="callout-content">
          {gotInvalidVariant ? <p>
              <span className="font-bold">
                Invalid <code>type</code> passed!
              </span>
              <br />
              <span className="font-bold">Received: </span>
              {type}
              <br />
              <span className="font-bold">Expected one of: </span>
              {asideVariants.join(", ")}
            </p> : <>
              {title && <p className="font-bold">{title}</p>}
              {children}
            </>}
        </div>
      </div>
    </>;
};

This document contains the current limits and configuration parameters used in the TON blockchain.

There are two sources of network parameter definitions: <br />

1. Blockchain config
2. Node source code

<Aside>
  You can check all the blockchain parameters live in the explorers: [Tonviewer](https://tonviewer.com/config) or [Tonscan](https://tonscan.org/config).

  Parameters defined in the code can be found in the [source code repository](https://github.com/ton-blockchain/ton).
</Aside>

## Message and transaction limits

| Name                       | Description                                                | Value    | Units  | Type   | Defined in                                                                                                                             |
| -------------------------- | ---------------------------------------------------------- | -------- | ------ | ------ | -------------------------------------------------------------------------------------------------------------------------------------- |
| `max_size`                 | Maximum external message size in bytes                     | 65535    | bytes  | uint32 | [`mc-config.h`:392](https://github.com/ton-blockchain/ton/blob/05bea13375448a401d8e07c6132b7f709f5e3a32/crypto/block/mc-config.h#L392) |
| `max_depth`                | Maximum external message depth                             | 512      | levels | uint16 | [`mc-config.h`:393](https://github.com/ton-blockchain/ton/blob/05bea13375448a401d8e07c6132b7f709f5e3a32/crypto/block/mc-config.h#L393) |
| `max_msg_bits`             | Maximum message size in bits                               | 2097152  | bits   | uint32 | [`mc-config.h`:395](https://github.com/ton-blockchain/ton/blob/05bea13375448a401d8e07c6132b7f709f5e3a32/crypto/block/mc-config.h#L395) |
| `max_msg_cells`            | Maximum number of cells a message can occupy               | 8192     | cells  | uint32 | [`mc-config.h`:396](https://github.com/ton-blockchain/ton/blob/05bea13375448a401d8e07c6132b7f709f5e3a32/crypto/block/mc-config.h#L396) |
| `max_vm_data_depth`        | Maximum cell depth in messages and `c4` and `c5` registers | 512      | levels | uint16 | [`mc-config.h`:398](https://github.com/ton-blockchain/ton/blob/05bea13375448a401d8e07c6132b7f709f5e3a32/crypto/block/mc-config.h#L398) |
| `max_actions`              | Maximum number of actions                                  | 256      | count  | uint32 | [`transaction.h`](https://github.com/ton-blockchain/ton/blob/05bea13375448a401d8e07c6132b7f709f5e3a32/crypto/block/transaction.h)      |
| `max_library_cells`        | Maximum number of library cells                            | 1000     | cells  | uint32 | [`mc-config.h`:397](https://github.com/ton-blockchain/ton/blob/05bea13375448a401d8e07c6132b7f709f5e3a32/crypto/block/mc-config.h#L397) |
| `max_acc_state_cells`      | Maximum number of cells that an account state can occupy   | 65536    | cells  | uint32 | [`mc-config.h`:400](https://github.com/ton-blockchain/ton/blob/05bea13375448a401d8e07c6132b7f709f5e3a32/crypto/block/mc-config.h#L400) |
| `max_acc_state_bits`       | Maximum account state size in bits                         | 67043328 | bits   | uint32 | [`mc-config.h`:401](https://github.com/ton-blockchain/ton/blob/05bea13375448a401d8e07c6132b7f709f5e3a32/crypto/block/mc-config.h#L401) |
| `max_acc_public_libraries` | Maximum number of public libraries per account             | 256      | count  | uint32 | [`mc-config.h`:402](https://github.com/ton-blockchain/ton/blob/05bea13375448a401d8e07c6132b7f709f5e3a32/crypto/block/mc-config.h#L402) |

## Gas and fee parameters

| Name                | Description                                                             | Value    | Units         | Type        | Defined in                                                                                                          |
| ------------------- | ----------------------------------------------------------------------- | -------- | ------------- | ----------- | ------------------------------------------------------------------------------------------------------------------- |
| `free_stack_depth`  | Stack depth without gas consumption                                     | 32       | stack entries | enum\_value | [vm.h:120](https://github.com/ton-blockchain/ton/blob/05bea13375448a401d8e07c6132b7f709f5e3a32/crypto/vm/vm.h#L120) |
| `runvm_gas_price`   | VM start gas consumption                                                | 40       | gas units     | enum\_value | [vm.h:122](https://github.com/ton-blockchain/ton/blob/05bea13375448a401d8e07c6132b7f709f5e3a32/crypto/vm/vm.h#L122) |
| `flat_gas_limit`    | Gas below `flat_gas_limit` is provided at the price of `flat_gas_price` | 100      | gas units     | uint64      | [config21](/foundations/config#param-20-and-21)                                                                     |
| `flat_gas_price`    | Costs of launching the TON Virtual Machine                              | 40000    | nanotons      | uint64      | [config21](/foundations/config#param-20-and-21)                                                                     |
| `gas_price`         | Price of gas in the network in nanotons per 65536 gas units             | 26214400 | nanotons      | uint64      | [config21](/foundations/config#param-20-and-21)                                                                     |
| `special_gas_limit` | Limit on gas for special (system) contract transactions                 | 1000000  | gas units     | uint64      | [config21](/foundations/config#param-20-and-21)                                                                     |
| `gas_limit`         | Maximum amount of gas per transaction                                   | 1000000  | gas units     | uint64      | [config21](/foundations/config#param-20-and-21)                                                                     |
| `gas_credit`        | Gas credit for checking external messages                               | 10000    | gas units     | uint64      | [config21](/foundations/config#param-20-and-21)                                                                     |
| `block_gas_limit`   | Maximum gas per block                                                   | 10000000 | gas units     | uint64      | [config21](/foundations/config#param-20-and-21)                                                                     |

## Storage fees and limits

| Name               | Description                                   | Value      | Units         | Type   | Defined in                                      |
| ------------------ | --------------------------------------------- | ---------- | ------------- | ------ | ----------------------------------------------- |
| `freeze_due_limit` | Storage fees (nanotons) for contract freezing | 100000000  | nanotons      | uint64 | [config21](/foundations/config#param-20-and-21) |
| `delete_due_limit` | Storage fees (nanotons) for contract deletion | 1000000000 | nanotons      | uint64 | [config21](/foundations/config#param-20-and-21) |
| `bit_price_ps`     | Storage price for one bit for 65536 seconds   | 1          | nanotons/bit  | uint64 | [config18](/foundations/config#param-18)        |
| `cell_price_ps`    | Storage price for one cell for 65536 seconds  | 500        | nanotons/cell | uint64 | [config18](/foundations/config#param-18)        |

## Block size limits

| Name                  | Description                                  | Value    | Units     | Type   | Defined in                                      |
| --------------------- | -------------------------------------------- | -------- | --------- | ------ | ----------------------------------------------- |
| `bytes_underload`     | Block size limit for underload state         | 131072   | bytes     | uint32 | [config23](/foundations/config#param-22-and-23) |
| `bytes_soft_limit`    | Block size soft limit                        | 524288   | bytes     | uint32 | [config23](/foundations/config#param-22-and-23) |
| `bytes_hard_limit`    | Absolute maximum block size in bytes         | 1048576  | bytes     | uint32 | [config23](/foundations/config#param-22-and-23) |
| `gas_underload`       | Block gas limit for underload state          | 2000000  | gas units | uint32 | [config23](/foundations/config#param-22-and-23) |
| `gas_soft_limit`      | Block gas soft limit                         | 10000000 | gas units | uint32 | [config23](/foundations/config#param-22-and-23) |
| `gas_hard_limit`      | Absolute maximum block gas                   | 20000000 | gas units | uint32 | [config23](/foundations/config#param-22-and-23) |
| `lt_delta_underload`  | Logical time delta limit for underload state | 1000     | lt units  | uint32 | [config23](/foundations/config#param-22-and-23) |
| `lt_delta_soft_limit` | Logical time delta soft limit                | 5000     | lt units  | uint32 | [config23](/foundations/config#param-22-and-23) |
| `lt_delta_hard_limit` | Absolute maximum logical time delta          | 10000    | lt units  | uint32 | [config23](/foundations/config#param-22-and-23) |

## Message forwarding costs

| Name         | Description                                          | Value      | Units         | Type   | Defined in                                      |
| ------------ | ---------------------------------------------------- | ---------- | ------------- | ------ | ----------------------------------------------- |
| `lump_price` | Base price for message forwarding                    | 400000     | nanotons      | uint64 | [config25](/foundations/config#param-24-and-25) |
| `bit_price`  | Cost per 65536 bits of message forwarding            | 26214400   | nanotons/bit  | uint64 | [config25](/foundations/config#param-24-and-25) |
| `cell_price` | Cost per 65536 cells for message forwarding          | 2621440000 | nanotons/cell | uint64 | [config25](/foundations/config#param-24-and-25) |
| `ihr_factor` | Factor for immediate hypercube routing cost          | 98304      | factor        | uint32 | [config25](/foundations/config#param-24-and-25) |
| `first_frac` | Fraction for first transition in message route       | 21845      | fraction      | uint32 | [config25](/foundations/config#param-24-and-25) |
| `next_frac`  | Fraction for subsequent transitions in message route | 21845      | fraction      | uint32 | [config25](/foundations/config#param-24-and-25) |

## Masterchain specific parameters

| Name                     | Description                                     | Value       | Units         | Type   | Defined in                                      |
| ------------------------ | ----------------------------------------------- | ----------- | ------------- | ------ | ----------------------------------------------- |
| `mc_bit_price_ps`        | Storage price for one bit for 65536 seconds     | 1000        | nanotons/bit  | uint64 | [config18](/foundations/config#param-18)        |
| `mc_cell_price_ps`       | Storage price for one cell for 65536 seconds    | 500000      | nanotons/cell | uint64 | [config18](/foundations/config#param-18)        |
| `mc_flat_gas_limit`      | Gas below `flat_gas_limit` on masterchain       | 100         | gas units     | uint64 | [config20](/foundations/config#param-20-and-21) |
| `mc_flat_gas_price`      | VM launch cost on masterchain                   | 1000000     | nanotons      | uint64 | [config20](/foundations/config#param-20-and-21) |
| `mc_gas_price`           | Gas price on masterchain                        | 655360000   | nanotons      | uint64 | [config20](/foundations/config#param-20-and-21) |
| `mc_special_gas_limit`   | Special contract gas limit on masterchain       | 70000000    | gas units     | uint64 | [config20](/foundations/config#param-20-and-21) |
| `mc_gas_limit`           | Maximum gas per transaction on masterchain      | 1000000     | gas units     | uint64 | [config20](/foundations/config#param-20-and-21) |
| `mc_gas_credit`          | Gas credit for checking external messages       | 10000       | gas units     | uint64 | [config20](/foundations/config#param-20-and-21) |
| `mc_block_gas_limit`     | Maximum gas per masterchain block               | 2500000     | gas units     | uint64 | [config20](/foundations/config#param-20-and-21) |
| `mc_freeze_due_limit`    | Storage fees for contract freezing              | 100000000   | nanotons      | uint64 | [config20](/foundations/config#param-20-and-21) |
| `mc_delete_due_limit`    | Storage fees for contract deletion              | 1000000000  | nanotons      | uint64 | [config20](/foundations/config#param-20-and-21) |
| `mc_bytes_underload`     | Block size limit for underload state            | 131072      | bytes         | uint32 | [config22](/foundations/config#param-22-and-23) |
| `mc_bytes_soft_limit`    | Block size soft limit                           | 524288      | bytes         | uint32 | [config22](/foundations/config#param-22-and-23) |
| `mc_bytes_hard_limit`    | Absolute maximum block size in bytes            | 1048576     | bytes         | uint32 | [config22](/foundations/config#param-22-and-23) |
| `mc_gas_underload`       | Block gas limit for underload state             | 200000      | gas units     | uint32 | [config22](/foundations/config#param-22-and-23) |
| `mc_gas_soft_limit`      | Block gas soft limit                            | 1000000     | gas units     | uint32 | [config22](/foundations/config#param-22-and-23) |
| `mc_gas_hard_limit`      | Absolute maximum block gas                      | 2500000     | gas units     | uint32 | [config22](/foundations/config#param-22-and-23) |
| `mc_lump_price`          | Base price for message forwarding               | 10000000    | nanotons      | uint64 | [config24](/foundations/config#param-24-and-25) |
| `mc_bit_price`           | Cost per 65536 bits of message forwarding       | 655360000   | nanotons/bit  | uint64 | [config24](/foundations/config#param-24-and-25) |
| `mc_cell_price`          | Cost per 65536 cells for message forwarding     | 65536000000 | nanotons/cell | uint64 | [config24](/foundations/config#param-24-and-25) |
| `mc_ihr_factor`          | Factor for immediate hypercube routing cost     | 98304       | factor        | uint32 | [config24](/foundations/config#param-24-and-25) |
| `mc_first_frac`          | Fraction for first transition in message route  | 21845       | fraction      | uint32 | [config24](/foundations/config#param-24-and-25) |
| `mc_next_frac`           | Fraction for subsequent transitions in route    | 21845       | fraction      | uint32 | [config24](/foundations/config#param-24-and-25) |
| `mc_lt_delta_underload`  | Logical time delta limit for underload state    | 1000        | lt units      | uint32 | [config22](/foundations/config#param-22-and-23) |
| `mc_lt_delta_soft_limit` | Logical time delta soft limit                   | 5000        | lt units      | uint32 | [config22](/foundations/config#param-22-and-23) |
| `mc_lt_delta_hard_limit` | Absolute maximum logical time delta             | 10000       | lt units      | uint32 | [config22](/foundations/config#param-22-and-23) |
| `mc_catchain_lifetime`   | masterchain catchain groups lifetime in seconds | 250         | seconds       | uint32 | [config28](/foundations/config#param-28)        |

## Validator parameters

| Name                        | Description                                         | Value      | Units    | Type   | Defined in                               |
| --------------------------- | --------------------------------------------------- | ---------- | -------- | ------ | ---------------------------------------- |
| `shard_catchain_lifetime`   | shardchain catchain groups lifetime in seconds      | 250        | seconds  | uint32 | [config28](/foundations/config#param-28) |
| `shard_validators_lifetime` | shardchain validators group lifetime in seconds     | 1000       | seconds  | uint32 | [config28](/foundations/config#param-28) |
| `shard_validators_num`      | Number of validators in shardchain validation group | 23         | count    | uint32 | [config28](/foundations/config#param-28) |
| `masterchain_block_fee`     | Reward for block creation                           | 1700000000 | nanotons | Grams  | [config14](/foundations/config#param-14) |
| `basechain_block_fee`       | Basechain block fee                                 | 1000000000 | nanotons | Grams  | [config14](/foundations/config#param-14) |

## Time parameters

| Name          | Description                                  | Value | Units   | Type     | Defined in                               |
| ------------- | -------------------------------------------- | ----- | ------- | -------- | ---------------------------------------- |
| `utime_since` | Initial Unix timestamp for price application | 0     | seconds | UnixTime | [config18](/foundations/config#param-18) |
