POST · /api/v1/wallet/address/validate
校验地址
在执行提币操作前,校验目标地址的格式是否合法,并返回标准化后的地址形式。推荐在用户填写提币地址时实时调用。
提币前务必校验
链上转账不可撤销。强烈建议在用户输入提币地址后,立即调用本接口确认地址合法性, 并使用响应中normalizedAddress 替代用户原始输入作为最终提币目标。 /api/v1/wallet/address/validate HMAC Header 参数
X-Api-Keystring required | 应用 apiKey。沙箱前缀 pk_test_,正式 pk_live_。 例: pk_test_4f9d8ab1c0e74... |
X-Timestampinteger (UNIX 毫秒) required | 请求发起时刻的 UNIX 毫秒时间戳(13 位整数)。与服务端时差不能超过 ±300000ms(5 分钟)。 例: 1746450000000 |
X-Noncestring required | 本次请求的随机串,建议 UUID v4 或 16 字节 hex。同一 (apiKey, nonce) 在 10 分钟窗口内不可重复。 例: 8e3a1c2f7b6d4a90 |
X-Signaturestring required | HMAC-SHA256 签名(小写 hex,64 字符)。算法: HMAC(secret, METHOD + "\n" + PATH + "\n" + ts + "\n" + nonce + "\n" + SHA256(body))。详见 鉴权章节。 例: 6e4a8c1f...(64 字符) |
Body 参数
application/jsonchainCodestring required | 公链 code,决定校验规则(格式、校验和算法等)。 例: ETH |
addressstring required | 待校验的链上地址字符串。 例: 0xAbC123... |
memostring optional | Memo 链(XRP / XLM / EOS 等)下的 memo/tag,非 memo 链传 null 或省略。 例: null |
示例
{
"chainCode": "ETH",
"address": "0xAbC123...",
"memo": null
}请求示例
# 签名算法(stringToSign / 4 个 header)见 /docs/api/auth
API_KEY=pk_test_xxx
SECRET=sk_test_xxx
METHOD=POST
REQ_PATH=/api/v1/wallet/address/validate
BODY='{"chainCode":"ETH","address":"0xAbC123...","memo":null}'
TS=$(( $(date +%s) * 1000 ))
NONCE=$(uuidgen | tr -d '-' | tr '[:upper:]' '[:lower:]')
BODY_SHA=$(printf "%s" "$BODY" | openssl dgst -sha256 -hex | awk '{print $2}')
SIG=$(printf "%s\n%s\n%s\n%s\n%s" "$METHOD" "$REQ_PATH" "$TS" "$NONCE" "$BODY_SHA" \
| openssl dgst -sha256 -hmac "$SECRET" -hex | awk '{print $2}')
curl -X POST "https://api.pqpa.com$REQ_PATH" \
-H "Content-Type: application/json" \
-H "X-Api-Key: $API_KEY" \
-H "X-Timestamp: $TS" \
-H "X-Nonce: $NONCE" \
-H "X-Signature: $SIG" \
-d "$BODY"响应
200OK
{
"code": 0,
"data": {
"valid": true,
"reason": null,
"normalizedAddress": "0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B"
},
"msg": ""
}data 字段说明
validboolean required | true = 地址格式合法,可安全用于提币;false = 非法,请拒绝用户继续操作。 |
reasonstring? optional | valid=false 时返回失败原因描述;valid=true 时为 null。 |
normalizedAddressstring required | 标准化后的地址。EVM 链返回 EIP-55 校验和地址(大小写混合),其它链原样返回。建议使用此字段存储,避免大小写不一致导致对账差异。 |
EVM 地址大小写
以太坊地址对大小写不敏感,但 EIP-55 定义了一套基于校验和的大小写混合形式, 可用于检测手误输入。normalizedAddress 对 EVM 系始终返回 EIP-55 形式, 存库时以此为准。