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

# List wallets

> The wallets on your account, and which ones a swap uses by default.

<Note>
  This endpoint does **not** count against any rate-limit window — it is an
  in-memory lookup — so an integration can call it as often as it likes. See
  **[Rate limits](/concepts/rate-limits)**.
</Note>

## Why list wallets

An integration built on the Bloom API used to need two things from each user:
an API key and a wallet address — with no way to check that the address was
actually one of theirs until a swap failed with `WALLET_NOT_OWNED`. This
endpoint closes that gap: ask for the key, then read the wallets it is bound to.

Every address returned is accepted by `wallets[].address` on a
[swap](/api-reference/swap). The `spot_active` flag tells you which wallets
Bloom itself trades from — and therefore which ones a swap that **omits**
`wallets` will run on.

<Tabs>
  <Tab title="Solana">
    ```bash theme={null}
    curl "https://eu.solana.bloombot.app/api/v1/wallets" \
      -H "Authorization: Bearer blm_sol_live_YOUR_KEY_HERE"
    ```
  </Tab>

  <Tab title="EVM">
    ```bash theme={null}
    curl "https://evm.bloombot.app/api/v1/wallets" \
      -H "Authorization: Bearer blm_evm_live_YOUR_KEY_HERE"
    ```
  </Tab>
</Tabs>

```json theme={null}
{
  "success": true,
  "data": {
    "wallets": [
      { "address": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU", "label": "W1", "spot_active": true },
      { "address": "9aE476sH92Vz7DMPyq5WLPkrKWivxeuTKEFKd2sZZcde", "label": "W2", "spot_active": false }
    ]
  }
}
```

| Field         | Description                                                                                               |
| ------------- | --------------------------------------------------------------------------------------------------------- |
| `address`     | The wallet address. Pass it as `wallets[].address` on a swap.                                             |
| `label`       | The wallet's name in Bloom, e.g. `W1`. Wallets are listed in natural label order (`W1`, `W2`, … `W10`).   |
| `spot_active` | Enabled for spot trading in Bloom. A swap that omits `wallets` runs on every wallet where this is `true`. |

<Warning>
  A wallet's `spot_active` flag is whatever the user last set in Bloom Manager
  or the bot; it can change between calls. If your integration must trade from
  one specific wallet, name it in `wallets` rather than relying on the default.
</Warning>


## OpenAPI

````yaml openapi.yaml GET /api/v1/wallets
openapi: 3.1.0
info:
  title: Bloom API
  version: 1.0.0
  description: |
    Programmatic trading and token-deploy API for Bloom. Drive swaps and token
    launches with a personal API key authenticated as a Bearer token.
servers:
  - url: https://eu.solana.bloombot.app
    description: Solana — EU
  - url: https://us.solana.bloombot.app
    description: Solana — US
  - url: https://evm.bloombot.app
    description: EVM
security:
  - bearerAuth: []
tags:
  - name: Trading
    description: Execute swaps across your wallets.
  - name: Deploy
    description: Launch new tokens.
  - name: Utility
    description: Connection probes and account lookups.
paths:
  /api/v1/wallets:
    get:
      tags:
        - Utility
      summary: List wallets
      description: >
        The wallets on your account, so an integration can discover addresses
        (and offer a picker) instead of asking its users to type one. Every
        address returned is accepted by `wallets[].address` on a swap, and the
        ones with `spot_active: true` are the wallets a swap runs on when it
        omits `wallets`.


        Like `/ping`, this does **not** count against any rate-limit window — it
        is an in-memory lookup — so you can call it before every trade. It still
        returns the full set of `X-RateLimit-*` headers.


        Wallets are listed in natural label order (`W1`, `W2`, … `W10`).
      operationId: listWallets
      responses:
        '200':
          description: Your wallets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletsResponse'
              examples:
                wallets:
                  summary: Two wallets, one enabled for spot trading
                  value:
                    success: true
                    data:
                      wallets:
                        - address: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU
                          label: W1
                          spot_active: true
                        - address: 9aE476sH92Vz7DMPyq5WLPkrKWivxeuTKEFKd2sZZcde
                          label: W2
                          spot_active: false
        '401':
          description: >-
            Unauthorized. Codes: UNAUTHORIZED (missing, malformed, unknown, or
            revoked Bearer token).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    WalletsResponse:
      type: object
      required:
        - success
        - data
      properties:
        success:
          type: boolean
          example: true
        data:
          type: object
          required:
            - wallets
          properties:
            wallets:
              type: array
              items:
                $ref: '#/components/schemas/Wallet'
    ErrorResponse:
      type: object
      required:
        - success
        - error
      properties:
        success:
          type: boolean
          example: false
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
            message:
              type: string
            details:
              type:
                - string
                - 'null'
    Wallet:
      type: object
      required:
        - address
        - label
        - spot_active
      properties:
        address:
          type: string
          description: The wallet address, as accepted by `wallets[].address` on a swap.
        label:
          type: string
          description: The wallet's name in Bloom, e.g. `W1`.
        spot_active:
          type: boolean
          description: >
            Enabled for spot trading in Bloom. A swap that omits `wallets` runs
            on every wallet where this is `true`.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Your Bloom API key, e.g. `Authorization: Bearer blm_sol_live_…`. Create
        one in Bloom Manager → Manage API Keys.

````