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

# Rules

> Manage auto-settle rules from the CLI. A rule tells a wallet to automatically offramp deposits from a specific source address.

An auto-settle rule ties a wallet to a source address. When stablecoins arrive from that address, Veil offramps them automatically to the wallet's bank account. See [Auto-settle](/concepts/auto-settle) for the full concept.

## List rules

```bash theme={null}
veil rules list
```

Prints one line per active rule: wallet ID, chain, source address, and bound bank account.

## Create a rule

```bash theme={null}
veil rules create \
  --wallet-id <wallet-id> \
  --source-address <address>
```

Sets the source address on the wallet. If the wallet already has a rule, this replaces it — the deposit address may change as a result. The payout bank account is not changed; to change the bank, use [`veil wallets set-bank`](/cli/wallets#set-payout-bank).

Flags:

| Flag               | Required | Description                   |
| ------------------ | -------- | ----------------------------- |
| `--wallet-id`      | Yes      | Wallet to configure           |
| `--source-address` | Yes      | Sending address to watch      |
| `--live`           | No       | Apply to the live-mode wallet |

## Remove a rule

<Warning>
  Removing a rule is destructive. Once removed, deposits from the former source address will no longer trigger automatic offramp — they will land in the wallet and stay there until you offramp manually.
</Warning>

```bash theme={null}
veil rules remove --wallet-id <wallet-id>
```

The CLI shows the current rule and asks for confirmation:

```
Will remove auto-settle rule on wallet abc123 (source 0x1234... → USD ••••5678).
? Are you sure? (y/N)
```

Pass `--yes` to skip the prompt:

```bash theme={null}
veil rules remove --wallet-id <wallet-id> --yes
```

In non-interactive environments, `--yes` is required — the CLI refuses to prompt when stdin is not a TTY.

## See also

* [Auto-settle](/concepts/auto-settle) — source addresses, triggers, and minimums
* [Wallets](/cli/wallets) — wallet IDs and bank account binding
