> ## Documentation Index
> Fetch the complete documentation index at: https://docs.signalite.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Deposit Flow

> Quote and submit a USDC deposit into sHLP.

## 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

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

## Send approval if required

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

## Send deposit

```ts theme={null}
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              |

<Tip>
  Deposits below the recommended operational batch minimum can still be valid, but may remain in the vault buffer until the keeper batches liquidity.
</Tip>
