SOL to Lamports: Why This Conversion Matters
The Solana JSON RPC API returns all balance and fee values in lamports, not SOL. When you call getBalance, for example, the result is in lamports. Converting it to SOL requires dividing by 1,000,000,000.
SOL → Lamports Table
- 0.000005 SOL = 5,000 lamports
- 0.001 SOL = 1,000,000 lamports
- 0.01 SOL = 10,000,000 lamports
- 0.1 SOL = 100,000,000 lamports
- 0.5 SOL = 500,000,000 lamports
- 1 SOL = 1,000,000,000 lamports
- 10 SOL = 10,000,000,000 lamports
Common RPC Conversions
- Rent exempt balance (~0.00203928 SOL) = 2,039,280 lamports
- Minimum SOL for new account = 890,880 lamports
- Base tx fee = 5,000 lamports
- 1 mSOL (milli-SOL) = 1,000,000 lamports
- 1 μSOL (micro-SOL) = 1,000 lamports
All Solana program logic, RPC responses, and on-chain computations use lamports as the native unit. Displaying values in SOL is purely a UI convention — the blockchain always counts in lamports.
Practical Developer Tips
When working with Solana's web3.js or anchor framework, always use lamports for internal arithmetic to avoid floating-point precision errors. Convert to SOL only at the display layer using LAMPORTS_PER_SOL from the @solana/web3.js library.
- Use
web3.LAMPORTS_PER_SOLconstant (= 1,000,000,000) in JavaScript - Never store SOL as floating point — always work in integer lamports
- For user display:
solDisplay = lamports / LAMPORTS_PER_SOL