YieldETF
Explore vaults

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:

  1. Snapshot every constituent's locked-pool depth from the registry.
  2. Set raw weight = depth / total depth (or the vault's own metric for YLD1).
  3. 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.