Kelp 事件后的 aWETH 负溢价套利
记录一次发生在 Arbitrum 上的 aWETH 负溢价窗口,以及我如何在 Aave 挤兑时用闪电贷吃到价差。
市场最有意思的时候,往往不是价格最平静的时候,而是大家开始怀疑“这个东西到底还能不能兑出来”的时候。
这次机会出现在 Arbitrum 的 Aave WETH 池子。前提很简单:Kelp 事件之后,市场开始恐慌,Aave 上的 WETH 流动性被快速抽干,aWETH 这种本来应该贴着净值交易的资产,在二级市场里被砸出了明显折价。
我一开始并不是把它当成一个普通的价格机会在看。我更关心的是另一件事:Aave 虽然紧,但并没有完全失去兑付能力。只要池子里还有底层 WETH,aWETH 仍然可以按 1:1 提出来。
这一步很关键。因为只要这个锚还在,二级市场上的折价就不再只是“恐慌”,而是一个可以被兑现的价差。
我的判断
当时市场里其实同时存在两个事实。
第一个事实是,很多人只想先卖掉 aWETH,不想继续承担 Aave 池子什么时候恢复、能恢复多少的风险。所以在池子里,aWETH 被砸到了低于 1 WETH 的价格。
第二个事实是,Aave 的兑付能力虽然被挤压,但并没有归零。也就是说,只要能在市场里买到足够便宜的 aWETH,再去 Aave 按面值提出 WETH,中间那一截就是确定性的利润。
这个套利并不复杂,核心就是一句话:
先在市场上买折价的 aWETH,再按 1:1 把它提成 WETH。
真正的难点不在理解,而在执行。因为这种窗口出现得快,消失得也快,资金规模、池子深度、Aave 剩余可提取流动性、外部可借流动性,都在同时变化。你不是看到折价就一定能赚到,必须在流动性还没被吃干净之前把整条路径打通。
我是怎么做的
我用的是一条很直接的路径:
先借一笔 WETH,去市场里买折价的 aWETH,然后立刻去 Aave 按 1:1 提出底层 WETH,还掉借来的那部分,剩下的就是利润。
这条路径的好处在于不需要我先准备大额本金。真正限制规模的,不是我手里有多少 WETH,而是当时市场上有多少折价 aWETH 可以买,以及 Aave 里还剩多少 WETH 可以提。
从结果上看,这个窗口在两个不同 fee tier 的池子里都出现过,说明恐慌并不是只压在某一个局部流动性点上,而是整个 aWETH/WETH 交易结构都发生了错位。
如果把闪电贷这件事讲得更直白一点,它并不是“额外凭空赚出一笔钱”,而是把原本需要先准备的大额本金,压缩进了一笔交易里即时周转。
正常情况下,如果我想吃这个价差,我至少要先准备一大笔 WETH。先拿这些 WETH 去市场上买折价的 aWETH,再把 aWETH 提回 WETH,最后利润才会回到我手里。问题在于,这种窗口往往只存在很短时间,等你手动搬完资金,机会可能已经没了。
闪电贷解决的就是这个问题。它允许我在同一笔交易里临时借到一大笔 WETH,前提只有一个:这笔钱必须在交易结束前还回去。于是整件事就变成了一个原子化过程:
- 先临时借入
WETH - 立刻用这笔
WETH买折价的aWETH - 再把买到的
aWETH立刻按面值提成WETH - 用提出来的
WETH归还借款 - 交易结束时多出来的那部分,才真正属于利润
如果中间任何一步不成立,比如市场上的 aWETH 不够便宜、Aave 已经提不出足够的 WETH、或者最终剩下的钱不够覆盖借款,那么整笔交易就不会成立。这样反而很好,因为它天然避免了“先买了再想办法退出”的风险。
拿我最大的一笔来说,逻辑其实就是:
- 临时借入接近
179.49 WETH - 在池子里花掉约
179.47 WETH - 买到
180 aWETH - 再把这
180 aWETH提成180 WETH - 先还掉借来的部分
- 留下
0.5292397462808477 WETH利润
写成伪代码,大概就是下面这个意思:
// mock code,只是示意结算顺序,不对应真实实现
function arbitrage() {
const borrowedWeth = flashLoan(WETH);
const boughtAWeth = swapWethForDiscountedAWeth(borrowedWeth);
const redeemedWeth = redeemAWethToWethOnAave(boughtAWeth);
repayFlashLoan(borrowedWeth);
const profit = redeemedWeth - borrowedWeth - fees;
if (profit <= 0) revert();
sendProfit(profit);
}
真正限制这条路径规模的,其实有三层:
- 市场里有多少折价
aWETH可以买 - Aave 里还剩多少
WETH可以提 - 外部还能借到多少
WETH来瞬时放大这笔交易
所以这不是一个“看到折价就无脑冲”的机会,更像是一个不断变化的容量问题。你每次能打多大,不取决于胆子,而取决于那一刻这三个池子同时还能不能配平。
最大的一笔
我最想记下来的,就是这笔交易:
0xf1227f61fad9f8e6c28aa559b7a8871e97c3fe634fcc66d3ce2dc6fa70931797
这笔发生在 2026-04-27 00:49:22 UTC。
交易里我实际花了大约 179.47076025 WETH 去买 180 aWETH,随后把这 180 aWETH 按面值提出成 180 WETH。扣掉借入和归还的部分,最终这笔交易打回钱包的利润是:
0.5292397462808477 WETH
换句话说,这一笔本质上是在市场里用不到 180 WETH 的成本,拿回了完整的 180 WETH 兑付价值。单笔利润率看起来不算夸张,但对于这种几乎没有方向风险、窗口又短的交易来说,已经足够好了。
另外几笔有代表性的交易
除了最大的一笔,前几天还有几笔也很典型:
-
0xe60dbf8961f8a72155f3326729a79112a300b363aa30d3c63f444bdd8cbe78ba这笔发生在2026-04-22 22:05:38 UTC,最终利润0.21114134534655354 WETH。 -
0xacc2f82fa720c46b401217cd924974b608c4ecf142fcd6324e5d972238874334这笔发生在2026-04-25 09:32:56 UTC,最终利润0.10597820619732468 WETH。 -
0x7face7cc51a1c5636542f43463db05a1c546b16403d9af31eff8ab0dfe433237这笔发生在2026-04-22 06:13:38 UTC,最终利润0.01762170678621381 WETH。
这些交易放在一起看,我更愿意把它理解成另一种结构:不是市场在反复给出新的错价,而是底层流动性始终处在紧缺状态,只要池子里短暂释放出一点可用 WETH,就会立刻变成争抢目标。
我做的事情,本质上不是等着“折价一次次重新出现”,而是在这段流动性持续紧绷的时间里,尽量做到第一个把刚释放出来的可用流动性提走。
这一周到底赚了多少
我按钱包 0x4F461e7f7691512419b791993bA716F6f3Ead893 相关套利交易做了一次回看。
如果只看 2026-04-22 到 2026-04-27 这不到一周的套利窗口,可确认利润一共是:
1.41363195 WETH
如果按日期分布看,利润主要集中在下面几天:
| 日期 UTC | 套利收入 |
|---|---|
| 2026-04-22 | 0.35440250 WETH |
| 2026-04-23 | 0.36625202 WETH |
| 2026-04-24 | 0.00604374 WETH |
| 2026-04-25 | 0.11383476 WETH |
| 2026-04-26 | 0.04385919 WETH |
| 2026-04-27 | 0.52923975 WETH |
这组数据也说明了一件事:窗口不是线性衰减的。它会在恐慌、补流动性、再次挤兑之间来回摆动,所以真正重要的不是“等一个完美时点”,而是持续盯住结构有没有重新错开。
为什么这种机会能成立
很多人会把这类交易理解成“单纯捡便宜”,但我觉得更准确的说法是:
这是一次典型的赎回价值和交易价格暂时脱锚。
aWETH 的本质不是普通山寨币,它本身有明确的链上赎回逻辑。只要底层池子还没死,面值就还在。市场真正交易的,是“现在卖掉更安心”这件事本身。于是,在极端时刻,价格会先脱离锚,再在兑付逻辑还活着的时候留下空间。
所以这类机会最重要的不是猜方向,而是判断锚有没有真的断。
如果锚断了,折价可能只是风险重定价。
如果锚没断,折价就是利润来源。
我当时最在意的,也正是这个验证本身:这不是一张废纸,而是一张在极端情绪里被短时间错杀的兑付凭证。
激发器层面的意义
这次还有一个我自己很在意的点:真正赚到钱的,不只是套利公式本身,而是机会出现后能不能足够快、足够稳地打出去。
这种窗口的持续时间很短,信号又很杂。市场表面上看只是 “aWETH 折价了”,但真实交易里,你还要面对很多问题:
- 什么时候池子里真的补回了可提取流动性
- 哪种补流动性动作是真机会,哪种只是噪音
- 同一个信号会不会被重复触发
- 发单时会不会自己和自己冲突
- 广播链路会不会在关键时刻抖一下
所以我在执行层面其实花了不少精力做“激发器”优化。这里我先只讲执行思路,不展开具体实现;后面如果合适,我可能会再单独公开这部分代码细节。能先讲清楚的结论只有一个:
这种套利拼的不只是判断对不对,更拼谁先确认、谁先下手、谁在噪音里不犯错。
也正因为如此,这次赚到的 1.41363195 WETH,我更愿意把它理解成一次完整的流动性事件交易,而不只是几笔零散的链上价差。
结尾
如果把这件事压成最短的一句话,那就是:
Kelp 事件之后,市场把 aWETH 当成了风险,把 Aave 的剩余兑付能力当成了不确定性;而我做的,只是先确认这个兑付锚还在,然后在恐慌最重的时候,持续把折价换回面值。
这类机会不会天天有,但每次出现,市场都会把同一个问题重新问一遍:
到底是在交易价值,还是在交易恐惧。
这一次,答案显然是后者。