$ cat writeup.md…
$ cat writeup.md…
kitctf
Task: a no-fee constant-product DEX (3 tokens, 3 tiny pools) where bot traders continuously dump 50% of their largest holding, and the player is the MEV coordinator who relays their signed swaps; goal is to push MANAGER's APL balance to >=500/1000. Solution: relay trader txs first (latency-safe to avoid deadline reverts that brick the instance), then run triangular cross-pool arbitrage (APL->BAN->CHY->APL) to exploit the huge trader-induced price imbalances, multiplying ~24 APL into 468 in one cycle.
$ cat /etc/rate-limit
Rate limit reached (20 reads/hour per IP). Showing preview only — full content returns at the next hour roll-over.
A "fruit market" is a no-fee constant-product AMM with three ERC20 tokens (APPLE/BANANA/CHERRY) and three tiny liquidity pools. Bot "traders" continuously dump 50% of their largest holding into these tiny pools, creating massive cross-pool price imbalances. The player is hired as the "trade transaction coordinator" — the relayer that broadcasts the traders' already-signed swaps. The win condition is simply balanceOf(APL, MANAGER) >= 500 (out of a total APL supply of 1000), starting from only 10 APL.
The intended exploit is triangular (cross-pool) arbitrage: cycle a balance APL→BAN→CHY→APL. Because the three independent no-fee pools drift to wildly different relative prices under the traders' constant dumping, a single triangular cycle multiplies APL dramatically (one winning cycle: ~24 APL → 468 APL). The critical operational trick is to relay the trader's tx first, before doing your own swaps, so you never blow the trader's short deadline (which would brick the instance).
We are hiring a trade transaction coordinator (m/f/x) for our bleeding-edge fruit market — our blockchain market place enables the fastest and safest way for trading fruits in town! As our trade transaction coordinator, you take trades from our customers and execute them on-chain before they expire. Your neutrality towards all customers makes our market the ultimate choice for all professional fruit dealers.
The "neutrality towards all customers" line is ironic: as the coordinator you sit in a privileged MEV position — you see and relay every customer trade and can interleave your own transactions around them.
Provided tarball: Dockerfile, start.sh, eth/ (MiniDex.sol+.json, ERC20Fixed.sol+.json), html/ (static client), python/ (main.py Flask app, trader.py, utils.py).
...
$ grep --similar