跳到主要内容

链上查询接口

公开接口,直接查询链上返佣合约数据。无需认证。


用户链上返佣信息

ReferralRebate 合约读取用户的完整返佣状态。

GET /referral/on-chain/user-rebate/:address

路径参数

参数类型说明
addressstring以太坊地址(0x 格式,42 字符)

响应

{
"address": "0x29f721b203a9fc9c5dde35a739d8b8e0e4605489",
"claimed_usd": "0",
"nonce": 0,
"referral_code": "",
"referrer": "0x0000000000000000000000000000000000000000",
"tier_level": 0,
"tier_name": "Starter"
}
字段类型说明
addressstring用户地址(lowercase)
claimed_usdstring链上已领取总金额(USDT,6 位精度字符串)
nonceuint64当前 claim nonce(每次 claim 后递增)
referral_codestring绑定的推荐码(bytes32 解码)
referrerstring推荐人地址
tier_leveluint8等级序号(0=Starter … 4=Diamond)
tier_namestring等级名称

错误码

HTTP错误码说明
400INVALID_ADDRESS地址格式无效
500CHAIN_ERROR链上查询失败

Trader 链上推荐信息

ReferralRebate 合约读取 Trader 的推荐配置(返佣 BPS)。

GET /referral/on-chain/referral-info/:address

路径参数

参数类型说明
addressstring以太坊地址(0x 格式)

响应

{
"address": "0x29f721b203a9fc9c5dde35a739d8b8e0e4605489",
"code": "",
"referrer": "0x0000000000000000000000000000000000000000",
"total_rebate_bps": 0,
"trader_discount_bps": 0,
"affiliate_reward_bps": 0
}
字段类型说明
codestring推荐码(bytes32 解码)
referrerstring推荐人地址
total_rebate_bpsuint16总返佣基点(1 bps = 0.01%)
trader_discount_bpsuint16Trader 享受的手续费折扣基点
affiliate_reward_bpsuint16推荐人获得的奖励基点

错误码

HTTP错误码说明
400INVALID_ADDRESS地址格式无效
500CHAIN_ERROR链上查询失败

链上已领取金额

查询用户在链上已领取的总金额。

GET /referral/on-chain/claimed/:address

路径参数

参数类型说明
addressstring以太坊地址(0x 格式)

响应

{
"address": "0x29f721b203a9fc9c5dde35a739d8b8e0e4605489",
"claimed_usd": "0"
}
字段类型说明
addressstring用户地址
claimed_usdstring已领取总金额(USDT)

错误码

HTTP错误码说明
400INVALID_ADDRESS地址格式无效
500CHAIN_ERROR链上查询失败

后端 Signer 状态

查询后端 Signer 地址及其在合约中的 operator 状态(用于诊断链上签名服务健康度)。

GET /referral/on-chain/operator-status

响应

{
"operator_address": "0x...",
"is_operator": true,
"contract_address": "0x..."
}
字段类型说明
operator_addressstring后端 Signer 的以太坊地址
is_operatorbool该地址是否为合约 operator(falsebatchSyncRebates 将失败)
contract_addressstringReferralRebate 合约地址

代码示例

Python

import requests

BASE_URL = "https://api.ztdx.io"
address = "0x29f721b203a9fc9c5dde35a739d8b8e0e4605489"

# 1. User on-chain rebate info
resp = requests.get(f"{BASE_URL}/referral/on-chain/user-rebate/{address}")
data = resp.json()
print(f"Tier: {data['tier_name']} (Level {data['tier_level']}), Claimed: {data['claimed_usd']}")

# 2. Trader referral info
resp = requests.get(f"{BASE_URL}/referral/on-chain/referral-info/{address}")
data = resp.json()
print(f"Code: {data['code']}, Referrer: {data['referrer']}")
print(f"Rebate BPS: {data['total_rebate_bps']}, Discount: {data['trader_discount_bps']}, Reward: {data['affiliate_reward_bps']}")

# 3. On-chain claimed amount
resp = requests.get(f"{BASE_URL}/referral/on-chain/claimed/{address}")
data = resp.json()
print(f"Total claimed on-chain: {data['claimed_usd']} USDT")

# 4. Operator status
resp = requests.get(f"{BASE_URL}/referral/on-chain/operator-status")
data = resp.json()
print(f"Operator: {data['operator_address']}, Active: {data['is_operator']}")