ArcYield
Launch app

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

yield collected, weights recapped at 15%

after

Compound

harvested yield buys 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. During the bootstrap phase the harvest step returns zero, because the bootstrap executor holds no positions; the tip and the epoch clock work exactly as described.

Keepers

There is no privileged keeper. The first caller of rebalance() in each epoch receives a fixed tip of 0.05 USDC from the vault. The tip is best-effort: if the vault has no idle USDC it still rebalances, just without paying. To run one, watch lastRebalance + 1 day and submit; the only cost is gas on Arc, which is priced in USDC and designed to stay around a tenth of a cent.

Weighting math

Each rebalance recomputes target weights in three passes:

  1. Snapshot every constituent's float from the registry.
  2. Set raw weight = float / total float (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; whatever cannot be placed stays in USDC.

Trades then move the portfolio toward target, and harvested yield is folded into the buys. Weights therefore drift intraday and snap back once per epoch.