CoW Swap 的交易流程和大多数 DEX 有一个根本区别:你签的不是一笔链上交易,而是一个链下订单意图。这意味着按下"确认"之后,资金不会立刻移动,订单会进入一个由求解器竞争的批次拍卖,直到有人找到合适的价格和路径把它结算上链。
理解了这一点,授权、签名和成交核验三个环节的判断逻辑就清楚了。
授权:先分清你要批准的是谁
首次用某个代币在 CoW Swap 交易时,需要先授权。这里的授权对象是 Vault Relayer 合约(GPv2VaultRelayer),而不是结算合约。Vault Relayer 负责在订单被结算时把你的卖出代币从钱包拉到结算合约。
CoW Swap 默认申请的授权额度是 "无限"(unlimited)。这样做的好处是以后交易同一代币不需要重复授权,省 gas。代价是如果 Vault Relayer 合约出问题,或者你的钱包私钥泄露,攻击者理论上可以转走你该代币的全部余额。
如果你不打算长期频繁交易同一个代币,或者对无限授权有顾虑,可以在钱包弹出的授权交易里把额度改成单次交易需要的数量。每次交易前重新授权会多花一笔 gas,但暴露的上限更小。授权完成后,可以用 revoke.cash 查看和撤销已有的授权。
一个需要知道的分支:部分代币支持无 gas 授权。 USDC、DAI、COW 等代币支持 EIP-2612 签名授权,你不需要持有 ETH 就能完成授权,CoW Swap 会自动检测并引导这个过程。但这个功能不支持智能合约钱包(如 Safe)。
签名订单:链下签名,签错没有链上回退
授权确认后,点击 Swap 会弹出确认界面,让你核对报价、滑点容忍度等信息。确认后,钱包会提示你签署订单。
这个签名是链下的。 你签的是一条消息,表示"我愿意按这些条件卖出 X 换至少 Y"。订单参数一旦签名提交到订单簿 API,就无法更改。如果参数填错了,你只能取消订单重新创建一个。
签名方式根据钱包类型不同。普通 EOA 钱包通常用 EIP-712 结构化签名,钱包界面会显示订单的关键信息(卖出什么、买入什么、有效期等)。如果你用的是 Safe 等智能合约钱包,签名走的是 PreSign 或 ERC-1271 路径,流程和普通钱包不同。
签名前需要核对的一个关键参数:receiver 地址。 CoW Swap 官方文档明确提醒,存在假冒 CoW Swap 的网站,它们会偷偷把 receiver 改成自己的地址,导致你的买入代币被发送到攻击者手中。正常应该显示为 0x0...0 或你签名地址本身。如果你没有手动设置过自定义接收地址,但界面显示了一个陌生的地址,不要签名。
成交核验:链下订单簿和链上结算分开看
签名提交后,订单进入 CoW Protocol 的链下订单簿,等待求解器执行。你可以在 CoW Swap 界面右上角点击钱包地址,打开活动面板查看订单状态。
订单状态有几个可能的值,需要区分清楚:
Open:订单在订单簿中,等待求解器匹配。
Filled:已执行,资金已转移。这个状态下可以点击查看对应的链上结算交易。
Partially Filled:部分成交。限价单默认是部分可成交的,可能先成交一部分,剩下的小额余额因为不够覆盖结算 gas 成本,求解器可能不再执行。
Expired:超过有效期仍未执行,订单自动失效。
Cancelled:你手动取消了订单。
最直接的核验方式是把订单 ID 拿到 CoW Explorer 上查。CoW Explorer 是 CoW Protocol 官方的区块浏览器式界面,可以按订单 ID 或你的钱包地址搜索。订单详情页会显示执行价格、实际成交金额、以及对应的结算交易哈希(Etherscan 可查)。
这里有一个容易被忽略的区别: 订单显示"Filled"不代表钱已经到你钱包了。真正到账的标志是结算交易在链上确认,且买入代币已经转入你的地址。CoW Explorer 的订单详情里有一个 "To"字段,显示的是接收买入代币的地址。如果这个地址是你自己的钱包,结算确认后就到账了。
限价单不成交的常见原因
如果你挂的是限价单,市场价已经碰到你的价格但订单迟迟不成交,最常见的原因是手续费还没被覆盖。CoW Protocol 的限价单不预收手续费,而是等市场价格超过你的限价、并且高出部分足够覆盖结算 gas 成本之后,才会执行。订单面板里的 "Executes At"列显示的就是包含手续费在内的实际触发价格,比你的限价更直观。
另一个可能的原因是 fill-or-kill 设置。限价单默认是部分可成交的,如果你在设置里改成了 fill-or-kill,订单必须一次性完全成交,小额或流动性差的交易对可能很难找到求解器一次性匹配全部数量。
参考资料
- CoW Protocol Documentation·Market orders (swap),页面未标明更新日期;核查日期:2026-10-03。
- revoke.cash·官方主页,页面未标明更新日期;核查日期:2026-10-03。
- 登链社区·深入探讨 CoW 协议签名方法 (第一部分),页面发布或更新日期:2026-02-26;核查日期:2026-10-03。
- CoW Protocol Documentation·By order,页面未标明更新日期;核查日期:2026-10-03。
- CoW Protocol Documentation·Viewing orders,页面未标明更新日期;核查日期:2026-10-03。
- CoW DAO·Why Your CoW Swap Limit Order Hasn't Filled Yet,页面发布或更新日期:2026-09-11;核查日期:2026-10-03。



