跳到主要内容

余额与代币列表

查询现货余额

返回当前用户在现货钱包中的所有 (token, available, frozen) 行。

需要鉴权
Authorization: Bearer <JWT>

X-API-Key: <key>
GET /spot/balances

响应

{
"balances": [
{ "token": "DF", "available": "1234.5", "frozen": "0" },
{ "token": "USDT", "available": "5000", "frozen": "100" }
]
}

字段

字段类型说明
balancesarray用户曾持有过的每个代币一条记录,可能为空。
balances[].tokenstring代币符号,目前为 DFUSDT
balances[].availablestring可提现 / 可划转余额。十进制字符串(不会出现科学计数法)。
balances[].frozenstring已为在途提现冻结的金额。十进制字符串。

余额是十进制字符串(不是 Wei)。已做尾零归一化:1234.50000000000000 返回 1234.5


查询支持的代币

公开接口,供充值 / 提现 UI 知道平台支持哪些代币、在哪条链、合约地址是什么。

GET /wallet/tokens

响应

{
"success": true,
"data": [
{
"symbol": "USDT",
"image": "",
"decimals": 6,
"chainId": 421614,
"contract": "0xfA70c5A9221d239Cd51DBf48967ABc79d7B9D61d"
},
{
"symbol": "DF",
"image": "",
"decimals": 18,
"chainId": 97,
"contract": "0x8063a43ed88397c1b10da23dcc60ba1e7a0bf555"
}
],
"error": null,
"timestamp": 1778315534
}

字段

字段类型说明
symbolstringUI 展示用的代币符号。
imagestring预留的代币 logo URL,目前为空字符串。
decimalsnumber代币精度,前端用它把 wei 转成可读金额。
chainIdnumber代币所在的 EVM 链 ID(421614 = Arbitrum Sepolia,97 = BSC Testnet)。
contractstringERC-20 合约地址。

DF 这条只在现货子系统启用(SPOT_ENABLED=true)时才会出现,否则数组里只有 USDT。

代码示例

import requests

BASE = "https://api-sepolia.p99.world/api/v1"
JWT = "your_jwt_token"

# 公开 — 代币列表
tokens = requests.get(f"{BASE}/wallet/tokens").json()["data"]
print({t["symbol"]: t["contract"] for t in tokens})

# 鉴权 — 用户余额
balances = requests.get(
f"{BASE}/spot/balances",
headers={"Authorization": f"Bearer {JWT}"},
).json()["balances"]
for b in balances:
print(f" {b['token']:5} available={b['available']:>14} frozen={b['frozen']}")