---
title: "Update Customer Wallet"
canonical_url: "https://docs.stablegate.com/docs/apiref/customer-wallets/update-customer-wallet"
---
# Update Customer Wallet

::api-operation{color="warning" endpoint="/v1/customers/{customer_uuid}/wallets/{wallet_uuid}/" method="PUT"}
## Authorization

::field-group
::field{name="X-Api-Key" type="string" :required="true"}
API key generated in the Developers section of the Stablegate app. Send it in the `X-Api-Key` header on every request; the partner API does not require request signing.
::
::

## Path parameters

::field-group
:field[Customer wallet UUID]{name="wallet_uuid" type="string<uuid>" :required="true"}:field[Customer UUID]{name="customer_uuid" type="string<uuid>" :required="true"}
::

## Request body

::field-group
:field{name="name" type="string | null"}::field{name="rail" type="string" :required="true"}
One of: `bitcoin`, `ethereum`, `algorand`, `polygon`, `ripple`, `xinfin`, `stellar`, `tron`
::

:field{name="address" type="string" :required="true"}::field{name="wallet_message" type="string | null"}
Hexbytes-encoded confirmation message. Required on Ethereum and Polygon.
**NOTE** "Signature time" must not be older than 24h UTC.

```js
function stringToHex(str: string) {
  let hex = '';
  for (let i = 0; i < str.length; i++) {
    hex += str.charCodeAt(i).toString(16);
  }
  return `0x${hex}`;
}
const ts = new Date().toISOString();
const message =`I confirm the ownership of address ${signerAddress}. Signature time: ${ts}.`;
const wallet_message = stringToHex(message);
```
::

::field{name="wallet_signature" type="string | null"}
Signed confirmation message. Required on Ethereum and Polygon.

```js
const ts = new Date().toISOString();
const message =`I confirm the ownership of address ${signerAddress}. Signature time: ${ts}.`;
// https://docs.ethers.org/v5/api/signer/#Signer-signMessage
// const signer = ...
const wallet_signature = await signer.signMessage(message);
```
::
::

## Responses

::tabs
::tabs-item{label="200"}
Successful Response

::field-group
:field{name="uuid" type="string<uuid>" :required="true"}:field{name="name" type="string | null"}::field{name="rail" type="string | null"}
One of: `bitcoin`, `ethereum`, `algorand`, `polygon`, `ripple`, `xinfin`, `stellar`, `tron`
::

:field{name="address" type="string | null"}::field{name="status" type="string" :required="true"}
One of: `active`, `sanctioned`
::

:field{name="verified_at" type="string<date-time> | string | null"}:field{name="created_at" type="string<date-time>" :required="true"}:field{name="updated_at" type="string<date-time>" :required="true"}
::
::

::tabs-item{label="422"}
Validation Error

::field-group
:field{name="trace_id" type="string" :required="true"}::field{name="error_code" type="string" :required="true"}
One of: `devapi_internal_error`, `devapi_request_validation_error`, `devapi_iban_parse_error`, `devapi_customer_close_error`, `devapi_bank_code_required_error`, `devapi_download_aol_error`, `devapi_not_found_error`, `devapi_bad_request_error`, `devapi_email_occupied_error`, `devapi_idempotency_invalid_key`, `devapi_idempotency_key_misuse`, `devapi_idempotency_request_in_progress`, `devapi_kyc_application_link_error`, `devapi_instant_verification_error`, `devapi_unauthorized_error`, `devapi_forbidden_error`, `devapi_method_not_allowed_error`, `devapi_service_unavailable_error`
::

:field{name="message" type="string" :required="true"}::field{name="details" type="object[]" :required="true"}
::collapsible{name="properties"}
::field-group
:field{name="loc" type="string | string[]" :required="true"}:field{name="msg" type="string" :required="true"}:field{name="type" type="string" :required="true"}
::
::
::
::
::
::

::template{v-slot:samples=""}
::code-switcher{body="{"name":"string","rail":"bitcoin","address":"string","wallet_message":"0x4920636f6e6669726d20746865206f776e657273686970206f662061646472657373203078444331644362343666433936433436633446323934383636364146434138313837343034316242322e205369676e61747572652074696d653a20323032342d30362d31345431343a34383a32382e3339335a2e","wallet_signature":"0x861818884bbf61f8d83bc3052e6c513f939512852fc92067dde5845b392248c949812e44366158d91d73ac0e9588c56dfb1d59549c3cbad52cfe4884fdc15c361"}" method="PUT" path="/v1/customers/CUSTOMER_UUID/wallets/WALLET_UUID/"}
```bash
curl https://api.stablegate.com/v1/customers/CUSTOMER_UUID/wallets/WALLET_UUID/ \
  --request PUT \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "string",
  "rail": "bitcoin",
  "address": "string",
  "wallet_message": "0x4920636f6e6669726d20746865206f776e657273686970206f662061646472657373203078444331644362343666433936433436633446323934383636364146434138313837343034316242322e205369676e61747572652074696d653a20323032342d30362d31345431343a34383a32382e3339335a2e",
  "wallet_signature": "0x861818884bbf61f8d83bc3052e6c513f939512852fc92067dde5845b392248c949812e44366158d91d73ac0e9588c56dfb1d59549c3cbad52cfe4884fdc15c361"
}'
```
::

::code-group
```json [200]
{
  "uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "name": "string",
  "rail": "bitcoin",
  "address": "string",
  "status": "active",
  "verified_at": "2026-01-01T00:00:00Z",
  "created_at": "2026-01-01T00:00:00Z",
  "updated_at": "2026-01-01T00:00:00Z"
}
```

```json [422]
{
  "trace_id": "string",
  "error_code": "devapi_internal_error",
  "message": "string",
  "details": [
    {
      "loc": "string",
      "msg": "string",
      "type": "string"
    }
  ]
}
```
::
::
::


## Sitemap

See the full [sitemap](https://docs.stablegate.com/sitemap.md) for all pages.
