---
title: Constants Reference
description:
  Centralized reference for all Solana runtime constants including accounts,
  transactions, instructions, programs, fees, compute units, PDAs, and CPIs.
url: /docs/core/constants-reference
type: reference
prerequisites: []
related:
  - /docs/core/accounts/account-structure
  - /docs/core/transactions/transaction-structure
  - /docs/core/fees/compute-budget
  - /docs/core/programs/syscall-reference
---

This page is a single reference for all runtime constants mentioned across the
core concept pages. Each constant links to its source definition in the
[agave](https://github.com/anza-xyz/agave/tree/v3.1.8) validator client or
[solana-sdk](https://github.com/anza-xyz/solana-sdk).

## Accounts

| Constant                                  | Value                     | Description                                          | Source                                                                                                                        |
| ----------------------------------------- | ------------------------- | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `MAX_ACCOUNT_DATA_LEN`                    | 10 MiB (10,485,760 bytes) | Maximum account data size                            | [`MAX_ACCOUNT_DATA_LEN`](https://github.com/anza-xyz/agave/blob/v3.1.8/transaction-context/src/lib.rs#L34)                    |
| `MAX_ACCOUNT_DATA_GROWTH_PER_TRANSACTION` | 20 MiB (20,971,520 bytes) | Max new account data allocated per transaction       | [`MAX_ACCOUNT_DATA_GROWTH_PER_TRANSACTION`](https://github.com/anza-xyz/agave/blob/v3.1.8/transaction-context/src/lib.rs#L38) |
| `MAX_PERMITTED_DATA_INCREASE`             | 10,240 bytes (10 KiB)     | Max realloc increase per CPI                         | [`MAX_PERMITTED_DATA_INCREASE`](https://github.com/anza-xyz/solana-sdk/blob/clock%40v2.2.3/account-info/src/lib.rs#L17)       |
| `TRANSACTION_ACCOUNT_BASE_SIZE`           | 64 bytes                  | Per-account overhead counted toward loaded data size | [`TRANSACTION_ACCOUNT_BASE_SIZE`](https://github.com/anza-xyz/agave/blob/v3.1.8/svm/src/account_loader.rs#L45)                |

## Transactions

| Constant                       | Value       | Description                                                                                                                                                                                                                                                                                                    | Source                                                                                                                   |
| ------------------------------ | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `PACKET_DATA_SIZE`             | 1,232 bytes | Maximum transaction size (IPv6 MTU minus headers)                                                                                                                                                                                                                                                              | [`PACKET_DATA_SIZE`](https://github.com/anza-xyz/solana-sdk/blob/clock%40v2.2.3/packet/src/lib.rs#L32)                   |
| `MAX_ACCOUNTS_PER_TRANSACTION` | 256         | Hard ceiling from `u8` index encoding. The enforced runtime limit is [64](https://github.com/anza-xyz/agave/blob/v3.1.8/runtime/src/bank.rs#L2942) (128 when [`increase_tx_account_lock_limit`](https://github.com/anza-xyz/agave/blob/v3.1.8/feature-set/src/lib.rs#L1652) is activated, currently inactive). | [`MAX_ACCOUNTS_PER_TRANSACTION`](https://github.com/anza-xyz/agave/blob/v3.1.8/transaction-context/src/lib.rs#L29)       |
| `MAX_PROCESSING_AGE`           | 150 slots   | Blockhash expiry window                                                                                                                                                                                                                                                                                        | [`MAX_PROCESSING_AGE`](https://github.com/anza-xyz/solana-sdk/blob/clock%40v2.2.3/clock/src/lib.rs#L133)                 |
| `MAX_RECENT_BLOCKHASHES`       | 300 entries | BlockhashQueue size                                                                                                                                                                                                                                                                                            | [`MAX_RECENT_BLOCKHASHES`](https://github.com/anza-xyz/solana-sdk/blob/clock%40v2.2.3/clock/src/lib.rs#L127)             |
| `MAX_SIGNATURES_PER_PACKET`    | 12          | Maximum signatures per transaction packet                                                                                                                                                                                                                                                                      | [`MAX_SIGNATURES_PER_PACKET`](https://github.com/anza-xyz/agave/blob/v3.1.8/transaction-view/src/signature_frame.rs#L18) |

## Instructions

| Constant                       | Value                 | Description                                   | Source                                                                                                             |
| ------------------------------ | --------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| `MAX_INSTRUCTION_TRACE_LENGTH` | 64                    | Maximum total instructions (top-level + CPIs) | [`MAX_INSTRUCTION_TRACE_LENGTH`](https://github.com/anza-xyz/agave/blob/v3.1.8/transaction-context/src/lib.rs#L41) |
| `MAX_INSTRUCTION_DATA_LEN`     | 10,240 bytes (10 KiB) | Maximum instruction data per instruction      | [`MAX_INSTRUCTION_DATA_LEN`](https://github.com/anza-xyz/agave/blob/v3.1.8/transaction-context/src/lib.rs#L33)     |

## Programs

| Constant                              | Value                                                                | Description                             | Source                                                                                                                             |
| ------------------------------------- | -------------------------------------------------------------------- | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `MAX_LOADED_ACCOUNTS_DATA_SIZE_BYTES` | 64 MiB (67,108,864 bytes)                                            | Default loaded accounts data size limit | [`MAX_LOADED_ACCOUNTS_DATA_SIZE_BYTES`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/execution_budget.rs#L53) |
| `PROGRAM_OWNERS`                      | BPF Loader Upgradeable, BPF Loader, BPF Loader Deprecated, Loader V4 | Valid program owner loaders             | [`PROGRAM_OWNERS`](https://github.com/anza-xyz/solana-sdk/blob/clock%40v2.2.3/account/src/lib.rs#L802)                             |
| `STACK_FRAME_SIZE`                    | 4,096 bytes                                                          | SBF stack frame size                    | [`STACK_FRAME_SIZE`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/execution_budget.rs#L37)                    |
| `MAX_CALL_DEPTH`                      | 64                                                                   | Maximum SBF-to-SBF call depth           | [`MAX_CALL_DEPTH`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/execution_budget.rs#L34)                      |
| `MAX_LOADED_ENTRY_COUNT`              | 512                                                                  | Maximum cached programs                 | [`MAX_LOADED_ENTRY_COUNT`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/loaded_programs.rs#L31)               |
| `DELAY_VISIBILITY_SLOT_OFFSET`        | 1 slot                                                               | Program deployment visibility delay     | [`DELAY_VISIBILITY_SLOT_OFFSET`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/loaded_programs.rs#L32)         |

## Fees & Compute

| Constant                                    | Value                   | Description                              | Source                                                                                                                                   |
| ------------------------------------------- | ----------------------- | ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `DEFAULT_INSTRUCTION_COMPUTE_UNIT_LIMIT`    | 200,000 CUs             | Default CU limit per instruction         | [`DEFAULT_INSTRUCTION_COMPUTE_UNIT_LIMIT`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/execution_budget.rs#L44)    |
| `MAX_BUILTIN_ALLOCATION_COMPUTE_UNIT_LIMIT` | 3,000 CUs               | Default CU limit per builtin instruction | [`MAX_BUILTIN_ALLOCATION_COMPUTE_UNIT_LIMIT`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/execution_budget.rs#L47) |
| `MAX_COMPUTE_UNIT_LIMIT`                    | 1,400,000 CUs           | Maximum CU limit per transaction         | [`MAX_COMPUTE_UNIT_LIMIT`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/execution_budget.rs#L39)                    |
| `lamports_per_signature`                    | 5,000 lamports          | Default base fee per signature           | [`FeeStructure::default()`](https://github.com/anza-xyz/solana-sdk/blob/clock%40v2.2.3/fee-structure/src/lib.rs#L210)                    |
| `MICRO_LAMPORTS_PER_LAMPORT`                | 1,000,000               | Micro-lamports per lamport conversion    | [`MICRO_LAMPORTS_PER_LAMPORT`](https://github.com/anza-xyz/agave/blob/v3.1.8/compute-budget/src/compute_budget_limits.rs#L17)            |
| `MAX_HEAP_FRAME_BYTES`                      | 262,144 bytes (256 KiB) | Maximum BPF heap size                    | [`MAX_HEAP_FRAME_BYTES`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/execution_budget.rs#L48)                      |
| `DEFAULT_HEAP_COST`                         | 8 CUs per 32 KiB page   | Cost to allocate heap pages              | [`DEFAULT_HEAP_COST`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/execution_budget.rs#L43)                         |
| `HEAP_LENGTH`                               | 32,768 bytes (32 KiB)   | Default BPF heap size                    | [`HEAP_LENGTH`](https://github.com/anza-xyz/solana-sdk/blob/clock%40v2.2.3/program-entrypoint/src/lib.rs#L42)                            |
| `WRITE_LOCK_UNITS`                          | 300 CUs                 | Compute cost per write-locked account    | [`WRITE_LOCK_UNITS`](https://github.com/anza-xyz/agave/blob/v3.1.8/cost-model/src/block_cost_limits.rs#L20)                              |
| `SIGNATURE_COST`                            | 720 CUs                 | Compute cost per Ed25519 signature       | [`SIGNATURE_COST`](https://github.com/anza-xyz/agave/blob/v3.1.8/cost-model/src/block_cost_limits.rs#L10)                                |
| `SECP256K1_VERIFY_COST`                     | 6,690 CUs               | Compute cost per secp256k1 signature     | [`SECP256K1_VERIFY_COST`](https://github.com/anza-xyz/agave/blob/v3.1.8/cost-model/src/block_cost_limits.rs#L12)                         |

## PDA

| Constant                      | Value         | Description                                | Source                                                                                                                       |
| ----------------------------- | ------------- | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- |
| `MAX_SEEDS`                   | 16            | Maximum number of seeds per PDA derivation | [`MAX_SEEDS`](https://github.com/anza-xyz/solana-sdk/blob/clock%40v2.2.3/pubkey/src/lib.rs#L47)                              |
| `MAX_SEED_LEN`                | 32 bytes      | Maximum length of a single seed            | [`MAX_SEED_LEN`](https://github.com/anza-xyz/solana-sdk/blob/clock%40v2.2.3/pubkey/src/lib.rs#L45)                           |
| Bump seed range               | 255 down to 1 | Range tried for canonical bump             | [`find_program_address`](https://github.com/anza-xyz/solana-sdk/blob/clock%40v2.2.3/pubkey/src/lib.rs#L800)                  |
| `create_program_address` cost | 1,500 CUs     | CU cost per PDA derivation syscall         | [`create_program_address_units`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/execution_budget.rs#L200) |

## CPI

| Constant                      | Value                          | Description                           | Source                                                                                                                                                                                                                                                          |
| ----------------------------- | ------------------------------ | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `MAX_INSTRUCTION_STACK_DEPTH` | 5 (9 with SIMD-0268)           | Maximum call stack depth              | [`MAX_INSTRUCTION_STACK_DEPTH`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/execution_budget.rs#L8), [`MAX_INSTRUCTION_STACK_DEPTH_SIMD_0268`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/execution_budget.rs#L10) |
| `DEFAULT_INVOCATION_COST`     | 1,000 CUs (946 with SIMD-0339) | CPI invocation cost                   | [`DEFAULT_INVOCATION_COST`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/execution_budget.rs#L21), [`INVOKE_UNITS_COST_SIMD_0339`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/execution_budget.rs#L23)              |
| `MAX_SIGNERS`                 | 16                             | Maximum PDA signers per CPI           | [`MAX_SIGNERS`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/cpi.rs#L62)                                                                                                                                                                   |
| `MAX_CPI_ACCOUNT_INFOS`       | 128 (255 with SIMD-0339)       | Maximum account infos passed to a CPI | [`MAX_CPI_ACCOUNT_INFOS`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/cpi.rs#L122), [`MAX_CPI_ACCOUNT_INFOS_SIMD_0339`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/cpi.rs#L124)                                    |
| `MAX_RETURN_DATA`             | 1,024 bytes                    | Maximum return data from a CPI        | [`MAX_RETURN_DATA`](https://github.com/anza-xyz/solana-sdk/blob/clock%40v2.2.3/cpi/src/lib.rs#L329)                                                                                                                                                             |
| `cpi_bytes_per_unit`          | 250 bytes per CU               | CPI serialization cost rate           | [`cpi_bytes_per_unit`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/execution_budget.rs#L205)                                                                                                                                              |
