兑换退款到底要多久?用自己的订单和内存池实测
实测:601 秒入金窗口、24 小时人工台、26.2 MvB 内存池——退款慢在三段时钟。附 119 笔订单与今天链上数据的完整账。
今天 14:05:01 UTC,我在 veilswap.io 下了一笔 100 USDT-TRC20 → XMR 的单子,只为看时钟怎么走。接口返回了入金地址,validUntil 是 2026-10-29T14:15:02.483Z——601 秒,而不是站内超时规则给的 30 分钟。这个差值,就是「退款要多久」这个问题的起点。退款不是一个按钮,而是三件事:上游做决定、上游发一笔新交易、链上确认,各自跑在自己的时钟上。我们自己的订单表也能对上:9 月 24 日以来 119 笔,19 笔完成、94 笔过期、5 笔失败,只有 1 笔退款;那一笔从建单到状态翻成「已退款」用了 1,506 分钟,25 小时 06 分。 (XMR 换 USDT 退出路线)
三个时钟,不是一个
退款是上游从自有库存里新发出的一笔交易,退回到你填的地址。入金那笔不会被「撤回」,它还躺在原来的地方。所以你实际感受到的墙钟时间,等于「决定」(这单退不退、按什么价、谁来批)加「广播」(上游出金系统建交易、签名)加「确认」(矿工或验证者打包)。前两段都发生在上游内部,你看不见;只有最后一段在公链上。这也是为什么「区块链慢」这个解释,大多数时候是错的。
第一个时钟:决定,以小时计
入金窗口是你能看见的那一段。固定汇率的池子把报价冻结 10 分钟,并要求金额完全一致;FixedFloat 自己的 FAQ 写明:付款晚到或金额不匹配,会提示你「退款,或按市价继续兑换」。站内规则是建单起 30 分钟(EXPIRE_MS)置为过期,但前提是上游仍报「等待入金」;扫描节流 2 分钟一次,迟到入金回看 6 小时,上游已经查不到的单 24 小时强制作废。上游一侧,ChangeNOW 的 FAQ 把身份核验未通过后的退款写成「24 小时内、扣除网络费」。这是运营承诺,不是链上承诺。我们那笔 25.1 小时,正好落在「24 小时工作台」的量级,而不是「10 分钟窗口」。 (门罗隐私原理)
第二个时钟:内存池不关心这是谁的退款
14:02 UTC,比特币内存池 67,743 笔、26.20 MvB。其中 85.8% 的体量出价低于 0.5 sat/vB,≥1 sat/vB 的只有 3.68 MvB,占 14.0%。也就是说,按 1 sat/vB 发的退款,要排在 22.52 MvB 后面;按最近区块中位 1.56 MB 算,约 14 个块。最近 15 个块(973,679 到 973,693)填充率全部超过 99%,间隔中位 6.7 分钟、均值 12.8 分钟,最长一个 50.4 分钟,14 个间隔里有 2 个超过 30 分钟。按这个节奏,14 个块是 1.5 到 3 小时,而这还只是「进第一个确认」。同一刻的推荐费率是 6 / 5 / 4 / 2 / 1 sat/vB——这个梯度说明队伍是真的,多付钱确实能买到位置。
退款要花多少钱
退款不免费,而且在各条链上不是一个量级。比特币一笔典型的 1 进 2 出退款约 141 vB:1 sat/vB 是 141 聪,按 80,249 美元折 0.11 美元;6 sat/vB 是 846 聪、0.68 美元。TRON 侧,区块 87,536,451 共 653 笔交易,其中 109 笔带能量消耗:85 笔正好 64,285 能量,19 笔正好 130,285。按 getEnergyFee=100 sun,分别是 6.4285 与 13.0285 TRX,加 345 字节带宽,实付 6.7735 TRX(2.25 美元)或 13.3735 TRX(4.43 美元,TRX 0.331535)——贵的那一档,正是收款方 USDT 余额槽位需要从零写入时踩到的。门罗一笔 1,534 字节、按 20,000 piconero/字节算是 0.00003068 XMR,约 0.018 美元。FixedFloat 写得很直白:退款是「发来的金额减去网络费」,并且按当时网络费发送——也就是说,这笔成本按最贵那一刻的市场价扣,从退回来的钱里扣。 (XMR 换 USDT 退出路线)
第三个时钟:地址决定时钟还能不能走
14:04 UTC 我测了两种失败。下单体里没有退款地址,返回 400:「missing_refund_address: a refund address is required — if the swap fails, funds can only be returned there」。退款地址填 TXyzNotARealAddress123,返回 400:「invalid_refund_address: not a TRON address (expect T followed by 33 base58 characters)」。两个字段都在钱动之前就校验——这正是重点:退款地址是订单的必填项,不是可选的贴心设计。今天目录 515 个资产、74 条网络,其中 6 个需要额外备注:XRP、USDC-Algo、XLM、HBAR、ATOM、以太坊上的 NEIRO。退款只回原资产、原网络;换一条网络的地址不是退款,是第二次丢币。ChangeNOW 的 FAQ 还补了一刀:发到 SegWit BTC 地址的币只能按 BTC 退,LTC、BCH、BSV 发过去就退不回来;低于最小额的入金,不保证退款。 (转错网络如何找回)
我们那笔 25 小时退款的时间线
把同一件事摊成时间轴,数字是实测的。T+0:建单,10 分钟入金窗口(实测 601 秒)。T+10 分钟:窗口关闭,上游的选项变成「退款」或「按市价继续」。T+30 分钟:站内本地规则置为过期,但前提是上游仍报等待入金,而扫描每 2 分钟才跑一次。T+6 小时:迟到入金回看结束,再晚到的钱只能走人工。T+n 小时:上游风控或人工复核,退款排队,文档口径是 24 小时。然后是按当时费率广播,今天这种拥堵下 1 个确认最快也是几十分钟。T+25 小时 06 分:我们库里那一行翻成 refunded,上游状态是 REFUND。
六件能缩短等待的事
1)打款前就把退款地址填好,网络必须和入金资产一致。2)在窗口内发足额;少发会把一笔兑换变成一次退款决定。3)留住订单号和入金哈希——哈希是唯一能证明「钱到了」的东西。4)过期后不要往同一地址再发一次:回看只有 6 小时,第二笔只会让记录更乱。5)不要「再开一单来修」,那等于多付一次手续费、多一条记录。6)需要备注(memo/tag)的资产,退款地址同样需要备注。 (转错网络如何找回)
把墙钟压成一句话:决定以小时计,广播以分钟计,确认不可预测——而链上只是最小的一段。所以一笔退了一天的单子,不能证明服务坏了;一笔十分钟退完的单子,也不能证明它快,它只证明这单被谁先捡了起来。给个量级(14:04 UTC 报价,以页面实时价为准):100 USDT-TRC20 → 0.14688512 XMR(合 680.80 美元/XMR,现货 597.82),1 XMR → 579.321202 USDT,0.01 BTC → 1.31526425 XMR(131.52642 XMR/BTC),走廊下限 19.737089、上限 175,575.932493 USDT。 (XMR 换 USDT 退出路线)