huiperk · 独立运营的中文出入金教程站 编辑与事实核查政策 RSS 订阅
huiperk MONEY ROUTES

LEG 03 · 链上转移

Solana 上转 USDT 要备多少 SOL:基础费、优先费和替对方开代币账户的押金

先看这笔有几个签名、有没有优先费,再看收款代币账户是否要新开。一个签名的基础费是 0.000005 SOL;下面引的一笔链上回执里,新开一个 USDT 代币账户另存入 0.00148844 SOL。替对方垫的这笔钱存在对方账户里,关闭时不会自动退给你。

两种情况的算例:对方已有 USDT 代币账户时只付一个签名的基础费 0.000005 SOL;要替对方新开账户时为 0.00149344 SOL,即押金 0.00148844 加基础费 0.000005。押金数取自 2026 年 10 月 10 日公开交易 37XrdZum…YAYaJTgVw 中新建 165 字节 USDT 账户的存入金额 1,488,440 lamports,均不含优先费。
图上两个数差在开户押金:左边只有一个签名的基础费,右边多垫了 1,488,440 lamports。都没算优先费。

钱包里的 USDT 够,点发送,弹出来的却是 SOL 不足。缺的是哪一笔、缺多少?

Solana 上转 USDT,网络只收 SOL。对方已经有本次收款用的 USDT 代币账户时,要备的是基础费和可能的优先费;一个签名的基础费是 0.000005 SOL。需要新开收款账户、开户指令又带在你这一笔里时,发送方还得垫一笔开户押金,现在是 0.00148844 SOL。下面按这三笔钱各自的去向分开对。

确认页上那个网络费,里面装着哪几笔

先把单位说清。lamport 是 SOL 的最小记账单位,十亿 lamports 合 1 SOL。下面的数都先写 lamports,再折成 SOL。

付给网络的有两笔。Solana 文档「费用结构」页列出的总费用等于基础费用加优先费用,基础费用每个签名 5,000 lamports。这些文档是 2026 年 10 月的内容;费用和账户最低余额以后可能变,发送那一刻看钱包确认页列出的数。

Solana 中文文档「费用结构」页顶部:标题下方的摘要框写着「总费用 = 基础费用(每个签名 5,000 lamports,50% 销毁)+ 优先费用(CU_price * CU_limit / 1M lamports,100% 归 validator)。无论交易成功还是失败,均会收取费用。」左侧是文档目录,费用一栏下有费用结构、计算预算两项
Solana 文档「费用结构」页顶部的摘要框,写着总费用的算式和「无论交易成功还是失败,均会收取费用」一句。(2026 年 10 月截图)

第三笔不付给网络。它是存进一个新账户里的押金,只有本次转账需要新建收款代币账户时才出现。确认页上只给一个合计数时,三笔是混在一起的。同样转 USDT,带不带第三笔,按下面的数算能差出近三百倍。

基础费:数签名,一个签名 5,000 lamports

5,000 lamports,折 0.000005 SOL。转 1 USDT 和转 10,000 USDT 收的一样,它不看金额,只看这笔交易带了几个签名。

钱包地址同时负责转出 USDT 和付费、又没有其他签名者时,只签一次。只按基础费算:

  • 一个签名:1 × 5,000 = 5,000 lamports;
  • 两个签名:2 × 5,000 = 10,000 lamports。

两个签名的情形,比如付网络费的地址和转出 USDT 的地址不是同一个,各签一次。

这 5,000 的去向,文档写的是一半销毁,一半给出块的验证节点。

优先费:价是自己出的,乘的是上限

优先费是可选的。出了,这笔交易被排到前面的机会大一些;不出,照样可以发。算式在同一页:

传统交易和 v0 交易的优先费 = 计算单元单价 × 计算单元上限 ÷ 1,000,000,结果向上取整,单位 lamports。单价按「微 lamport」报,一百万微 lamports 合 1 lamport。

