---
title: Fees
description:
  Solana transaction fees consist of a base fee of 5,000 lamports per signature
  and an optional prioritization fee in micro-lamports per compute unit. Fee
  calculation, distribution, and compute budget.
url: /docs/core/fees
type: conceptual
prerequisites:
  - /docs/core/transactions
related:
  - /docs/core/fees/fee-structure
  - /docs/core/fees/compute-budget
  - /docs/core/transactions/transaction-structure
---

Every Solana [transaction](/docs/core/transactions) requires a fee paid in SOL.
The fee has two components: a **base fee** and an optional **prioritization
fee**. The base fee compensates validators for the cryptographic work of
verifying signatures. The prioritization fee increases the likelihood that the
current leader schedules your transaction ahead of competing ones.

<Cards>
  <Card title="Fee Structure" href="/docs/core/fees/fee-structure">
    Base fee calculation, fee distribution, prioritization fee formula, and code
    examples for setting fees.
  </Card>
  <Card title="Compute Budget" href="/docs/core/fees/compute-budget">
    Compute unit limits, ComputeBudgetInstruction variants, scheduler cost
    model, block limits, and execution budget constants.
  </Card>
</Cards>

## Key facts

- **Base fee**: per-signature, split 50% burned / 50% to the validator.
- **Prioritization fee**:
  `ceil(compute_unit_price * compute_unit_limit / 1,000,000)` lamports. 100% to
  the validator.

## Limits

| Limit                          | Value          | Source                                                                                                                                   |
| ------------------------------ | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Base fee per signature         | 5,000 lamports | [`lamports_per_signature`](https://github.com/anza-xyz/agave/blob/v3.1.8/fee/src/lib.rs#L64-L71)                                         |
| Default CU limit / instruction | 200,000        | [`DEFAULT_INSTRUCTION_COMPUTE_UNIT_LIMIT`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/execution_budget.rs#L44)    |
| Builtin instruction default CU | 3,000          | [`MAX_BUILTIN_ALLOCATION_COMPUTE_UNIT_LIMIT`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/execution_budget.rs#L47) |
| Max CU limit / transaction     | 1,400,000      | [`MAX_COMPUTE_UNIT_LIMIT`](https://github.com/anza-xyz/agave/blob/v3.1.8/program-runtime/src/execution_budget.rs#L39)                    |
| Micro-lamports per lamport     | 1,000,000      | [`MICRO_LAMPORTS_PER_LAMPORT`](https://github.com/anza-xyz/agave/blob/v3.1.8/compute-budget/src/compute_budget_limits.rs#L17)            |
