简介
欢迎使用 AXBlade 开发者文档。AXBlade 是高性能的加密货币永续合约交易平台,提供 REST API、WebSocket 实时数据推送、链上充提等完整功能。
基本信息
| 项目 | 内容 |
|---|---|
| REST Base URL | https://api.axblade.io/api/v1 |
| WebSocket URL | wss://api.axblade.io/ws |
| 测试网 REST URL | https://testnet.axblade.io/api/v1 |
| 测试网 WebSocket URL | wss://testnet.axblade.io/ws |
| 响应格式 | JSON |
身份验证
API 使用基于 Ethereum 的 EIP-712 签名验证机制。大多数私有接口需要 JWT Token 认证。
认证流程
- 获取 Nonce - 调用
GET /auth/nonce/:address获取随机数 - EIP-712 签名 - 使用钱包私钥对结构化数据签名
- 登录获取 Token - 调用
POST /auth/login获取 JWT Token - 携带 Token - 在 Header 中添加
Authorization: Bearer <token>
EIP-712 Domain 配置
const domain = {
name: "AXBlade",
version: "1",
chainId: 421614, // Arbitrum Sepolia
verifyingContract: "0xFDe43f8e6e082975d246844DEF4fE8E704403d43"
};
签名示例 (TypeScript)
import { ethers } from 'ethers';
const API_BASE = 'https://api.axblade.io/api/v1';
async function login(signer: ethers.Signer): Promise<string> {
const address = await signer.getAddress();
// 1. 获取 Nonce
const nonceRes = await fetch(`${API_BASE}/auth/nonce/${address}`);
const { typed_data } = await nonceRes.json();
// 2. 签名
const signature = await signer.signTypedData(
typed_data.domain,
{ Login: typed_data.types.Login },
typed_data.message
);
// 3. 登录
const loginRes = await fetch(`${API_BASE}/auth/login`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
address,
signature,
timestamp: parseInt(typed_data.message.timestamp)
})
});
const { token } = await loginRes.json();
return token;
}