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

# 24/7 Wallet Monitoring

> Every WaaS and CaaS wallet is watched around the clock; deposits fire webhooks.

Rach monitors **every WaaS and CaaS wallet 24/7**. You don't poll the chain or run
indexers — when funds arrive at a monitored address, Rach detects the deposit, records it,
and sends your backend a signed [webhook](/guides/webhooks). Monitoring runs on a
dedicated always-on service, independent of your API traffic.

## How it works

<Steps>
  <Step title="An address is monitored">
    WaaS: derive an address with `enable_monitoring: true`. CaaS: every provisioned wallet
    is monitored automatically.
  </Step>

  <Step title="Funds arrive on-chain">
    Rach's monitor watches the relevant chains continuously and picks up the incoming
    transfer.
  </Step>

  <Step title="Deposit is recorded">
    The deposit is persisted (amount, token, tx hash, confirmations) and balances update.
  </Step>

  <Step title="You get a webhook">
    Rach POSTs a signed event to your configured URL so you can credit the customer.
  </Step>
</Steps>

## WaaS monitoring

Turn monitoring on when you derive an address:

```bash theme={null}
curl https://api.rach.finance/api/v1/wallet/cust_001/derive \
  -H "X-API-Key: $RACH_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "network": "ETH", "enable_monitoring": true }'
```

Monitored addresses report `"monitored": true`. Supported assets include native coins and
USDT/USDC on the EVM chains. When a deposit confirms, Rach fires a wallet deposit webhook
and the funds show up in `GET /wallet/{id}/balances`.

<Tip>
  Enable your wallet webhook stream by configuring a URL with `wallet_webhook_enabled: true`
  (see [Webhooks](/guides/webhooks)).
</Tip>

## CaaS monitoring

CaaS smart-contract wallets are monitored from the moment they're provisioned. An inbound
transfer to a wallet you operate fires a `transfer.received` webhook — including transfers
sent to a phone number that was never provisioned (Rach creates the wallet on the fly and
notifies the recipient by SMS).

## Reconciliation

If your endpoint was down, you won't miss anything:

* Rach **retries** failed deliveries.
* Every delivery is recorded in a **delivery ledger** you can review.
* You can always re-read the source of truth — `GET /wallet/{id}/balances` (WaaS) or
  `GET /v1/users/balance` (CaaS) — and reconcile by tx hash.

Next: wire up [Webhooks](/guides/webhooks) to receive and verify these events.
