On-chain Query Endpoints
Public reads of the ReferralRebate / ReferralStorage contracts on this deployment's chain. No authentication.
User on-chain rebate info
GET /referral/on-chain/user-rebate/:address
{
"address": "0x29f721b203a9fc9c5dde35a739d8b8e0e4605489",
"claimed_usd": "50000000",
"nonce": 2,
"referral_code": "4DDDC2D4",
"referrer": "0x0000000000000000000000000000000000000000",
"tier_level": 2,
"tier_name": "Silver"
}
| Field | Description |
|---|---|
claimed_usd | Total claimed on-chain, in 10^6 units |
nonce | Current claim nonce (increments per on-chain claim) |
referral_code | Code registered on-chain (decoded bytes32) |
referrer | Referrer address, zero address if none |
tier_level / tier_name | On-chain tier (0 Starter … 4 Diamond) |
Backed by getUserRebateInfo(address).
Trader on-chain referral info
GET /referral/on-chain/referral-info/:address
{
"address": "0x...",
"code": "4DDDC2D4",
"referrer": "0x...",
"total_rebate_bps": 1200,
"trader_discount_bps": 0,
"affiliate_reward_bps": 1200
}
1 bps = 0.01 %. Backed by getReferralInfo(address).
On-chain claimed amount
GET /referral/on-chain/claimed/:address
{ "address": "0x...", "claimed_usd": "50000000" }
Operator status
GET /referral/on-chain/operator-status
{
"operator_address": "0xbab0acf138842e76dd769e20b94950ff87ff3c5b",
"is_operator": true,
"contract_address": "0x..."
}
| Field | Description |
|---|---|
operator_address | Backend signer address |
is_operator | Whether the signer is an operator on the contract; false means hourly batchSyncRebates calls will fail — contact operations |
contract_address | ReferralRebate address on this chain |
Errors
| HTTP | code |
|---|---|
| 400 | INVALID_ADDRESS |
| 500 | CHAIN_ERROR |