Get User Wallet
Reads one of the user's wallets: everything the wallet list carries, plus the wallet's KYC record. kyc holds one entry per (network, KYC token) the KYC token was sent on. A network may host several KYC tokens and the wallet may hold any subset of them; a wallet with no KYC send answers an empty list.
The wallet must belong to this user. Another user's wallet (or a node's) is reported as not found.
Required permission: user:view
Request
GET /v2/users/{user_id}/wallets/{wallet_id}
Parameters
| Name | Type | In | Description |
|---|---|---|---|
user_id | string | path | Required. User ID |
wallet_id | string | path | Required. Wallet ID |
Headers
| Name | Description |
|---|---|
Authorization | Required. Bearer <access_token> |
Example
curl --request GET \
--url '{{baseUrl}}/v2/users/6a87455ad5f439809d488ac3/wallets/6a8754e187be1d0e22aa6d83' \
--header 'Authorization: Bearer <access_token>'
Response
{
"id": "6a8754e187be1d0e22aa6d83",
"chain_id": "6740e0a10000000000000101",
"chain_name": "EVM",
"address": "0x4a096e485281de1b8bf11a511d39d5b128ef7c4b",
"label": "Main wallet",
"custody": true,
"kyc": [
{
"network_id": "6740e0a20000000000000103",
"network_name": "Ethereum Sepolia",
"kyc_token_address": "0x8f3c1b2a4d5e6f708192a3b4c5d6e7f8091a2b3c",
"tx_hash": "0xf42d9234c0b22da68cfe7bf22975cad881d219a711c72b39d6c9a741e0344b62",
"token_sent": true,
"token_sent_at": "2026-08-21T09:15:40.112Z",
"is_verified": true
}
]
}
Response Fields
| Field | Type | Description |
|---|---|---|
id, chain_id, chain_name, address, label, custody | — | As in List User Wallets |
kyc | array | KYC sends recorded on this wallet. Never null |
kyc[].network_id | string | Network the KYC token was sent on |
kyc[].network_name | string | Display name of that network |
kyc[].kyc_token_address | string | Which of the network's KYC tokens was sent. Empty on entries written before networks could host more than one KYC token; such an entry belongs to the network's oldest-deployed KYC token |
kyc[].tx_hash | string | null | Hash of the send |
kyc[].token_sent | boolean | Whether the send was recorded on chain |
kyc[].token_sent_at | string | null | ISO 8601 time of the send |
kyc[].is_verified | boolean | Whether the identity behind the wallet was accepted. A different question from token_sent |
Errors
| Status | Code | Description |
|---|---|---|
| 400 | 10016 | wallet_id is not a valid id |
| 400 | 10001 | Wallet not found or not this user's (domain 1, message user not found) |
See Errors for the error format and common codes.