Lamports 转 SOL 换算器

Solana 的 RPC 响应、租金计算和程序日志都以 lamports 计。在 lamports 与 SOL 之间换算,没有舍入误差。

由浏览器中的 JavaScript 换算。地址绝不会被上传或存储。

什么是 lamports 转 SOL 换算器?

lamports 转 SOL 换算器把整数 lamport 数除以 109 得到 SOL,乘以 109 则反向换算。Lamport 是 Solana 原生代币的最小单位;运行时和 JSON-RPC API 处理的每个余额、转账和租金数字都是整数个 lamports,带 9 位小数的 SOL 只是钱包的显示方式。

Solana 单位表

单位LamportsSOL使用场景
micro-lamport0.00000110-15每计算单元的优先费价格
lamport10.000000001RPC 余额、指令数据、租金
SOL1,000,000,0001钱包、交易所

实践中的 lamports

为什么不用浮点数?

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 二维码生成器创建收款码。

常见问题

1 SOL 等于多少 lamports?

1,000,000,000(109)。1 lamport 是 0.000000001 SOL,以分布式系统研究者 Leslie Lamport 命名。

为什么我的余额以 lamports 显示?

JSON-RPC API(getBalance、getAccountInfo)返回以 lamports 计的整数,以免丢失精度。钱包会除以 109 再显示。

Solana 租金是多少 SOL?

基础账户的免租金额约为 890,880 lamports,约 0.00089 SOL;代币账户约需 2,039,280 lamports,约 0.002 SOL。粘贴 RPC 输出中的 lamport 值即可查看精确的 SOL 数。

Solana 交易手续费通常是多少?

每个签名 5,000 lamports(0.000005 SOL),外加可选的优先费,以每计算单元的 micro-lamports 计。1,000,000 micro-lamports = 1 lamport。

如何在代码中把 lamports 换算成 SOL?

在 @solana/web3.js 中除以 LAMPORTS_PER_SOL(1,000,000,000),或使用整数除法加 9 位余数得到精确结果。在 Rust 中,solana_sdk::native_token::lamports_to_sol 返回 f64,所以记账时请把 lamports 保持为 u64。

SPL 代币使用 lamports 吗?

不使用。每种 SPL 代币在其 Mint 账户中有自己的 decimals 字段(USDC 为 6,大多数代币为 6 到 9)。这类换算请使用代币精度换算器。