Coffer Docs
Overview

Range Management

Manager powers and limits on pricing updates

A range manager can adjust virtual balances and weights, changing prices and inventory exposure without withdrawing LP positions. It changes pricing, not real reserves.

Active management requires an appointed manager, an enabled role and a service submitting transactions. A configured role alone does not automate the pool.

Who controls the manager

The pool admin appoints the manager and sets its limits. Updates require the manager's signature and an enabled pool. The protocol admin can disable the manager, but cannot appoint a replacement through that override.

Checks on an update

range_manager_update accepts sparse balance and weight changes. Each changed value must match an expected old value; stale proposals fail instead of overwriting intervening swaps.

The relative step limit, in basis points, is:

abs(new − old) × 10,000 <= configured_max_change × old

A zero step limit permits no change. Updates must also respect minimum intervals, positive virtual balances, valid token indices and unique entries. Weights must remain within 1%–99% and total 100%.

For changed virtual-balance slots with positive actual reserves:

min_leverage_bps <= (new_virtual / actual) × 10,000 <= max_leverage_bps

A zero bound disables that side. Slots with zero actual balance are skipped. The band is checked on manager updates; it is not a continuous invariant after every swap.

What limits do not promise

Small permitted steps can accumulate into a large change. Per-update and frequency limits are not lifetime limits on pricing changes.

On this page