Skip to main content
Queued redeem is the standard flow when the user exits above available instant liquidity or wants a min-assets-out floor.

Request

const quote = await shlp.quoteRedeemAsyncAction({
  shares: sharesRaw,
  account: userAddress,
  slippageBps: 50,
});

await shlp.sendApiTransaction(quote.tx, userAddress);

Track lifecycle

Poll:
const redeems = await shlp.getRedeems(userAddress);
Lifecycle:
1

Requested

User signs requestRedeem. Shares are escrowed.
2

Pending

Request can still be cancelled.
3

Fulfilled

Keeper or fulfiller makes the request claimable after liquidity returns.
4

Claimed

User claims USDC on HyperEVM.

Claim

const claim = await shlp.buildClaimRedeemAction({
  id: redeemId,
  account: userAddress,
  receiver: userAddress,
});

await shlp.sendApiTransaction(claim.tx, userAddress);

Cancel

const cancel = await shlp.buildCancelRedeemAction({
  id: redeemId,
  account: userAddress,
});

await shlp.sendApiTransaction(cancel.tx, userAddress);

User copy

Use plain wording:
  • “Your sHLP is locked in a redemption request.”
  • “You can cancel while the request is pending.”
  • “When liquidity returns, this request becomes claimable.”
  • “Claim settles USDC on HyperEVM.”