什么是 lamports 转 SOL 换算器?
lamports 转 SOL 换算器把整数 lamport 数除以 109 得到 SOL,乘以 109 则反向换算。Lamport 是 Solana 原生代币的最小单位;运行时和 JSON-RPC API 处理的每个余额、转账和租金数字都是整数个 lamports,带 9 位小数的 SOL 只是钱包的显示方式。
Solana 单位表
| 单位 | Lamports | SOL | 使用场景 |
|---|---|---|---|
| micro-lamport | 0.000001 | 10-15 | 每计算单元的优先费价格 |
| lamport | 1 | 0.000000001 | RPC 余额、指令数据、租金 |
| SOL | 1,000,000,000 | 1 | 钱包、交易所 |
实践中的 lamports
- 余额:
getBalance对 1.5 SOL 返回{ "value": 1500000000 }。 - 转账:
SystemProgram.transfer({ lamports: 100_000_000 })发送 0.1 SOL。在 web3.js 中,常量LAMPORTS_PER_SOL等于 1e9。 - 租金:
getMinimumBalanceForRentExemption(size)返回 lamports;每个账户至少要持有这么多才能持续存在。 - 优先费:以每计算单元的 micro-lamports 设置;一笔 200,000 CU 的交易在 10,000 micro-lamports/CU 下增加 2,000,000,000 micro-lamports = 2,000 lamports = 0.000002 SOL。
为什么不用浮点数?
1e9 可以轻松放进 double,但 123,456,789,123,456,789 lamports 这样的余额不行:JavaScript 的 Number 只在 253 以内精确。本换算器使用 BigInt,所以极大的金库余额也能精确换算。
示例
钱包显示 3.25 SOL。RPC 余额为 3.25 × 109 = 3,250,000,000 lamports。向另一个地址发送 0.1 SOL 并支付一笔签名费后,剩余 3,250,000,000 − 100,000,000 − 5,000 = 3,149,995,000 lamports,钱包显示为 3.149995 SOL。把数字保持为整数,可避免之后乘以价格或跨多个账户求和时的舍入。
用 Solana 地址验证器验证 Solana 地址,或用 Solana Pay 二维码生成器创建收款码。