> ## Documentation Index
> Fetch the complete documentation index at: https://waasapi.uuwallet.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Address Change Notification Callback

`NOTIFY_ADDRESS` (type=4)

When a user's deposit address is changed in WaaS, the system notifies the merchant of the address change through this callback. The merchant must immediately update the user's deposit address in their own system to **ensure that subsequent deposits use the latest valid address**.

> **System Behavior Explanation**: WaaS may change user deposit addresses in the following situations:
>
> * Security policy requirements (e.g., regular address rotation)
> * Technical architecture adjustments (e.g., migration to new address pools)
> * Risk management needs (e.g., old address marked as risky)

### Request Parameters

The request sent by WaaS is an **RSA-encrypted Base64 string**. Merchants need to decrypt using their public key to obtain business parameters:

<ResponseField name="Address Change Request Parameters" type="object">
  <Expandable title="View Full Parameter List">
    <ResponseField name="chainName" type="String" required="Yes" example="TRON">
      Blockchain name, e.g., ETH, TRON, BSC...
    </ResponseField>

    <ResponseField name="symbol" type="String" required="Yes" example="USDT">
      Token symbol, e.g., USDT, USDC, PHT...
    </ResponseField>

    <ResponseField name="newAddress" type="String" required="Yes" example="TGVJZLgz88XPYwkQECMRocSgHtKQT7VQZd">
      **User's new deposit address** (core change data), TGVJZLgz88XPYwkQECMRo....
    </ResponseField>

    <ResponseField name="toAddress" type="String" required="No" example="TGVJZLgz88XPYwkQECMRocSgHtKQT7VQZd">
      Compatibility field (same value as newAddress)
    </ResponseField>
  </Expandable>
</ResponseField>

### Response Parameters

The `data` field in the response must return an **RSA-encrypted Base64 string** (encrypted using WaaS public key):

<ResponseField name="Address Change Response Parameters" type="object">
  <Expandable title="View Full Parameter List">
    <ResponseField name="apiKey" type="String" required="Yes" example="88c47568-8d24-4983-9b4c-y1ec8b939e9b">
      Merchant API key, WaaS will validate response validity through this
    </ResponseField>

    <ResponseField name="data" type="String" required="Yes" example="Lm56FdG...">
      Encrypted business data, e.g.: M828vsP1Z5caDkEkpBfDSY8vgFqxcs0GfRP3x8RzCyGj... (plaintext reference in example on right)

      Generated by encrypting the following raw business parameters:

      **type** (Integer) : Callback type

      **chainName** (String) : Blockchain name

      **symbol** (String) : Token symbol

      **toAddress** (String) : Merchant needs to return changed address

      **requestUUID** (String) : Unique request identifier, merchant must return same requestUUID in response to help WaaS confirm

      **tenantUserId** (String) : User ID for whom address was changed (in merchant system)
    </ResponseField>

    <ResponseField name="errCode" type="Integer" required="Yes" example="0">
      Global processing status code:
      `0`=Success, non-`0`=Failure
    </ResponseField>

    <ResponseField name="message" type="String" required="Yes" example="">
      Error details (required when failed):

      * Can return empty string when successful
      * Must describe specific error when failed
    </ResponseField>
  </Expandable>
</ResponseField>

***

<RequestExample>
  ```mdx Raw Request After Decryption theme={null}
  {
    "requestUUID": "f47d9353-d35b-437b-94ed-a0994794d688",
    "tenantUserId": "2020",
    "chainName": "TRON",
    "symbol": "USDT",
    "business": 0,
    "type": 4,
    "toAddress": "TGVJZLgz88XPYwkQECMRocSgHt极QT7VQZd",
    "newAddress": "TGVJZLgz88XPYwkQECMRocSgHtKQT7VQZd",
    "trackingId": null // In this callback type, trackingId is null
  }
  ```
</RequestExample>

<ResponseExample>
  ```mdx Response Parameter Structure After Decryption theme={null}
  {
    "apiKey": "88c47568-8d24-4983-9b4c-y1ec8b939e9b",
    "data": "{\"type\":4,\"chainName\":\"TRON\",\"symbol\":\"USDT\",\"toAddress\":\"TGVJZLgz88XPYwkQECMRocSgHtKQT7VQZd\",\"requestUUID\":\"f47d9353-d35b-437b-94ed-a0994794d688\",\"tenantUserId\":\"2020\"}",
    "errCode": 0,
    "message": ""
  }
  ```
</ResponseExample>
