sol链上的链上手续费,消耗的是原生代币 sol,不是 usdc、usdt,也不是用户正在转账的其他 spl 代币。严格来说,sol更多是 solana 生态里的域名后缀,真正承担网络结算功能的是 solana,手续费由交易中的 fee payer 账户以 sol 支付。无论操作内容是转账、兑换、铸造 nft,还是买卖 meme 币,只要交易需要写入 solana 主网,付款钱包就应准备少量 sol。sol 的最小单位是 lamport,1 sol 等于 10亿 lamports。

Solana手续费通常由基础费用和优先费用组成。当前基础费用按签名数量计算,每个签名为5000 lamports,也就是0.000005 SOL;普通单签名转账往往接近这个数值,但多签账户、复杂合约交互或额外签名会让基础费用上升。优先费用属于可选项目,用户可以通过设置计算单元价格,提高交易被当前出块验证者优先处理的概率。它不是固定金额,而是根据计算单元价格和交易请求的计算单元上限计算,网络拥堵时更容易出现变化。

一个常见误区是,用户转100 USDC,就以为手续费会从100 USDC里扣除。实际上,USDC只是交易指令里被转移的资产,网络费仍会从 fee payer 的 SOL 余额中扣走。钱包里即便只有USDC,没有SOL,也可能无法完成转账或Swap。部分应用能够通过费用代付、账户抽象等方式替用户承担SOL网络费,但这属于应用层设计,并没有改变Solana底层以SOL和lamports计费的规则。使用钱包时,看到网络费优先费交易费等字段,通常都应理解为需要准备SOL。
还要把链上手续费与账户创建成本区分开。首次接收某种 SPL 代币时,钱包可能需要创建对应的关联代币账户,也就是常说的 ATA,这笔支出同样由付款方提供 SOL,但它主要是为链上账户存储准备最低余额,不等同于一次普通转账的基础手续费。Solana官方文档显示,标准 Token Program 的 ATA 当前最低存储余额约为0.00203928 SOL,关闭空的代币账户后,这部分 lamports通常可以转回指定地址。首次收币、参与新项目或执行复杂Swap时,钱包余额下降可能同时包含网络费和账户存储余额。

手续费的去向也有明确区别:基础费用中,50%会被销毁,另外50%分配给出块验证者;优先费用则全部归验证者。即使交易最终失败,已产生的交易费也不会自动退回,因为验证者已经完成了签名验证、交易排队和执行尝试。实操中,普通用户无需长期囤积大量SOL,保留少量用于多次交互即可;遇到Swap迟迟不确认,可适当提高优先费用,但不宜盲目拉高计算单元上限,因为优先费按照请求的上限计算,设置过高可能为没有实际用完的计算资源付费。
