{chain: [addresses]} map embedded on the user object or through balance/deposit endpoints keyed by userId + chain. v3 makes Wallet a first-class resource with its own ID, its own GET, and a flat top-level path. See the platform-wide changes for ID format, pagination, error shape, and idempotency.
Endpoints
Request changes: create a wallet
v2 — provisioning more wallets for an existing user, response returns the whole user object:POST /v2/users/:userId/wallets/add
v3 — userId moves into the body, response returns the created wallets directly:
POST /v3/wallets
Response changes
v2 — no standalone wallet object. What you get back is either the user object’s embedded map, or a raw balance/deposit response:wallets field, switch to calling GET /v3/wallets?userId=... instead — see Users.
Deposits
v2 deposit list response:{count, wallets: [...], nextCursor}-style envelope keyed by raw timestamp cursor. v3 returns the standard {data, pagination} envelope (see platform-wide changes) and adds structured filters not available in v2: minAmount, status, currency as a required filter rather than optional.
ID format
Wallets had no ID at all in v2 (only chain + address). v3 wallets arewlt_... prefixed public IDs; wallet deposits are dep_....