List Addresses

Use Case

Lists addresses derived for a wallet.

List Addresses

Query Parameters
1
limitinteger

Page size. Default 20, max 100. Use with `offset` to paginate when a wallet has many derived addresses.

2
offsetinteger

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

3
asset_idstring

Restrict results to addresses tied to a specific asset (e.g., `USDC_ETH`, `ETH`). The chain is inferred from the asset, so you don't need to pass `chain` as well.

4
chainstring

Filter by blockchain (e.g., `ethereum`, `bitcoin`). Useful when a wallet has addresses on multiple chains and you want one.

5
networkstring

Restrict to a single network within the chain (e.g., `mainnet`, `sepolia`). Combine with `chain` to scope to one testnet, for example.

6
statusstring

Filter by lifecycle status: `active` (default working set) or `inactive` (deactivated but kept for audit).

Query

List Addresses Response
1
idstring (uuid)

Unique identifier for this address record. Use it when querying or syncing balances for a specific address (e.g., `GET /wallets/:id/addresses/:addressId/balances`).

2
wallet_idstring (uuid)

Identifier of the wallet that owns this address. Lets you trace an address back to its HD-derived parent.

3
chainstring

Blockchain the address is on (e.g., `ethereum`, `bitcoin`, `solana`). Determines which curve the key was derived under and which RPC to use.

4
networkstring

Network within the chain (e.g., `mainnet`, `sepolia`, `testnet`, `devnet`). Critical to check — testnet funds and mainnet funds are not interchangeable.

5
addressstring

The actual on-chain address string. This is what you hand to customers / counterparties as a deposit destination.

6
address_formatstring

Encoding format used (e.g., `EIP-55` checksummed for EVM, `P2WPKH` / `P2TR` for Bitcoin, `Base58` for Solana). Useful for downstream validators that need to know how to parse the string.

7
derivation_pathstring

BIP-32 HD derivation path used to generate the key for this address (e.g., `m/44'/60'/0'/0/0`). Shows where this address sits in the wallet's HD tree.

8
is_primaryboolean

`true` for the first address derived for the chain — what `WalletResponse.primary_addresses` points at. Additional derived addresses are `false`.

9
labelstring

Optional free-form label you set when deriving the address (e.g., `Customer deposit`, `Refund slot`). Helps operators tell derived addresses apart in the dashboard.

10
statusstring

Lifecycle status. `active` addresses still accept funds; `inactive` are deactivated but kept on the record for audit.

11
created_atstring (RFC3339)

Timestamp when the address was derived.

List Addresses Response

Derive Address

Use Case

Derives a new address from the wallet's HD key.

Derive Address

Request Body
1
asset_idstringRequired

Asset identifier (2-50 chars). Chain is derived automatically (e.g., `USDC_ETH` → `ethereum`).

2
networkstringRequired

Network (e.g., `mainnet`, `sepolia`, `testnet`, `devnet`).

3
address_formatstring

Address format override (uses chain default).

4
derivation_pathstring

HD derivation path override (uses BIP-44 default).

5
labelstring

Human-readable label.

Example Payload

Derive Address Response
Same shape as List Addresses Response

data is a single AddressResponse — the same object shape used in each entry of List Addresses Response. Refer there for the per-field explanations.

Derive Address Response

Get Wallet Balances

Use Case

Returns aggregated balances for all addresses in the wallet.

Get Wallet Balances

Get Wallet Balances Response
1
idstring (uuid)

Unique identifier for the balance record. Stays stable across syncs so you can reference a specific asset+address pair over time.

2
address_idstring (uuid)

The address this balance entry belongs to. Useful when a wallet aggregates balances across many derived addresses.

3
asset_idstring

Asset identifier (e.g., `ETH`, `USDC_ETH`). Composed of `<symbol>_<chain>` for tokens; bare symbol for native assets.

4
chainstring

Blockchain the balance is on (e.g., `ethereum`, `bitcoin`).

5
networkstring

Network within the chain (e.g., `mainnet`, `sepolia`). Important — mainnet and testnet balances are tracked separately.

6
asset_typestring

`native` for the chain's gas asset (ETH, BTC, etc.); `token` for ERC-20s, SPLs, TRC-20s, and friends.

7
asset_symbolstring

Human-readable ticker symbol (e.g., `USDC`, `ETH`). Safe to display in dashboards alongside formatted amounts.

8
asset_addressstring

Token contract address for tokens. Empty string for native assets — that's how you can tell them apart at a glance.

9
balancestring

Confirmed on-chain balance in the asset's smallest unit (wei, satoshi, lamport, sun). Always a string to avoid float precision loss.

10
locked_balancestring

Amount currently held against in-flight outbound transactions. Subtract from `balance` to get what's actually spendable.

11
unconfirmed_balancestring

Incoming amount not yet confirmed on chain. Don't treat as spendable until it moves into `balance`.

12
last_synced_atstring (RFC3339)

When Bitnob last refreshed this balance from the chain. Stale values are possible during mempool spikes — sync explicitly if you need fresher data.

13
created_atstring (RFC3339)

When the balance record was first created (typically when the address was derived for this asset).

14
updated_atstring (RFC3339)

Last update timestamp — bumped on every sync.

Get Wallet Balances Response

Sync Wallet Balances

Use Case

Triggers an on-chain balance refresh for all addresses in the wallet.

Sync Wallet Balances

Sync Wallet Balances Response
Same shape as Get Wallet Balances Response

data is the same BalanceResponse[] shape returned by Get Wallet Balances Response. Refer there for the per-field explanations. After this call every record's last_synced_at is bumped to now and balance / unconfirmed_balance reflect the latest on-chain state.

Sync Wallet Balances Response

Get Address Balances

Use Case

Returns balances for a specific address.

Get Address Balances

Get Address Balances Response
Same shape as Get Wallet Balances Response

data is the same BalanceResponse[] shape returned by Get Wallet Balances Response. Refer there for the per-field explanations. The only difference here is that the array is scoped to a single address rather than aggregated across the wallet.

Get Address Balances Response

Sync Address Balances

Use Case

Triggers an on-chain balance refresh for a specific address.

Sync Address Balances

Sync Address Balances Response
Same shape as Get Wallet Balances Response

data is the same BalanceResponse[] shape returned by Get Wallet Balances Response. Refer there for the per-field explanations. After this call every record's last_synced_at is bumped to now and balance / unconfirmed_balance reflect the latest on-chain state.

Sync Address Balances Response
Did you find this page useful?