[{"data":1,"prerenderedAt":41},["ShallowReactive",2],{"blog-content-zh-speed-up-or-cancel-stuck-transaction":3},{"slug":4,"title":5,"excerpt":6,"description":7,"bodyHtml":8,"howToSteps":9,"faqItems":25},"speed-up-or-cancel-stuck-transaction","交易卡在待确认？如何加速或取消它","待确认交易的解法是用相同 nonce、更高手续费替换它——加速就是把它重发一遍，取消则是用一笔发给自己的零值转账把它作废。WATS 完全非托管，因此这笔替换交易由你亲自签名，而它的手续费用 ATS 支付，而不是该链的原生 gas 代币。","交易卡在待确认？为什么会这样——max fee 低于基础费，或 nonce 出现断层——EVM 链上的加速与取消替换如何运作，以及 WATS 如何用 ATS 支付手续费。","\u003Cblockquote>\u003Cp>卡住的待确认交易要靠替换来解决：用相同 nonce、更高手续费重新广播，可以是\u003Cstrong>加速\u003C\u002Fstrong>（同一笔交易，只是付得更多），也可以是\u003Cstrong>取消\u003C\u002Fstrong>（一笔发往你自己地址的零值转账，让这个 nonce 被一件无害的事消耗掉）。交易卡住只有两种原因：你的 max fee 低于网络当前的基础费，或者同一账户里更早的一笔交易占着更小的 nonce 不动，把后面的一切都冻住了。两种做法都没有保证——取消要花 gas，而更便宜的原交易仍可能先落地——所以请盯着区块浏览器，直到其中一个版本在那个 nonce 上确认、另一个显示为已丢弃或已替换。卡在待确认基本上是 EVM 特有的现象：在 Solana 上，交易如果没在大约一分钟内被处理就直接过期，而 TON 的消息自带过期时间，因此根本没有什么可取消。每一笔替换交易都由你亲自签名，因为 WATS 完全非托管，从不持有任何钥匙；而 WATS 的网络费只收取单一代币 ATS，而不是各条链的原生 gas 代币——这改变的是由哪种代币付款，而不是网络收取多少，所以在 max fee 上留出余量仍然是真正的预防之道。\u003C\u002Fp>\u003C\u002Fblockquote>\n\n\u003Ch2>那笔死活不确认的交易\u003C\u002Fh2>\n\u003Cp>当没有验证者愿意把一笔交易打包进区块时，它就一直\u003Cstrong>待确认\u003C\u002Fstrong>——通常是因为它的 max fee 低于网络当前的基础费，或者因为同一账户里有一笔更早的交易卡在它前面。解法是替换：用相同 nonce、更高手续费重新广播，可以是\u003Cem>加速\u003C\u002Fem>（同一笔交易，付得更多），也可以是\u003Cem>取消\u003C\u002Fem>（一笔发给自己的零值转账）。\u003C\u002Fp>\n\u003Cp>等待期间什么都没损失——待确认交易到目前为止没花你一分钱，你的资金也没有移动。但它也谈不上无害：在像 Ethereum 这样按 nonce 排序的链上，它会悄悄挡住你之后想发的每一笔交易。搞懂原因只要两分钟；修好只要一分钟。\u003C\u002Fp>\n\n\u003Ch2>我的交易为什么卡在待确认？\u003C\u002Fh2>\n\u003Cp>在 EVM 链上，几乎所有卡住的交易都出自两个原因。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>你的 max fee 低于当前基础费。\u003C\u002Fstrong>在 \u003Ca href=\"\u002Fblog\u002Feip-1559-explained\">EIP-1559\u003C\u002Fa> 之下，每个区块都会设定一个基础费，你的交易至少要达到它才可能被打包。如果你签名之后需求突然暴涨——或者钱包的估算本来就卡得很紧、而行情动了——你的交易就会在\u003Ca href=\"\u002Fblog\u002Fwhat-is-a-mempool\">内存池\u003C\u002Fa>里等着，直到基础费重新回落到你的上限之下，而这可能要等上几分钟，也可能永远等不到。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>nonce 出现断层。\u003C\u002Fstrong>每个 EVM 账户都用严格递增的 \u003Cstrong>nonce\u003C\u002Fstrong> 给自己的交易编号——0、1、2 依此类推——验证者也严格按顺序处理。如果第 41 号交易卡住了，第 42、43 号无论你出价多慷慨都无法确认。这就是为什么一笔便宜又被遗忘的交易能冻住整个钱包：后面的一切都排在队里，看上去莫名其妙地坏掉了。定价这一侧从头到尾是怎么运作的，见\u003Ca href=\"\u002Fblog\u002Fcrypto-gas-fees-explained\">gas 费究竟如何运作\u003C\u002Fa>。\u003C\u002Fp>\n\n\u003Ch2>加速按钮到底做了什么？\u003C\u002Fh2>\n\u003Cp>加速并不是网络提供的什么特殊功能——它是一笔\u003Cstrong>替换交易\u003C\u002Fstrong>：完全相同的交易，相同 nonce、相同收款方、相同金额，只是用更高的手续费重新广播。因为一个 nonce 一辈子只能被消耗一次，验证者会留下出价更高的那个版本，丢掉另一个。大多数节点要求替换交易把 max fee 和优先小费都提高一个有意义的幅度——常见是 10% 左右——否则就当作垃圾交易忽略掉。你钱包里的加速按钮做的正是这件事：它把原交易预填好，沿用它的 nonce，并替你把手续费调高。\u003C\u002Fp>\n\n\u003Ch2>取消一笔待确认交易是怎么运作的？\u003C\u002Fh2>\n\u003Cp>取消用的是同一套替换手法，只是目标不同：你的钱包会用相同 nonce、更高手续费发出一笔\u003Cem>发往你自己地址的零值转账\u003C\u002Fem>。如果它赢了，这个 nonce 就被一笔什么也不做的交易消耗掉——原交易再也无法确认。有两点常让人意外。第一，\u003Cstrong>取消要花 gas\u003C\u002Fstrong>：取消是一笔必须被打包上链的真实交易，所以你要为它支付最低的转账成本。第二，取消可能\u003Cem>输掉这场竞速\u003C\u002Fem>——如果在取消交易传播开之前就有验证者拾取了你的原交易，原交易照样执行，而取消则悄无声息地作废。\u003C\u002Fp>\n\n\u003Ch2>加速还是取消——我该用哪个？\u003C\u002Fh2>\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>&nbsp;\u003C\u002Fth>\u003Cth>加速\u003C\u002Fth>\u003Cth>取消\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>发出的是什么\u003C\u002Ftd>\u003Ctd>同一笔交易，相同 nonce，更高手续费\u003C\u002Ftd>\u003Ctd>一笔发给自己的零值转账，相同 nonce，更高手续费\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>什么时候用\u003C\u002Ftd>\u003Ctd>你仍然希望这个操作发生\u003C\u002Ftd>\u003Ctd>你后悔了——金额错了、地址错了、误签了授权\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>成本\u003C\u002Ftd>\u003Ctd>该交易的正常 gas，按新费率计\u003C\u002Ftd>\u003Ctd>最低的转账 gas，按新费率计\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>会失败吗？\u003C\u002Ftd>\u003Ctd>会——更便宜的原交易仍可能先落地\u003C\u002Ftd>\u003Ctd>会——原交易可能赢下竞速并照常执行\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>有一条规则对两者都适用：永远不要把替换当成板上钉钉。在其中一个版本链上确认之前，两个版本同时存在，而决定哪一个落地的是网络，不是你。如果原交易很危险，请盯着浏览器看清楚是哪个版本在那个 nonce 上确认了（输的那个会显示为\u003Cem>已丢弃\u003C\u002Fem>或\u003Cem>已替换\u003C\u002Fem>），再按「它已经被拦下」的假设去行动。\u003C\u002Fp>\n\n\u003Ch2>Solana 或 TON 上也会这样吗？\u003C\u002Fh2>\n\u003Cp>卡在待确认基本上是 \u003Cem>EVM 特有的现象\u003C\u002Fem>，源自持久的公开内存池与账户内严格 nonce 排序这两者的组合。Solana 的做法不同：每笔交易都引用一个近期的 blockhash，如果没在一个很短的窗口内——大约一分钟——被处理，就直接\u003Cstrong>过期\u003C\u002Fstrong>，所以没有什么可取消的；你重新签名再发一次即可。TON 又是另一回事：它的消息自带过期时间，也不存在 EVM 意义上的共享待确认池，因此那里同样没有加速／取消这套动作。如果你是从这两条链转到 EVM 的，这篇文章就是你缺的那本说明书。像 WATS 这样的多链钱包横跨两个世界——EVM 这边是 Ethereum、Arbitrum、Optimism、Base、Polygon 与 BNB Chain，另一边是 Solana 与 TON——所以在你到处找一个本来就不会存在的取消按钮之前，先弄清楚适用的是哪一套规则很有必要。\u003C\u002Fp>\n\n\u003Ch2>怎样才能不让交易卡住？\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>在 max fee 上留出余量。\u003C\u002Fstrong>max fee 是上限，不是账单——你实际支付的永远只有基础费加你的小费，所以把上限设得宽裕些不会多花一分钱，却买到了一份应对基础费突然飙升的保险。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>不要用新的 nonce 疯狂重试。\u003C\u002Fstrong>在一笔卡住的交易后面不断补发新尝试，只会堆出一条全都在等同一个堵点的队伍——等你终于把它修好时，还要多收拾一堆烂摊子。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>先修最小的那个 nonce。\u003C\u002Fstrong>如果有好几笔交易待确认，真正要紧的只有最早的那笔；把它替换掉，其余的通常会自己疏通。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>把手续费代币备足。\u003C\u002Fstrong>替换交易本身也是一笔交易，所以你得在那条链上持有足够的、用来支付手续费的代币才发得出去。某条链的原生 gas 代币用光，是让人连自己卡住的交易都修不了的常见原因；在 WATS 里，所有支持的链上手续费代币都是 ATS，因此你只需盯着一份余额，而不是八份。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>签名前扫一眼网络状况。\u003C\u002Fstrong>在拥堵的日子里，一小时前看着还合适的手续费估算，可能早已低于现行费率。\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch2>WATS 在其中的位置\u003C\u002Fh2>\n\u003Cp>这篇文章里没有什么是人们以为的那种「钱包专属」内容。nonce 属于你在链上的账户，而不是属于你用来签名的那个 App，因此上面这些替换规则在任何钱包里都成立。钱包之间真正的差别在于\u003Cem>你必须持有什么才付得起这次修复\u003C\u002Fem>。WATS 的网络费只收取单一代币 \u003Cstrong>ATS\u003C\u002Fstrong>，而不是各条链的原生 gas 代币：在 EVM 链上通过 ERC-4337 账户抽象实现，并用 LayerZero OFT 在 Ethereum、Arbitrum、Optimism、Base、Polygon、BNB Chain、Solana 与 TON 之间做全链流转。这不是折扣——网络该收多少就收多少，加速交易照样得压过原交易的出价——但它意味着你保持充值的那一份余额就能覆盖各处的手续费，而不会偏偏在某条链上因为原生 gas 代币恰好耗尽而动弹不得。收取的 ATS 会被销毁，把供应量从 1 亿推向 3000 万的下限；机制详见 \u003Ca href=\"\u002Fats-fee\">ATS 费用页面\u003C\u002Fa>。WATS 是第一个也是唯一一个把 ERC-4337 与 LayerZero OFT 的单代币手续费（以它代替原生 gas 收取）同该销毁机制结合起来的钱包。\u003C\u002Fp>\n\u003Cp>另一项值得直说的 WATS 特性是托管方式，因为它决定了谁有权对一笔卡住的交易采取行动。WATS 在四款产品上都是完全非托管的——Chrome Extension、移动 App、Hot Wallet 与 NFC Metal Card。钥匙由你持有，WATS 从不持有任何一把。这里的直接后果是：WATS 没有任何人能伸手进你的待确认交易去修改它，也没有任何人能撤销一笔已经确认的交易。每一次加速、每一次取消都是一笔由你签名的新交易，这正是本文这份清单值得你自己吃透、而不是交给别人的原因。\u003C\u002Fp>\n\n\u003Ch2>结论\u003C\u002Fh2>\n\u003Cp>待确认交易不是丢掉的钱——它是一条停在某个 nonce 上、尚未付够或被堵住的指令，而你唯一的杠杆就是在同一个 nonce 上用一笔付得更多的交易替换它。还想让这个操作发生就加速，不想要了就用一笔发给自己的零值转账取消，先修最小的那个卡住的 nonce，并在下任何结论之前到浏览器上确认究竟是哪个版本落了地。如果反复坑到你的是 gas——错的时间、错的链、错的代币——那就从\u003Ca href=\"\u002Fdownload\">下载页面\u003C\u002Fa>安装 WATS，用一份 ATS 余额覆盖它支持的全部八条链的手续费，同时始终自己掌握钥匙。\u003C\u002Fp>",[10,13,16,19,22],{"title":11,"body":12},"在区块浏览器上诊断","把你的地址粘贴进区块浏览器，打开那笔待确认交易。看两件事：它的 nonce，以及它的 max fee 与网络当前基础费的对比。如果 max fee 低于基础费，说明这笔交易出价过低。如果还有一笔 nonce 更小的旧交易同样处于待确认，那笔才是真正的堵点——永远先修最小的那个卡住的 nonce，因为它后面的一切都在排队等着。",{"title":14,"body":15},"在加速与取消之间做选择","先想清楚你真正要什么。如果这个操作仍然应该发生——那笔付款、那次兑换——就选加速，它会用更高手续费重新广播完全相同的交易。如果你后悔了——地址错了、金额错了、误签了一个授权——就选取消，它会用相同 nonce 向你自己发一笔零值转账。两者都是替换交易，区别只在意图。",{"title":17,"body":18},"执行替换","在那笔待确认交易上使用钱包内置的加速或取消按钮——它会自动沿用相同的 nonce，而这正是绝不能弄错的那个细节。接受一个明显高于原交易的手续费；大多数节点会忽略那些没有把 max fee 和优先小费都提高约 10% 的替换交易。把新的 max fee 设在当前基础费之上、留足空间，免得替换交易自己也卡住。",{"title":20,"body":21},"确认是哪个版本上链了","盯着浏览器，直到一个版本显示为已确认、另一个显示为已丢弃或已替换。不要想当然地认为取消赢了——如果验证者先打包了原交易，它就已经执行了，而基于「它被拦下了」的错误认知继续操作只会把问题放大。只有当替换交易在那个 nonce 上确认之后，原交易才算永久作废，因为一个 nonce 绝不可能被使用两次。",{"title":23,"body":24},"预防下一次","在 max fee 上留出余量，而不是只报一个勉强够用的最低值——在 EIP-1559 之下，这个上限不是账单，因为你实际支付的永远只有基础费加你的小费。永远不要在一笔卡住的交易后面继续发新交易；它们会在 nonce 上排队，只会让善后翻倍。而在繁忙的日子里签名之前，扫一眼当前基础费，让你的估算反映你真正要进入的那个市场。",[26,29,32,35,38],{"q":27,"a":28},"一笔交易能待确认多久？","在 Ethereum 上没有协议层面的超时——一笔待确认交易可以无限期等下去，直到它被打包、被相同 nonce 的交易替换，或者被节点内存池驱逐（节点会丢弃长期滞留或出价过低的交易以释放内存）。驱逐是节点自己的策略，不是保证，被丢弃的交易甚至可能在之后又被重新广播。如果你需要确定性，就自己用加速或取消把它替换掉，而不是等它自然死亡。",{"q":30,"a":31},"取消交易要花 gas 吗？","要。取消是一笔真实交易——在那个卡住的 nonce 上向你自己的地址发出的零值转账——最终确认的那个版本会支付它的手续费。你永远不会为两笔都付费，因为一个 nonce 只能被消耗一次：取消赢了，你付它那笔最低的转账成本；原交易赢了，你付原交易的手续费。任何取消都做不到的一件事，是撤销一笔已经确认的交易。",{"q":33,"a":34},"为什么我的交易突然全都卡住了？","几乎可以肯定是 nonce 出现了断层。EVM 账户严格按 nonce 顺序处理交易，因此排在最前面的一笔出价过低的交易会挡住其后发出的所有交易，无论后面这些付得多好。在区块浏览器上找到最小的那个待确认 nonce，用一笔手续费更高的加速或取消交易替换它——它一确认，后面排队的通常一两个区块内就会自行疏通。",{"q":36,"a":37},"在 WATS 里加速一笔卡住的交易需要 ETH 吗？","WATS 的网络费收取 ATS，而不是各条链的原生 gas 代币，因此替换交易是用 ATS 支付的，而不是在 Ethereum 上用 ETH，或用 Polygon、BNB Chain、Solana、TON 的原生代币——在 EVM 链上，这通过 ERC-4337 账户抽象实现。它改变的是由哪种代币付款，而不是网络收取多少：加速交易照样得以一个有意义的幅度压过原交易的出价，取消也照样是一笔带有真实手续费的真实交易。实际好处是，一份充值好的余额就能覆盖 WATS 支持的每一条链上的手续费，你因为恰好用光了某种特定 gas 代币而动弹不得的可能性也就更小。",{"q":39,"a":40},"WATS 能替我取消或撤销一笔交易吗？","不能，任何真正的自托管钱包也都不能。WATS 完全非托管——钥匙由你持有，WATS 从不持有任何一把——所以不存在任何 WATS 侧的控制手段能伸进你的待确认交易，或把已确认的交易追回来。取消不是撤销：它是一笔由你自己在相同 nonce 上签名的、与原交易竞争的零值交易，而且只在原交易仍然待确认时才有效。一笔交易一旦在链上确认就是最终的，无论你是从哪个钱包签的名。",1786059412355]