Skip to main content

Preconditions

Before showing a deposit button:
  • health.ready.display === true
  • health.ready.operations === true
  • health.ready.deposits === true
  • Wallet is on HyperEVM chain 999
  • Amount is at least config.deposit.minimumDeposit

Quote

const quote = await shlp.quoteDepositAction({
  amount: parseUsdc("100"),
  account: userAddress,
  receiver: userAddress,
  slippageBps: 50,
});

Send approval if required

for (const requirement of quote.requirements ?? []) {
  await shlp.sendApiTransaction(requirement.tx, userAddress);
}

Send deposit

const hash = await shlp.sendApiTransaction(quote.tx, userAddress);

Product states to handle

CodeUI behavior
DEPOSITS_PAUSEDDisable deposit and show a product-state message
DEPOSITS_NOT_READYDisable deposit until operations recover
MIN_DEPOSIT_NOT_METAsk user to increase amount
CAP_EXCEEDEDShow cap reached
BAD_WALLETAsk user to reconnect/switch wallet
Deposits below the recommended operational batch minimum can still be valid, but may remain in the vault buffer until the keeper batches liquidity.