解绑推荐码
解除当前用户与推荐人的绑定关系。
POST /referral/unbind
Authorization: Bearer <token>
Content-Type: application/json
请求体
{
"signature": "0x...",
"timestamp": 1772010600
}
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
signature | string | 是 | EIP-712 签名 |
timestamp | uint64 | 是 | Unix 时间戳(秒),必须在 5 分钟内 |
EIP-712 签名
TypeHash: UnbindReferralCode(address wallet,uint256 timestamp)
{
"primaryType": "UnbindReferralCode",
"types": {
"UnbindReferralCode": [
{ "name": "wallet", "type": "address" },
{ "name": "timestamp", "type": "uint256" }
]
},
"message": {
"wallet": "0x<your_address>",
"timestamp": 1772010600
}
}
响应
{
"success": true,
"previous_referrer": "0x29f721b203a9fc9c5dde35a739d8b8e0e4605489",
"previous_code": "4DDDC2D4"
}
| 字段 | 类型 | 说明 |
|---|---|---|
success | bool | 是否解绑成功 |
previous_referrer | string | 之前的推荐人钱包地址 |
previous_code | string | 之前绑定的推荐码 |
错误码
| HTTP | 错误码 | 说明 |
|---|---|---|
| 400 | NOT_BOUND | 当前未绑定任何推荐码 |
| 400 | TIMESTAMP_EXPIRED | 时间戳超过 5 分钟有效期 |
| 401 | SIGNATURE_INVALID | EIP-712 签名验证失败 |
| 500 | UNBIND_FAILED | 服务端错误 |
代码示例
Python
import time, requests
from eth_account import Account
from eth_account.messages import encode_typed_data
BASE_URL = "https://api.ztdx.io"
JWT_TOKEN = "your_jwt_token"
PRIVATE_KEY = "your_private_key"
wallet = Account.from_key(PRIVATE_KEY)
timestamp = int(time.time())
typed_data = {
"types": {
"EIP712Domain": [
{"name": "name", "type": "string"},
{"name": "version", "type": "string"},
{"name": "chainId", "type": "uint256"},
],
"UnbindReferralCode": [
{"name": "wallet", "type": "address"},
{"name": "timestamp", "type": "uint256"},
],
},
"primaryType": "UnbindReferralCode",
"domain": {"name": "ZTDX", "version": "1", "chainId": 421614},
"message": {"wallet": wallet.address, "timestamp": timestamp},
}
signable = encode_typed_data(full_message=typed_data)
signed = wallet.sign_message(signable)
resp = requests.post(
f"{BASE_URL}/referral/unbind",
headers={"Authorization": f"Bearer {JWT_TOKEN}", "Content-Type": "application/json"},
json={"signature": signed.signature.hex(), "timestamp": timestamp},
)
print(resp.json())
# {"success": true, "previous_referrer": "0x29f7...5489", "previous_code": "4DDDC2D4"}