A turn is a public, scheduled buy. That makes it something people will try to trade ahead of. This page covers what makes that harder, and what it does not stop.
The threats
- Front-running the buy. Someone sees the turn coming, buys the target first, and sells into the flock's buy.
- Last-second weight. Someone buys a large $MYR balance just before the snapshot to steer the turn.
- Rigged targets. A coin's deployer builds a thin or fresh pool and points the flock at it.
- Sandwiching. A searcher places a buy before and a sell after one of the vault's swaps in the same block.
Mitigations
Deposits wait a full turn
A new deposit needs a full turn before it counts: it counts from the turn after next, and a withdrawal counts immediately. Depositing right before a snapshot does nothing. To steer a turn, you have to keep $MYR deposited, in the open, for at least a full turn. Transfers never touch the compass, so nobody can change your weight but you. See the compass.
Chunked buys
The vault never buys all at once. Each turn's buy is split into 4 chunks: the first in the turn itself, the rest one per block within 20 blocks, each with a 3% slippage cap. A front-runner has to hold through several blocks of exposure instead of one.
Slippage caps
Every chunk has a slippage cap of 3%, measured against the pool's 5-minute average price, not the price in that block. If the price has been pushed further than that, the chunk does not fill and the rest of the buy is cancelled. A sandwich that moves the price too far simply fails.
Small sizes
A turn uses at most 5% of the vault. A smaller order is worth less to anyone trying to trade ahead of it.
Eligibility
Targets need a pool on Uniswap v3 WETH pools holding at least 6 ETH, at least 24 hours old. That rules out the freshest and thinnest traps. See eligible targets.
A pushed price earns nothing
Every trade compares the pool's current price with its 5-minute average. More than 1% apart (for a buy: more than that above the average), and the trade waits and the call pays no reward. Pushing the price, calling the turn and pushing it back in one transaction earns nothing, and uses nothing up: a turn whose buy runs into a pushed price reverts and stays open for the next caller. A dodged exit can be retried by anyone at any time with pokeExits().
Tie-breaks
On an exact tie, the earliest-set weight wins. A last-moment compass change cannot win a tie.
What these do not stop
- Anyone can see the leading target. Compasses are public. A trader can buy the likely target well before the turn and sell into the flock. Chunking and caps limit how much they take, not whether they try.
- Patient manipulation. Someone who builds a pool, waits past the age check, adds liquidity and holds $MYR for a turn can still steer the flock.
- Exit timing. Exits run at a turn call. Anyone can predict when a position will hit its stop or clock and trade around it.
- Thin pools after entry. Liquidity can be pulled after the flock buys. The stop then sells into a thin pool, at a worse price.
Front-running is one of the listed risks. Read them before you point.