注意乘的是上限,不是这笔交易实际用掉的量。上限设得宽,同样的单价就多付。文档区分了指令类型:非内置指令每条默认 200,000 个计算单元,内置指令每条默认 3,000 个;钱包也可以显式设置上限。v1 格式则直接填优先费总额,不套这个乘法。

假设钱包给这笔交易设的上限是 200,000,单价 10,000 微 lamports:10,000 × 200,000 ÷ 1,000,000 = 2,000 lamports,折 0.000002 SOL。

单价和上限由发起交易的一方定,也就是替你组这笔交易的钱包。确认页上有档位或自定义入口的,先看它允许调的是单价、上限还是费用总额;没有入口的,看确认页合计出来的网络费。优先费全部归验证节点,不销毁。

对方没有 USDT 代币账户:押金谁垫,垫多少

在 Solana 上,USDT 不记在钱包地址名下的一栏里,而是记在一个单独的「代币账户」里。Solana 代币账户文档的说法:一个代币账户只装一种代币、只归一个持有人。代币账户可以在第一次收款前就创建,也可以在清空后被关闭;只凭有没有收过 USDT,判断不了本次是否需要开户。

对方还没有这个账户时,要先开,再转。钱包和代币的默认代币账户叫关联代币账户,地址由钱包地址、代币程序地址和代币的铸造地址三样推出来,同一组合只有一个,所以你填对方的钱包地址就够了。开户要存的这笔余额,文档写的是由创建指令里的付款方出,付款方可以不是账户的持有人——应用可以替收款人开。落到转账上,同一笔里带着开户指令时,出这笔钱的是发送方。

垫多少,按网络现在实际要求的最低余额算。代币账户是 165 字节;2026 年 10 月向网络查询,这个大小的账户最低余额是 1,488,440 lamports,折 0.00148844 SOL。账户文档给的算式是(账户字节数 + 128)× 3,480 × 2,代进去得 2,039,280 lamports,折 0.00203928 SOL,那是较早的标准。

链上回执和查询结果是同一个数。2026 年 10 月 10 日的交易 37XrdZum…YAYaJTgVw里,付款地址一次新开了三个 165 字节的代币账户,各存入 1,488,440 lamports,其中一个装的是 USDT。回执上的余额变动:

交易 37XrdZum…YAYaJTgVw 的 SOL 余额变动与对账
回执上的项目lamports折成 SOL
三个新代币账户,各存入1,488,4400.00148844
三笔押金小计4,465,3200.00446532
fee(一个签名的基础费 5,000,余下 50 是优先费)5,0500.00000505
付款地址余额减少4,470,3700.00447037

4,465,320 加 5,050,正好 4,470,370,账是平的。每个新账户里存的 1,488,440,就是网络现在要求的最低余额。

这个数不用背。代币账户文档自己也提醒不要把最低余额写死。发之前以钱包确认页为准,看它合计的网络费:比基础费高出很多时,先分清多出来的是优先费,还是开户押金。按现在的 1,488,440 算,替对方开一个 USDT 代币账户再转过去,不算优先费是 1,488,440 + 5,000 = 1,493,440 lamports,折 0.00149344 SOL。

顺带核一件事:对方收的是不是真的 USDT。Solana 上谁都能发一个名字叫 USDT 的代币,认的是铸造地址。Tether 官网的支持协议页登记的 Solana 地址是 Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB,钱包的代币详情里能看到这一串。

这笔押金还能拿回来吗

押金没有被网络收走,它躺在那个新代币账户里。账户文档管它叫可退还的最低余额。

可退,退给谁?代币账户文档写了两句。一句:关闭一个空的代币账户,会把里面全部 lamports 连同最低存储余额,转到关闭指令指定的收款地址。另一句:当初出钱开户的付款方,不会自动成为退款的去处。

翻成账:账户是对方的,关不关、关了之后这笔 SOL 去哪个地址,都由对方那一头定。你替别人垫的押金,在你这一头记成支出更稳妥。

