Skip to main content
When you create an 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:
WalletHoldsWho grants the permit
Account walletthe customer’s balanceSelf-custody: the holder signs. Venly-managed: signed automatically.
Escrow walletfunds in flight during settlementAlways Venly-managed — permitted automatically.
For self-custody accounts the only permit you handle is the account wallet’s — see Approving transfers without gas. 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.

Reading wallets

List wallets for an account returns each wallet with its address, per-asset balances, and AML status:
Response
{
  "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:
FieldMeaning
totalEverything in the wallet.
availableFree to spend on a new transfer or payment.
reservedHeld against in-flight 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.
The wallet’s activation status isn’t currently returned by list wallets — 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. See Approving transfers without gas.

Next steps

Approving transfers without gas

Activate a self-custody wallet with a gasless permit.

List wallets

The endpoint reference, with the full response schema.