讲清楚 Solana 的交易费用
作者 Privacc更新于 2026年10月3日阅读约 3 分钟
Solana 的手续费小到大多数人都会忽略,直到某天因为 SOL 花光而交易失败。它由三项互相独立的成本构成,值得弄清楚谁是谁。
基础费
每笔交易按每个签名支付 5,000 lamport 的基础费。一个 lamport 是十亿分之一 SOL,因此在任何现实的 SOL 价格下,这都只是不到一分钱的零头。
这是下限。无论交易成功还是失败,它都要付。
优先费
当竞争的交易多于一个区块能容纳的数量时,验证者会按谁愿意多付来排序。多付的那部分就是优先费。
行情清淡时你可以让它接近零。但在热门项目上线时,没有足够竞争力优先费的交易可能根本不会被打包。多数钱包会自动设置它,而且金额仍然是几分钱而不是几美元。
账户租金
这一项常让人意外。在 Solana 上,持有一种代币需要链上为该代币单独开一个账户,而这个账户需要一个最低 SOL 余额(大约 0.002 SOL)才能维持存在。
所以当你第一次收到某种从未持有过的代币时,会有一点 SOL 被锁住。它是可退回的:当余额清空后关闭该代币账户,就能拿回来。但这也意味着换进十种新代币会锁住一小笔你无法动用的 SOL。
为什么你永远需要 SOL
以上所有费用都用 SOL 支付,不管你交易的是哪些代币。把 USDC 换成 BONK 同样要花 SOL。
留一点缓冲:几美元就足以覆盖几百笔交易和好几个新代币账户。把最后一点 SOL 也换掉,是把自己锁在自己钱包外面最常见的方式。
常见问题
Why did my swap cost more than the base fee?
Three likely reasons: a priority fee because the network was busy, rent because you received a token for the first time, or a validator tip attached by the router. Each is small; together they can reach a few cents, or a dollar or two at the busiest moments.
Do I get the rent back?
Yes. Close the token account once it is empty and the deposit, about 0.002 SOL, returns to your wallet. Phantom and Solflare both have a tool for closing empty token accounts.
Why can I not swap my last bit of SOL?
Because the swap itself has to be paid for in SOL, and the wallet also needs to keep its own minimum balance. Jupiter's panel leaves a small amount behind for that reason. Swap to within a fraction of a SOL and keep the rest.
Does a failed transaction cost anything?
If it reached the chain and failed, it paid the base fee and any priority fee, a fraction of a cent to a few cents. If it expired or was rejected in the wallet before being sent, nothing.
What is a good priority fee?
Whatever the wallet or Jupiter sets automatically, which is read from recent blocks. Raising it by hand only helps during a launch or a sharp move, when being first into a block matters.