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

# Stablecoin Wallets

> Hold stablecoin balances and trigger payouts in a single API call

Every Lumx customer gets a wallet on each supported blockchain, provisioned at the same time as the customer. Wallets are only enabled for use once the customer reaches `APPROVED` — see [Identity Verification](/compliance/identity-verification). Once active, the wallet holds stablecoin balances between on-ramps, transfers, and off-ramps, so you can fund a customer once and pay out from the same balance as many times as you need.

## Wallet schema

Each wallet has:

* `blockchain`: the network the address belongs to. One of `ETHEREUM`, `POLYGON`, `BASE`, `TRON`.
* `address`: the on-chain address. Holds balances and can receive direct transfers.
* `blockExplorerUrl`: deep link to the address on the relevant block explorer.
* `isDefault`: the wallet Lumx uses when an on-ramp, off-ramp, or exchange rate request doesn't specify a `blockchain`.
* `balances`: current stablecoin holdings on that wallet. Each entry has `currency` (`USDC` or `USDT`), `amount`, and `updatedAt`.

```json Wallets on a customer response theme={null}
{
  "wallets": [
    {
      "blockchain": "POLYGON",
      "address": "0x1234567890123456789012345678901234567890",
      "blockExplorerUrl": "https://polygonscan.com/address/0x1234567890123456789012345678901234567890",
      "isDefault": true,
      "balances": [
        { "currency": "USDC", "amount": "12500.00", "updatedAt": "2026-05-25T14:32:00Z" },
        { "currency": "USDT", "amount": "0.00", "updatedAt": "2026-05-25T14:32:00Z" }
      ]
    }
  ]
}
```

<Info>
  The `wallets` array is omitted on the [Create a customer](/api-reference/customers/create-a-customer) response. Fetch it later via [Read a customer](/api-reference/customers/read-a-customer) or subscribe to the `customer.approved` [webhook](/developer/webhooks).
</Info>

## Supported networks and stablecoins

Wallets support every blockchain and stablecoin available on the platform. For the full conversion matrix by currency, see [Coverage](/get-started/coverage).

| **Blockchain** | **Stablecoins** |
| :------------- | :-------------- |
| Ethereum       | USDC, USDT      |
| Polygon        | USDC, USDT      |
| Base           | USDC            |
| Tron           | USDT            |

The default blockchain is set at the project level. Pass `blockchain` on on-ramp, off-ramp, transfer, or exchange rate requests to target a specific network; omit it to fall back to the default.

## How balances change

A wallet's balance moves in three ways:

* On-ramps credit the wallet with stablecoin once fiat lands on the matching [account](/concepts/accounts).
* Transfers move stablecoin in or out, either between two Lumx customers or to and from any external wallet address.
* Off-ramps debit the wallet and convert stablecoin to fiat sent to a registered [destination](/concepts/destinations).

Subscribe to `onramp.success`, `offramp.success`, and `transfer.success` [webhooks](/developer/webhooks) to keep balances in sync inside your product.

## Prefunded wallets

A wallet keeps its balance between operations. That means you can on-ramp once and trigger many payouts against the same wallet, without waiting for incoming fiat to clear before each one. A few common patterns:

* Payroll. Fund the employer's wallet at the start of the cycle, then trigger one off-ramp per employee against registered destinations. See [Payroll](/guides/use-cases/payroll).
* Supplier batches. Hold working capital in stablecoin and settle invoices across rails on demand. See [Treasury management](/guides/use-cases/treasury-management).
* Card acquiring. Keep a balance to credit users at checkout, before card networks settle.
* Marketplace payouts. Pay sellers from your platform's balance the moment an order ships. See [Marketplaces](/guides/use-cases/marketplaces).

Each payout has to debit the customer's own wallet to a destination registered under that customer, or transfer to another onboarded customer's wallet. Lumx needs to see every payer and payee, so pooling funds for unboarded third parties isn't allowed. See [Nested Payments](/compliance/nested-payments).

## External transfers

A wallet address is a real on-chain address. Anyone can send supported stablecoins to it, and you can transfer from it to any external wallet via the [Transfer](/api-reference/transactions/transfer) endpoint. Use this to:

* Fund a customer's wallet directly with stablecoin held elsewhere, with no on-ramp needed.
* Move stablecoin to a self-custody wallet, exchange, or counterparty outside Lumx.

## Related resources

<CardGroup cols="2">
  <Card title="Customers" href="/concepts/customers">
    Customer entities and verification lifecycle.
  </Card>

  <Card title="Accounts" href="/concepts/accounts">
    Virtual fiat accounts for incoming payments.
  </Card>

  <Card title="Destinations" href="/concepts/destinations">
    Payout destinations and holder relationships.
  </Card>

  <Card title="Transactions" href="/concepts/transactions">
    On-ramp, off-ramp, and transfer lifecycle.
  </Card>
</CardGroup>
