Asset Acquisition
How collected fees become assets in the Stockpile.
Acquisition is mechanical. The reserve engine takes a settled fee balance and places orders against the configured target weights, in the configured cadence, without discretion.
Order construction
tsWeights come from src/config/protocol.ts and sum to 100
for (const asset of targetBasket) {
order[asset] = settledFees * (asset.weight / 100);
}Drift
Because there is no rebalancing, actual weights drift from targets as prices move. Drift is corrected only by directing future acquisitions, never by selling. The Stockpile view shows target and actual side by side so drift is visible rather than hidden.