Solana MicroLamports Guide — Units, Conversion & Priority Fees
MicroLamports are Solana's smallest unit of account value, used specifically in the context of priority fee pricing. Understanding this unit system is essential for correctly setting and interpreting priority fees across all Solana development tools and APIs.
The Solana Unit Hierarchy
Solana uses three primary units for expressing value:
- SOL: 1 SOL = 1,000,000,000 lamports (10^9)
- Lamport: The base unit; 1 lamport = 0.000000001 SOL (10^-9 SOL)
- MicroLamport: 1 microLamport = 0.000001 lamports = 10^-15 SOL
MicroLamports exist as a separate unit specifically because priority fee pricing per compute unit would result in sub-lamport values if expressed in lamports directly. The microLamport denomination provides the precision needed for fine-grained fee bidding.
Converting MicroLamports to USD
At a SOL price of $150 USD:
- 1 microLamport/CU × 200,000 CU = 0.2 lamports = $0.00000003 (negligible)
- 100,000 microLamports/CU × 200,000 CU = 20,000 lamports = $0.000003
- 1,000,000 microLamports/CU × 400,000 CU = 400,000 lamports = $0.00006
Even at very high priority fee tiers, the absolute cost in USD is trivially small — demonstrating why Solana's fee model is practical for high-frequency trading and automated systems.
Why Priority Fees Use MicroLamports Instead of Lamports
The compute unit price is expressed in microLamports per compute unit because:
- A typical transaction uses 200,000–400,000 CUs
- At 1 lamport per CU, this would cost 200,000–400,000 lamports (~$0.03–0.06) per transaction — prohibitively expensive
- At 1 microLamport per CU, the cost is 0.2–0.4 lamports — appropriately small
The microLamport denomination thus allows precise, sub-lamport pricing that keeps Solana's fees competitive while maintaining meaningful economic differentiation between fee tiers.
MicroLamports in Code
In the @solana/web3.js library, ComputeBudgetProgram.setComputeUnitPrice accepts an integer value in microLamports. Common practice is to express this as a bigint in TypeScript to avoid precision loss with large values. The Priority Fee APIs return values already in microLamports format, making them drop-in compatible with the SDK method.



