现货钱包说明
ZTDX Spot 是与永续 合约系统并行、且代码层面完全隔离的多代币钱包。MVP 阶段支持 DF(BSC 上的治理代币),并提供永续保证金 ↔ 现货钱包之间的 USDT 内部划转。
核心概念
| 概念 | 含义 |
|---|---|
| 现货余额 | 按 (用户, 代币) 维度记录 available + frozen。frozen 表示已为某笔在途提现冻结的金额。 |
| 内部划转 | 永续保证金与现货钱包之间的原子划转(MVP 仅支持 USDT),不涉及链上交易。 |
| 充值 | 用户向 BSC 上的金库合约转入 ERC-20,后台监听器在达到 confirmation_depth 个区块确认后给现货余额入账。 |
| 提现 | 两步:(1) 后台签发 EIP-712 释放授权;(2) 用户拿这个签名调用金库合约把代币提走。 |
服务地址
| 环境 | REST |
|---|---|
| 测试网 | https://api-sepolia.p99.world/api/v1 |
| 主网 | (暂未部署) |
鉴权
所有 /spot/* 接口走项目通用鉴权中间件,支持两种方式:
| 方式 | 请求头 | 适用范围 |
|---|---|---|
| Bearer JWT | Authorization: Bearer <JWT> | 所有现货接口 |
| API Key | X-API-Key: <key> | 仅只读接口。POST /spot/transfer 与 POST /spot/withdraw/request 拒绝 API Key 调用,返回 403 API Key permission denied。 |
GET /wallet/tokens 是公开接口,无需鉴权。
响应封装
GET /wallet/tokens 使用项目统一封装:
{ "success": true, "data": [...], "error": null, "timestamp": 1778312000 }
其他现货接口当前直接返回 裸数据(对象 / 数组),错误形如 {"error": "..."} 并搭配相应 HTTP 状态码。
链上组件
| 项 | 网络 | 地址 / 值 |
|---|---|---|
| BSC 链 ID | BSC Testnet | 97 |
金库合约(ZtdxSpotVault) | BSC Testnet | 0x4Fe0b354c5865ee9deb979a99030d757ae47664a |
| DF 代币(ERC-20) | BSC Testnet | 0x8063a43ed88397c1B10DA23dcC60ba1E7A0Bf555 |
| DF 精度 | — | 18 |
| 永续保证金代币(USDT) | Arbitrum Sepolia (421614) | 0xfA70c5A9221d239Cd51DBf48967ABc79d7B9D61d |
| USDT 精度 | — | 6 |