Overview

Wallets are logical groupings of addresses derived from a vault's seed. Each wallet targets a specific chain. Use these endpoints to create, retrieve, update, archive, and export individual wallets.


List Wallets

Use Case

Returns a paginated list of wallets in the organization, with optional filters and include flags for primary addresses and balances.

List Wallets

Query Parameters
1
limitinteger

Page size. Default 20, max 100. Use with `offset` to paginate when an organisation has many wallets.

2
offsetinteger

Number of items to skip from the start of the result set. Default 0. Pair with `limit` for cursor-style paging.

3
vault_iduuid

Restrict results to wallets that live inside this specific vault. Useful when you already know the customer's vault and want a focused view.

4
customer_ref_idstring

Look up wallets by the external customer/account ID you supplied at creation. Most common way to find a single customer's wallets across vaults.

5
wallet_typestring

Filter by purpose: `hot` (online signing), `cold` (offline, elevated approval), or `operational` (system-managed, e.g., gas stations).

6
statusstring

Filter by lifecycle status: `active`, `inactive`, `pending`, `suspended`, or `archived`. Defaults to active wallets when omitted (use `include_archived` to widen).

7
chainstring

Restrict to a single blockchain (e.g., `ethereum`, `bitcoin`, `solana`, `tron`, `base`, `arbitrum`). Combine with `vault_id` to narrow further.

8
include_primary_addressesboolean

When `true`, populates each wallet's `primary_addresses[]` array. Off by default to keep list responses lightweight.

9
include_balancesboolean

When `true`, populates each wallet's `balances[]` array (per-asset balance + locked/available). Off by default; turn on only when you need balances.

10
include_archivedboolean

When `true`, archived wallets are included in the result. Off by default so list views only show live wallets.

11
include_gas_stationsboolean

When `true`, gas station wallets (the `operational` ones owned by the org for fee sponsorship) appear in the list. Off by default so they don't clutter customer-facing views.

Query

List Wallets Response
Same shape as Create Wallet in Vault Response

Each entry in data[] uses the same WalletResponse object as Create Wallet in Vault Response. Refer there for the per-field explanations.

List Wallets Response

Get Wallet

Use Case

Retrieves a single wallet by ID.

Get Wallet

Get Wallet Response
Same shape as Create Wallet in Vault Response

The response payload uses the same WalletResponse object as Create Wallet in Vault Response. Refer there for the per-field explanations.

Get Wallet Response

Create Wallet

Use Case

Creates a new wallet. If vault_id is omitted, a dedicated vault is auto-created.

Create Wallet

Request Body
1
vault_iduuid

Identifier of an existing vault the wallet should live in. Omit to have Bitnob auto-create a dedicated vault for this wallet — convenient for one-off treasury wallets but skips the pool/dedicated choice.

2
namestringRequired

Display name for the wallet (2-100 characters). Shown in the dashboard and audit logs — use something descriptive like 'ETH Treasury' or 'Payouts Hot Wallet'.

3
chainstring

Blockchain the wallet targets (e.g., `ethereum`, `bitcoin`). Determines which key curve and address format the Enclave derives.

4
customer_ref_idstring

Your own external customer/account identifier. Mainly useful when the wallet lives inside a pool vault so you can map it back to a user in your system.

5
wallet_typestring

`hot` (online, actively signs), `cold` (offline, requires elevated approval), or `operational` (system-managed, e.g., gas stations). Defaults to `hot` when omitted.

6
asset_idsstring[]

Assets this wallet should support up front (e.g., `["ETH", "USDC_ETH"]`). Determines which initial balance entries are tracked; extra assets can be added later by deriving addresses.

7
networkstring

Network for the initial address derivation (e.g., `mainnet`, `sepolia`, `testnet`). Falls back to the environment's default network when omitted.

8
metadataobject

Arbitrary key-value JSON you set on the wallet for your own bookkeeping (tags, team, region, etc.). Returned back on every wallet read.

9
idempotency_keystringRequired

Client-generated key (1-64 chars) used to deduplicate retries. If two requests arrive with the same key, only the first creates a wallet and subsequent retries return the same response.

Example Payload

Create Wallet Response
Same shape as Create Wallet in Vault Response

The response payload uses the same WalletResponse object as Create Wallet in Vault Response. Refer there for the per-field explanations.

Create Wallet Response

Update Wallet

Use Case

Updates a wallet's name or metadata.

Update Wallet

Request Body
1
namestring

Updated display name for the wallet (2-100 characters). Shown in the dashboard and audit logs. PATCH-style — omit to leave the existing name untouched.

2
metadataobject

Replacement key-value metadata for the wallet (tags, team, region, etc.). Pass the full object — keys you omit will not be merged with the existing metadata.

Example Payload

Update Wallet Response
Same shape as Create Wallet in Vault Response

The response payload uses the same WalletResponse object as Create Wallet in Vault Response. Refer there for the per-field explanations.

Update Wallet Response

Archive / Unarchive Wallet

Use Case

Archived wallets are excluded from list results by default. Use unarchive to restore.

Same shape as Create Wallet in Vault Response

Returns the full WalletResponse object — see Create Wallet in Vault Response for the per-field explanations. Only data.status changes between calls: archived and unarchive.

Archive / Unarchive

Export Wallet

Use Case

Exports the private key material for the wallet, encrypted to a one-time exchange key supplied in the request.

Export Wallet
Did you find this page useful?