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
| Code | UI behavior |
|---|
DEPOSITS_PAUSED | Disable deposit and show a product-state message |
DEPOSITS_NOT_READY | Disable deposit until operations recover |
MIN_DEPOSIT_NOT_MET | Ask user to increase amount |
CAP_EXCEEDED | Show cap reached |
BAD_WALLET | Ask 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.