跳到主要内容

用户积分系统 (User Points System)

Version: v1.1 Last Updated: 2026-01-20

用户积分系统是 AXBlade 激励机制的核心,旨在奖励活跃交易者、忠实用户以及邀请新用户的贡献者。


积分获取途径

五种积分类型

积分类型计算公式触发时机说明
交易积分交易量 × 0.0001 × Tier倍数交易完成基于交易量,有Tier加成
盈亏积分max(已实现盈利, 0) × 0.001 × Tier倍数仓位平仓仅盈利计入积分
持仓积分仓位价值 × 0.00001 × 小时数 × Tier倍数每小时鼓励长期持仓
推荐积分被推荐人交易量 × 0.00005被推荐人交易推荐人获得积分
质押积分质押金额 × 0.0002 × 天数每天质押或EARN订阅

Tier 等级体系

等级交易量范围 (USDT)积分倍数目标用户
T1$0 - $99,999.991.0x新手交易者
T2$100,000 - $499,999.991.1x活跃交易者
T3$500,000 - $999,999.991.3x专业交易者
T4$1,000,000+1.5xVIP/机构用户

积分用途

  1. 等级晋升: 累积积分可提升账户等级,解锁更低的手续费率和更高的提现限额
  2. 权益兑换: 支持使用积分兑换平台周边、VIP 服务或其他生态奖励
  3. 活动门票: 参与特定交易大赛或空投活动的门槛条件

Epoch 周期系统

  • 周期: 支持可配置周期 (7/10/15/30天)
  • 状态流转: pendingactiveendedsettled
  • 独立计算: 每个 Epoch 独立计算和结算
  • 历史查询: 支持历史 Epoch 数据查询

API 接口

快速参考

功能方法路径认证
获取积分GET/api/v1/points✅ 需要
排行榜GET/api/v1/leaderboard❌ 公开
Epoch 列表GET/api/v1/epochs❌ 公开

详细接口定义请参考 积分 API 文档


验证与示例

获取 Epochs 列表

curl https://api.8a27.xyz/api/v1/epochs

响应示例:

{
"success": true,
"data": [
{
"id": 1,
"label": "Epoch 1: 2026.1.14 - 2026.2.13",
"startDate": "2026-01-14",
"endDate": "2026-02-13",
"status": "active"
},
{
"id": 2,
"label": "Epoch 2: 2026.2.14 - 2026.3.15",
"startDate": "2026-02-14",
"endDate": "2026-03-15",
"status": "pending"
}
],
"error": null,
"timestamp": 1768890350
}

获取个人积分

需替换有效 Token:

curl https://api.8a27.xyz/api/v1/points \
-H "Authorization: Bearer <YOUR_TOKEN>"

响应示例:

{
"success": true,
"data": {
"user_address": "0x29f721b203a9fc9c5dde35a739d8b8e0e4605489",
"epoch_number": 1,
"epoch_status": "active",

"trading_points": "1250.50",
"pnl_points": "800.00",
"holding_points": "350.25",
"referral_points": "200.00",
"staking_points": "100.00",
"total_points": "2700.75",

"tier": "T2",
"tier_multiplier": "1.10",
"trading_volume": "125050.00",
"trade_count": 45,

"rank": 15,
"updated_at": "2026-01-20T10:30:00.000Z"
},
"error": null,
"timestamp": 1768890275
}

获取排行榜

curl "https://api.8a27.xyz/api/v1/leaderboard?type=total&limit=10"

响应示例:

{
"success": true,
"data": {
"epoch_number": 1,
"rank_type": "total",
"entries": [
{
"rank": 1,
"user_address": "0x93ee356f71177f5d924765c5d6ab31d3eaa63b89",
"username": null,
"points": "207.21",
"tier": "T4"
},
{
"rank": 2,
"user_address": "0x0a20b798fccea18dec56a4d71180cb622b98efcc",
"username": "trader_001",
"points": "187.50",
"tier": "T1"
}
]
},
"error": null,
"timestamp": 1768890300
}

技术实现

数据库架构

表名用途
points_epochs存储积分周期配置
user_points_summary用户积分汇总(每 Epoch)
points_events积分变动流水
points_leaderboard排行榜缓存
trading_tier_configTier 等级配置

服务架构

┌─────────────────────────────────────────────────────────────────────┐
│ Client Layer │
│ (REST API / WebSocket) │
└────────────────────────────┬────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────────┐
│ API Handler Layer │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────────┐ │
│ │ Points API │ │ Admin API │ │ Leaderboard API │ │
│ └──────────────┘ └──────────────┘ └──────────────────────────┘ │
└────────────────────────────┬────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────────┐
│ PointsService │
│ • calculate_trading_points() • calculate_pnl_points() │
│ • calculate_holding_points() • calculate_referral_points() │
│ • calculate_staking_points() • refresh_leaderboard() │
└────────────────────────────┬────────────────────────────────────────┘

┌──────────────────┼──────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ PostgreSQL │ │ TimescaleDB │ │ Redis Cache │
└─────────────────┘ └──────────────┘ └─────────────────┘

测试

运行测试脚本

cd backend/tests
python3 test_points_phase1.py

测试覆盖 (16个测试):

  • API 可用性和响应结构验证
  • Epoch 系统功能测试
  • 排行榜查询和排名验证
  • Tier 等级系统测试
  • 5种积分类型计算验证
  • 总积分汇总测试

预期结果:

总测试数: 16
✅ 通过: 16
❌ 失败: 0
通过率: 100.0%

🎉 所有积分测试通过!

注意事项

  • 严禁通过刷量、虚假账户等作弊手段获取积分,一经发现将扣除所有违规所得
  • 积分周期(Epoch)的具体时间以官方公告为准
  • 积分更新为异步计算,交易后可能需要 2-5 秒才能反映在 API 中

相关文档