自己名下的代币账户是另一回事。某个代币余额已经清零、以后也不打算再收,把那个空账户关掉,押金回到你指定的地址。条件是空:里面还有余额的,先转走或换掉。关掉以后别人再往这个地址转同一种代币,又要重新开户、重新垫押金。

SOL 不够,或者这笔失败了,钱扣不扣

分两种情况。

还没发出去,钱包就提示 SOL 不足。这时链上什么都没发生,不扣钱。补够 SOL 再发。

发出去了,链上执行失败。截图里那句摘要写得直接:无论交易成功还是失败,均会收取费用。USDT 没转成,基础费和优先费照扣。押金分情况:开户和转账在同一笔交易里执行时,失败会撤回开户,押金不会存进去;如果开户是前一笔已经成功的交易,后面的转账失败不会把那笔押金退回。

提示 SOL 不足时,改小 USDT 金额没有用,网络费不看转多少。也别连着点重发:真上链又失败的,每一笔都各收一次费。先看确认页的网络费里有没有开户押金,再看钱包里的 SOL 够不够付这个合计数。

还有一栏容易漏:钱包自己的 SOL 也有最低余额。账户文档写,每个账户都要留一笔和数据大小挂钩的最低余额才能留在链上。这部分也会影响钱包能否发出交易。准备 SOL 时,除了本次扣款,还要看钱包是否提示需要保留账户最低余额;不要把代币账户的押金数直接套到钱包地址上。

收款钱包可以没有 SOL,USDT 记在你替它开的代币账户里。下次由它自行付费转出时,才需要准备 SOL;若由别人代付,另看代付条件。以太坊对应的问题见钱包有 USDT 没有 ETH 怎么转。

从交易所提、往交易所充,SOL 由谁出

从交易所提 USDT 到 Solana 地址:你不用备 SOL。这一笔是平台的地址发的,链上的基础费和可能的开户押金出在平台那一头;你付的是提币页上标出的提币费。两笔账不是一回事,金额也没有固定换算。提币页选网络时,认 Solana 这一条,再看费用扣的是哪个币、预计到账多少。各网络怎么比,见提币网络怎么选。

从自己的钱包往交易所充:这一笔是你发的,SOL 由你出。交易所给的充值地址有没有对应的 USDT 代币账户,可以在链上查;钱包确认页若列出创建账户或存储余额,再核对是否要你垫付。只有一项网络费合计时,不能仅凭总数认定有押金。充值页另有两栏要对:网络是不是 Solana,最低充值金额是多少。金额不够的情况见USDT 充值低于最低金额怎么办。

和 TRON 比,哪边便宜?单位不同,没法直接比。TRON 那边烧的是 TRX,算法见TRC20 转 USDT 要多少 TRX。各自折成同一种法币,再看对方收不收这条网络——对方不收的网络,再便宜也不能用。

发完之后,回执上对哪几栏

拿交易签名到 Solana 浏览器查这一笔。签名就是这条链上的交易编号,钱包的转账记录里能复制。

  1. 看状态。成功还是失败,失败的也会有 fee。
  2. 看 fee。普通转账没有额外的预编译签名验证时,先减去签名数乘 5,000 的基础费,余下的是优先费。上面那笔 5,050,一个签名,就是 5,000 加 50。
  3. 看 SOL 余额变动。你的地址减少的数减去 fee 后,要接着看创建账户指令,核对新账户地址、存入 SOL 和分配字节数,再对上它的余额变化。不能只看差额大小:同一笔交易也可能另转了 SOL 或付了应用费用。
  4. 看代币余额变动。对方那个代币账户增加的 USDT,和你转出的数是否一致,铸造地址是不是上面那一串。

四栏对得上,这笔账就结了。对不上的,先别补转,拿签名去查卡在哪一步,查法见充值提币未到账怎么查。回执页和钱包里的转账记录各留一份,存法见加密交易记录怎么留。