How bout dat Convex?
TA traders rejoice at a sudden 56% jump! Was it a chart pattern?
We’re not traders, so we can’t offer much in the way of price discussion. Allegedly this hit Binance first, and we’d be interested in hearing from any chad traders what tools they use to sniff out such off-chain activity. What we can do is use Etherscan to track the subsequent activity on-chain.
The transaction where it first hit the chain at block 14306996. In this transaction user 0x012144ba349d6ae5b68581b29ea4d42b1f43fdb7 used the Curve CVXETH pool to transact exactly 250 $ETH ($738K) for $CVX. In block 14307017, they’d buy another 854 $ETH ($2.51M) more. As of 14307108 they’d take their 162K $CVX balance and another 4000 $ETH ($11.7M) and stake the whole thing into CVXETH and Convex.
Who is the mysterious whale? We’ve seen such sudden market shaking moves before when Tetrachungus accumulated large amounts of $CVX, however such moves are associated with other addresses. Perhaps an alternate address?
I’m also not 100% clear on the benefit of trading ETH to CVX just to deposit both into the same CVXETH pool — wouldn’t the net effect be the same just depositing 5000+ $ETH directly instead of converting a piece into $CVX first? The CVXETH price oracle works on an exponential moving average, so it wouldn’t suddenly shift the pool price. If it was a clever arb, we’d expect they wouldn’t use such round numbers of $ETH in their transactions but some more precise numbers to maximize the yield. Curious to hear math geniuses weigh in here.
Perhaps it’s such a small amount for a whale, it’s no different than when I fumble a few coins to make change for a dollar.
Wow, what useless commentary! Hey, I’m not done yet! We can offer something useful.
Recently we finally learned that Alchemy gives you free archive nodes, which can be used to reconstruct historical on-chain data using Brownie (h/t @chanho). This means we can look back at how the pool reacted in realtime to the above transactions. It’s shockingly easy once you set up your Alchemy account, which is also easy.
from brownie import *
def main():
cvxeth_addr = "0xB576491F1E6e5E62f1d8F26062Ee822B40B0E0d4"
cvxeth = Contract(cvxeth_addr)
first_block = 14306992
last_block = 14307192
interval = 1 # can skip blocks
eth_price = 3000 # hard coded for simplicity
steps = (last_block - first_block) // interval
x_data = []
y_data = []
y2_data = []
for i in range(steps):
block = first_block + (i * interval)
cur_price = cvxeth.price_oracle(block_identifier=block)
cur_scale = cvxeth.price_scale(block_identifier=block)
x_data.append(block)
y_data.append(cur_price / 10 ** 18 * eth_price)
y2_data.append(cur_scale / 10 ** 18 * eth_price)
plt.figure(figsize=(15, 8))
plt.plot(x_data, y_data, label="Price Oracle")
plt.plot(x_data, y2_data, label="Price Scale")
plt.legend()
Decorate it with a few plt.axvline(x=…)
at relevant blocks, and we can see the exact effect on the CVXETH v2 pool oracle and scale price adjusting in realtime.
That last one really pushed the price oracle, and the price scale also started moving shortly thereafter.
You’ll note this script can be easily modified and adjusted to examine nearly any on-chain events. It’s always fascinating to see just how quickly Curve v2 pools catch up to price movements.
In the rare event you witness such a god candle on a CEX, could you arb it using a v2 pool?
Well, you’d have to be ready for it. As you can see from the above graph, the opportunity disappears in about 200 blocks (~20 minutes). We presume you’re trying to yield farm with your millions of dollars of ETH, as opposed to having it sit idle at the ready just in case such an arb occurs (you would probably make more from staking than from the arb). At any rate, this means you have to do the following in rapid succession:
Identify the arb exists
Unstake your dry powder
Buy the underpriced asset in the v2 pool
Transfer the asset to the CEX
Sell the asset at the high price
Restake your dry powder
As you can see from the above graph, the window of time to capitalize on a massive CEX god candle is maybe a couple of hundred blocks, so you have to move within about 20 minutes. The real choke point is 4, as a CEX would presumably wait for at least 6 blocks for a confirmation. However we see such God Candles tend to dissipate really quickly, especially on centralized exchanges, so the opportunity is perhaps too short lived.
A better opportunity would be to target price discrepancy on other AMMs, but they tend to have smaller liquidity so the arb is not so substantial. It’s nonetheless entirely possible, and based on the rapid response of pool activity, it’s in fact plausible other traders are already doing just this. There may still a lot of free money available in cryptocurrency, but this may not necessarily be your opportunity.
Q: why does directly short perp on cex like ftx to lock the profit?