Skip to main content
POST
Builds the transaction that redeems vault shares for the vault’s asset at the current share price. The holder signs one transaction, with no approval step, because the vault burns its own shares. The payout goes to the signing wallet. Redemptions cannot be paused, and on the current vault implementation no register examines them. What bounds them is liquidity: idle funds pay first, and beyond that the vault draws on its market positions as far as each market’s free liquidity allows. An instance that sees an unpublished vault as a distributor of record can redeem from it too.

Path Parameters

string
required
Vault ID.

Body Parameters

string
required
Shares to redeem as a decimal string, parsed at the vault’s assetDecimals. Digits with an optional fraction, greater than zero.
string
required
The wallet that will sign. redeem burns the caller’s own shares, so the amount cannot be checked against a balance until the wallet is named. Omitting it, or sending something other than a 0x address, returns HOLDER_REQUIRED.

Before the holder signs

When market utilization blocks part of the value, the redemption fills partially. The holder is paid what liquidity allows and the unpaid shares stay in the wallet. willFillFully and expectedPayout say so before the signature. The amount recorded on confirmation comes from the Redeemed event, meaning the assets actually paid, not the shares requested. Compare the two to detect a partial fill.
A redemption is quoted from totals read without their completeness flag, on purpose. An exit is the one thing a market that has gone dark must never be able to block. When priceWarning is set, the shares still burn, at a price that understates the vault, and the difference stays with the holders who wait. Nothing blocks the redemption. Show the warning and let the holder decide.

Response Fields

object

Error Codes