充值与提现 (Deposit & Withdraw)
ZTDX 采用链上结算机制,充值和提 现均通过智能合约完成。
充值 (Deposit)
将外部资产转入 ZTDX 交易账户。
充值流程
- 获取合约地址: 所有的充值均发送至 Vault 合约
- 链上转账: 用户通过钱包向 Vault 合约转账
- 确认时间: 充值通常需要 2-5 个区块确认
- 资产映射: 成功充值后,资产将自动反映在账户余额中
准备充值
接口信息
- Method:
POST - Path:
/api/v1/deposit/prepare - Authentication: 需要身份验证
- Content-Type:
application/json
请求参数
| 参数 | 类型 | 必须 | 描述 |
|---|---|---|---|
| token | string | 是 | 资产名称(如 USDT) |
| amount | string | 是 | 充值数量 |
请求示例
{
"token": "USDT",
"amount": "1000.00"
}
响应示例
{
"contract_address": "0x1234567890abcdef...",
"token_address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"amount": "1000.00",
"estimated_gas": 100000
}
响应字段说明
| 字段 | 类型 | 描述 |
|---|---|---|
| contract_address | string | Vault 合约地址 |
| token_address | string | 代币合约地址 |
| amount | string | 充值数量 |
| estimated_gas | number | 预估 Gas 费用 |
充值历史
接口信息
- Method:
GET - Path:
/api/v1/deposit/history - Authentication: 需要身份验证
响应示例
{
"deposits": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"token": "USDT",
"amount": "1000.00",
"tx_hash": "0xabc123...",
"status": "completed",
"created_at": 1704067200
}
]
}
Deposit 对象字段
| 字段 | 类型 | 描述 |
|---|---|---|
| id | string | 充值记录 ID |
| token | string | 资产名称 |
| amount | string | 充值数量 |
| tx_hash | string | 交易哈希 |
| status | string | 状态(pending/completed/failed) |
| created_at | number | 创建时间(Unix 时间戳) |
提现 (Withdraw)
将资产从 ZTDX 提取至外部钱包。
发起提现请求
接口信息
- Method:
POST - Path:
/api/v1/withdraw/request - Authentication: 需要身份验证
- Content-Type:
application/json
请求参数
| 参数 | 类型 | 必须 | 描述 |
|---|---|---|---|
| token | string | 是 | 资产名称(如 USDT) |
| amount | string | 是 | 提现数量 |
请求示例
{
"token": "USDT",
"amount": "500.00"
}
响应示例
{
"withdraw_id": "550e8400-e29b-41d4-a716-446655440000",
"token": "USDT",
"amount": "500.00",
"backend_signature": "0x...",
"nonce": 1,
"expiry": 1704153600,
"vault_address": "0x1234567890abcdef..."
}
响应字段说明
| 字段 | 类型 | 描述 |
|---|---|---|
| withdraw_id | string | 提现请求 ID |
| token | string | 资产名称 |
| amount | string | 提现数量 |
| backend_signature | string | 后端签名(用于合约验证) |
| nonce | number | 提现 nonce |
| expiry | number | 签名过期时间(Unix 时间戳) |
| vault_address | string | Vault 合约地址 |
提现流程
- 调用
/withdraw/request获取后端签名 - 使用返回的参数调用 Vault 合约的
withdraw方法 - 等待链上确认
- 资产转入用户钱包
提现历史
接口信息
- Method:
GET - Path:
/api/v1/withdraw/history - Authentication: 需要身份验证
响应示例
{
"withdrawals": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"token": "USDT",
"amount": "500.00",
"nonce": 1,
"expiry": 1704153600,
"backend_signature": "0x...",
"tx_hash": "0xdef456...",
"status": "completed",
"created_at": 1704067200
}
]
}
Withdrawal 对象字段
| 字段 | 类型 | 描述 |
|---|---|---|
| id | string | 提现记录 ID |
| token | string | 资产名称 |
| amount | string | 提现数量 |
| nonce | number | 提现 nonce |
| expiry | number | 签名过期时间 |
| backend_signature | string | 后端签名 |
| tx_hash | string | null | 交易哈希 |
| status | string | 状态 |
| created_at | number | 创建时间(Unix 时间戳) |
提现状态说明
| 状态 | 描述 |
|---|---|
| pending | 等待处理 |
| processing | 正在链上提交 |
| completed | 提现成功 |
| failed | 提现失败(原路退回) |
| expired | 签名已过期 |
说明
- 充值和提现均通过智能合约完成,保证资金安全
- 提现需要后端签名验证,防止未授权操作
- 所有金额均为字符串格式以保证精度
- 提现签名有效期为 24 小时
- 最小充值/提现金额由合约配置决定