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

# Wallets & balances

> The custodial wallets behind every account — the two-wallet model, balance fields, and how funds get reserved.

When you [create an account](/api-reference/Finance-API/accounts/create-a-new-account), Venly provisions the crypto wallets that hold its funds. You don't manage keys or contracts directly — you read balances and move funds through the API.

## The two-wallet model

Each account has **two** wallets, both bound to the account's chain:

| Wallet             | Holds                             | Who grants the permit                                                |
| ------------------ | --------------------------------- | -------------------------------------------------------------------- |
| **Account wallet** | the customer's balance            | Self-custody: the holder signs. Venly-managed: signed automatically. |
| **Escrow wallet**  | funds in flight during settlement | Always Venly-managed — permitted automatically.                      |

For self-custody accounts the only permit you handle is the account wallet's — see [Approving transfers without gas](/guides/finance/permits-and-allowances). On Venly-managed accounts both wallets are handled for you.

## Custody type

A wallet's `type` is either **`VENLY_MANAGED`** (Venly holds the keys) or **`SELF_CUSTODY`** (your customer holds them). This is fixed by your company setup and changes how funds move — see [Venly-managed vs self-custody](/guides/finance/managed-vs-self-custody).

## Reading wallets

[List wallets for an account](/api-reference/Finance-API/wallets/list-wallets-for-an-account) returns each wallet with its address, per-asset balances, and AML status:

```json Response theme={null}
{
  "success": true,
  "result": [
    {
      "id": "9f8e7d6c-5b4a-4938-8271-6a5b4c3d2e1f",
      "chain": "BASE",
      "type": "SELF_CUSTODY",
      "address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
      "balances": [
        {
          "asset": "USDC",
          "contractAddress": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
          "amount": { "total": "125.00", "available": "100.00", "reserved": "25.00" }
        }
      ],
      "amlStatus": "APPROVED"
    }
  ]
}
```

## Balance fields

Each asset balance has three amounts, returned as **decimal strings**:

| Field       | Meaning                                                                                                                   |
| ----------- | ------------------------------------------------------------------------------------------------------------------------- |
| `total`     | Everything in the wallet.                                                                                                 |
| `available` | Free to spend on a new transfer or payment.                                                                               |
| `reserved`  | Held against in-flight [payment requests](/guides/finance/payment-requests) — not spendable until they settle or reverse. |

`total = available + reserved`. Creating a payment request moves its amount from `available` to `reserved`; on settlement it leaves the wallet entirely.

## AML status

`amlStatus` reflects the wallet's screening: `PENDING`, `APPROVED`, or `REJECTED`. A wallet must clear AML (and, for self-custody, have a confirmed permit) before it can move funds.

<Note>
  The wallet's activation `status` isn't currently returned by [list wallets](/api-reference/Finance-API/wallets/list-wallets-for-an-account) — the response exposes `amlStatus` only. For **self-custody**, use the **permit status** as your activation signal: once the account wallet's permit is `CONFIRMED`, the wallet is active. For **Venly-managed** wallets (which have no permits), `amlStatus: APPROVED` is the activation signal. See [Approving transfers without gas](/guides/finance/permits-and-allowances).
</Note>

## Next steps

<CardGroup cols={2}>
  <Card title="Approving transfers without gas" icon="key" href="/guides/finance/permits-and-allowances">
    Activate a self-custody wallet with a gasless permit.
  </Card>

  <Card title="List wallets" icon="wallet" href="/api-reference/Finance-API/wallets/list-wallets-for-an-account">
    The endpoint reference, with the full response schema.
  </Card>
</CardGroup>
