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

> Inspect auto-settle rules and check Veil API status.

Two tools cover rule inspection and service health.

***

### veil\_rules\_list

List active auto-settle rules. A rule links a wallet to a source address and a payout bank — deposits from that address auto-convert to fiat.

If a rule has a `minimum` field, that is the smallest deposit that triggers auto-conversion. Deposits below the minimum land in the wallet as crypto. When `minimum` is null or absent, no threshold applies.

**Inputs**

None.

**Outputs**

<ResponseField name="status" type="string" required>
  `ok` on success, `error` on failure.
</ResponseField>

<ResponseField name="rules" type="array">
  Array of rule records. Each has `walletId`, `chain`, `chainName`, `sourceAddress`, `createdAt`, `bankAccount` (`{ id, suffixLast4, currency }`), and optionally `minimum` (`{ fiat, fiatCurrency, sourceMin, sourceCurrency }`).
</ResponseField>

<ResponseField name="stage" type="string">
  Present when the user has not completed onboarding.
</ResponseField>

<ResponseField name="reason" type="string">
  Error description when `status` is `error`.
</ResponseField>

**Example**

```dialog theme={null}
[calls veil_rules_list]
→ status: "ok", rules: [{
    walletId: "wal_xyz", chain: "base", chainName: "Base",
    sourceAddress: "0xabc…123", createdAt: "2026-05-14T12:00:00Z",
    bankAccount: { id: "ba_abc", suffixLast4: "1234", currency: "EUR" },
    minimum: { fiat: 27.74, fiatCurrency: "EUR", sourceMin: 30, sourceCurrency: "USDC" }
  }]
```

***

### veil\_health

Check whether the Veil API is reachable. Returns `status: ok` with service metadata on success, or `status: degraded` with a reason when the upstream is down or slow.

**Inputs**

None.

**Outputs**

<ResponseField name="status" type="string" required>
  `ok` if the API is healthy, `degraded` if not.
</ResponseField>

<ResponseField name="upstream" type="object">
  Present when `status` is `ok`. Contains `service` (service name) and `time` (server time).
</ResponseField>

<ResponseField name="reason" type="string">
  Degradation reason when `status` is `degraded`. Common values: `timeout`, `fetch_failed`, `http_503`.
</ResponseField>

**Example**

```dialog theme={null}
[calls veil_health]
→ status: "ok", upstream: { service: "veil-api", time: "2026-05-14T14:00:00Z" }
```

## See also

* [Wallet tools](/mcp/tools/wallets) — enable and disable auto-settle
* [Auto-settle](/concepts/auto-settle) — how automatic conversion works
