Rebalancing
One epoch is 24 hours. Anyone can turn the crank, and the caller gets paid.
The epoch
T+0h
Epoch opens
NAV marked, deposits and redemptions continue
T+24h
rebalance() callable
any keeper may call, first caller earns the tip
call
Harvest + reweight
v4 fees collected, weights recapped at 15%
after
Compound
harvested fees buy the basket, epoch counter advances
Rebalancing is time-gated, not scheduled: once 24 hours have passed since the previous rebalance, rebalance() becomes callable and stays callable until someone calls it. In practice keepers race it within seconds.
Keepers
There is no privileged keeper. The first caller of rebalance() in each epoch receives a fixed tip of 0.002 ETH from the vault. The tip is best-effort: if the vault has no idle ETH it still rebalances, just without paying. To run one, watch lastRebalance + 1 day and submit; the only cost is gas on Robinhood Chain, which is fractions of a cent.
Weighting math
Each rebalance recomputes target weights in three passes:
- Snapshot every constituent's locked-pool depth from the registry.
- Set raw weight = depth / total depth (or the vault's own metric for YLD1).
- Cap each weight at 1,500 bps and redistribute the excess pro rata over uncapped names, repeating until nothing exceeds the cap.
Trades then move the portfolio toward target, and harvested fees are folded into the buys. Weights therefore drift intraday and snap back once per epoch.