Redemption and claims
Burn shares into separate constituent claims, choose a fixed receiver, and understand partial token failures.
Direct redemption has two stages: burn shares to reserve the underlying tokens, then claim each nonzero constituent. This separation allows healthy constituents to remain claimable when another token cannot be transferred.
1. Request redemption
previewRedeem calculates each output from the active reserves and the share supply, rounding down in raw token units. requestRedeem checks the submitted constituent minimums and deadline, burns the caller’s shares, and records a claim for the selected receiver.
The reserved amounts move from active reserves into pending claims. The request makes no external constituent-token calls or balance reads. A broken balanceOf or frozen token therefore does not, by itself, prevent this accounting step.
The request returns a claim ID and emits a RedemptionRequested event containing the receiver and amounts. Preserve the basket address, network, and claim ID to identify the withdrawal later.
Each output can round down to zero. A request is rejected if all outputs are zero, or if any output is below its submitted minimum. Only shares held by the caller are burned.
2. Claim the underlying tokens
Call claim(claimId, tokenIndex) for each nonzero amount. The receiver was fixed when redemption was requested; a claim caller cannot change it.
Anyone may submit a claim transaction, but the tokens always go to the recorded receiver. A successful claim clears that token’s claim amount, reduces its pending liability, and verifies the exact transfer. The same constituent amount cannot be claimed twice.
If a claim fails, that transaction reverts and its recorded amount remains available for a later attempt. A failure is not a successful payout or a haircut.
Token failures remain separate
Before paying a claim, the selected token must cover all of its active reserves and pending claims. If it is short, every claim for that token is blocked, even when the balance could cover one small withdrawal. This prevents early claimants from consuming tokens owed to later claimants.
Other constituents are checked independently. For example, if token A is frozen and token B is healthy, the holder can still claim B. A can be retried if its transfer behavior and coverage recover.
The contracts support exact-transfer, non-rebasing tokens. Their checks do not prevent an issuer from later freezing addresses, altering token behavior, or reporting misleading balances.
Direct redemption and selling for ETH
An ETH sale through the native router combines redemption, all constituent claims, swaps, and the ETH payment into one transaction. Every required leg must work; any failure rolls back the complete sale, including the share burn.
Direct redemption keeps the independent claim path available. It returns constituent tokens rather than converting them to ETH.
The final withdrawal
Redeeming the final outstanding shares moves every remaining active reserve into claims and permanently closes issuance. Previously recorded claims and the final claims can still be paid after closure.
There is no reseeding or reopening operation. Unaccounted token donations do not become part of the final withdrawal.