IBExWalletAPI

User's balances

Unified balances endpoint for the authenticated user. The API always forwards ibexid=<externalUserId from JWT> to BCReader (externalUserId / externaluserid aliases are equivalent in BCReader).

Scopes:

  • Default (no walletAddress and no iban): all user wallets and IBANs via /v1.2/balances.
  • walletAddress: scoped to one user-owned wallet via /v1.2/balances/:identifier.
  • iban: scoped to one IBAN via /v1.2/balances/:identifier.

If both walletAddress and iban are provided, the request is rejected with 400.

Pagination note:

  • This endpoint may expose pagination fields depending on BCReader mode.
  • No API-level default override is enforced for page / limit here when omitted; behavior follows BCReader defaults.

For wallet scope, if BCReader reports the address as not indexed yet, the API triggers indexing and retries once.

GET
/v1.2/users/me/balances

Authorization

AuthorizationRequiredBearer <token>

In: header

Query Parameters

walletAddressstring

Optional wallet scope. Must belong to the authenticated user: /users/me/address signers[].safes[].address or signers[].addresses[].address (including derived.global.eoaAddresses).

ibanstring

Optional IBAN scope. Spaces are allowed in input and will be normalized. Cannot be used with walletAddress.

includeZerostring

Include zero-balance tokens

Default: "false"Value in: "true" | "false"
includePricesstring

Attach real-time prices

Default: "true"Value in: "true" | "false"
pagestring

Page number (pagination)

limitstring

Items per page (1–100)

curl -X GET "https://passkeys-testnet.ibex.fi/v1.2/users/me/balances?walletAddress=%3Cstring%3E&iban=%3Cstring%3E&includeZero=true&includePrices=true&page=%3Cstring%3E&limit=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

BCReader v1.2 payload (scoped or aggregated).

{}