Users & addresses
Register your end users and provision a persistent deposit address per chain. Provisioning is idempotent on your external_ref.
Create user#
The core provisioning call: create (or fetch) a user and hand back a deposit address on each requested chain. Safe to call on every login — it's idempotent on external_ref.
Create (or fetch) a user and provision a deposit address on each requested chain. Idempotent on external_ref — calling again returns the same user and the same addresses.
| Field | Type | Required | Description |
|---|---|---|---|
| external_ref | string | yes | Your own unique id for this user. |
| chains | string[] | no | Subset of your enabled chains to provision. Omit to provision on all of your enabled chains. A chain you are not enabled for returns 422 chain_not_enabled. |
POST /v1/users
{
"external_ref": "user_42",
"chains": ["ETH"]
}{
"id": "6a44c5fce075c013e82172ff",
"external_ref": "user_42",
"addresses": [
{ "chain": "ETH", "address": "0x653528F39C3b6Aa847ea36268e403Bb610f1ce36" }
]
}List users#
List your users (newest first) with their provisioned addresses. Paginated.
| Field | Type | Required | Description |
|---|---|---|---|
| limit | number | no | Page size, 1–200, default 50. |
| cursor | string | no | Previous response's next_cursor for the next page. |
{
"users": [
{
"id": "6a44c5fce075c013e82172ff",
"external_ref": "user_42",
"created_at": "2026-07-02T10:00:00.000Z",
"addresses": [
{ "chain": "ETH", "address": "0x6535...ce36" }
]
}
],
"next_cursor": "6a44c5fce075c013e82172ff",
"has_more": true
}Get user#
Fetch a single user and their provisioned addresses.
| Field | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The Hbridge user id. |
{
"id": "6a44c5fce075c013e82172ff",
"external_ref": "user_42",
"created_at": "2026-07-02T10:00:00.000Z",
"addresses": [
{ "chain": "ETH", "address": "0x6535...ce36" }
]
}Add address#
Already created a user on some chains and now need another? Add chains to an existing user without re-sending their whole profile.
Add one or more chains to an existing user (lazy provisioning). Requested chains are gated to your enabled set (422 chain_not_enabled otherwise).
| Field | Type | Required | Description |
|---|---|---|---|
| chains | string[] | yes | Chains to provision for this user. |
POST /v1/users/6a44c5fce075c013e82172ff/addresses
{
"chains": ["POLYGON"]
}{
"id": "6a44c5fce075c013e82172ff",
"addresses": [
{ "chain": "POLYGON", "address": "0x..." }
]
}