Trust

Recomposition

How a live series can change, and what it means for holders.

The issuer can change the composition of a live series in place with update_set. This is the one issuer power that touches holders' claims.

Why it exists

Companies change. A segment gets reported separately, a business is spun off, a new one is acquired. The default answer is a new series with corrected definitions: nothing changes for anyone who does not act, and the old series keeps redeeming at par. But a new series abandons the existing partials, pools, and integrations. Recomposition is the lighter alternative when those should survive.

Adding a partial

When a partial is added to a live series with S sets outstanding:

  1. The new mint is initialized with the same recipe as at creation.
  2. Exactly S units of the new partial are minted to a recipient the issuer names.
  3. The issuer commits, off-chain, to distribute those units pro-rata to holders of the parent partial whose scope was split.

Warning. Until you hold the new partial, you cannot redeem. Every redemption requires one unit of every partial in the current composition. The distribution window is the issuer's obligation, not a program guarantee.

Retiring a partial

When a partial is retired, it is abandoned in place:

  • It leaves the composition. Redeem stops requiring it.
  • Its supply and authorities are untouched. Nothing is burned.
  • Holders keep a token that has no claim on the backing. That claim flows to the remaining partials.
  • It can never re-enter a set.

What every recomposition does

  • Requires the caller's expected_revision to match SetCore.revision, so a stale payload can never land on a newer composition.
  • Rewrites the per-set deposit cap.
  • Bumps revision by one and emits SetUpdated.
  • Never touches the fee cap, the underlying, the vault, the fee state, or the counters.

Anything that indexes a set should key on (set_core, revision) and re-read the composition from SetCore whenever it changes.

Deposit cap

The issuer also sets each series' deposit cap, in raw underlying. A cap of 0 means uncapped. Lowering the cap below sets_outstanding only blocks new mints; it never affects redeem.