Skip to main content
Always request a redemption plan immediately before asking the shareholder to sign. The plan uses current vault liquidity to return either an immediate redemption or an asynchronous request-and-claim flow.

Prerequisites

  • An active MicroVault VAULT_ID and contract address
  • A shareholder wallet connected to Ethereum Sepolia
  • The wallet’s share balance, expressed in 18-decimal base units
  • A minimum acceptable USDC amount, expressed in six-decimal base units
  • A Viem publicClient and walletClient

1. Request a current redemption plan

Request the plan immediately before constructing the wallet transaction.
Use plan.mode to tell the shareholder what will happen:
  • instant settles USDC in the signed transaction.
  • requested escrows the shares while the listed asyncLegs are liquidated. Display timing.expectedSeconds and timing.maximumSeconds when present.

2. Submit the planned transaction

The plan contains the exact transaction for the connected wallet. Do not rebuild its calldata in the browser.
For an instant plan, a successful receipt is the terminal wallet transaction. Refresh the vault and activity to show the USDC received and shares burned. For a requested plan, the receipt creates a redemption request. Read the resulting redemption activity to obtain its requestId, then show the underlying source exits and estimated completion time.

3. Wait for an asynchronous request

Poll the vault activity endpoint until the request becomes claimable. Do not mark the redemption complete while source exits are still processing.

4. Claim the USDC

Once claimable, the shareholder calls claimRedeemRequest from its wallet.

Confirm the redemption

An immediate redemption is complete after its successful receipt. An asynchronous redemption is complete only after the claim receipt succeeds and activity reports the request as completed. At that point the share balance and vault assets should reflect the redemption and the receiver should hold the claimed USDC. If planning returns requested because an instant simulation failed, follow the returned request flow rather than submitting stale instant calldata. If the available payout falls below the authorized minimum, the request requires a new minimum acceptance before it can become claimable.