Skip to content

quyanqiu/backpack-points-automation

Repository files navigation

Backpack 积分刷分自动化脚本

基于 Backpack Exchange 官方 API 的自动化积分刷分工具,通过 12 步交易流程(现货 + 借贷 + 合约)最大化获取积分奖励。

🎯 核心特点

  • 风险中性: 1x 杠杆合约对冲价格风险
  • 全产品覆盖: 现货、借贷、合约三大产品
  • 循环执行: 自动循环刷分,直到余额不足
  • 配置文件支持: YAML 配置,无需每次输入参数
  • 动态本金: 自动使用当前余额作为本金
  • 安全保护: 强制保证金检查,避免爆仓
  • 完整日志: CSV 记录每步操作,便于分析

📦 快速开始

1. 安装依赖

pip install -r requirements.txt

# 或手动安装
pip install bpx-py PyYAML

2. 配置 API 密钥

# 创建密钥文件
echo "你的公钥" > api_key_01.txt
echo "你的私钥" > api_secret_01.txt

💡 在 Backpack Exchange Settings → API Keys 中生成
⚠️ 不要授予提现权限,只需要交易权限

3. 配置参数

# 复制配置文件模板
cp config.example.yml config.yml

# 编辑配置
vim config.yml

推荐配置:

pair: "SOL/USDC"
principal_usdt: 2000.0
first_leg_ratio: 0.9
borrow_ratio: 0.5
loop_mode: true           # 循环执行
loop_interval_minutes: 3  # 每3分钟一次
simulate: false           # 真实交易
min_balance_usdt: 2500.0  # 最低余额要求

4. 运行脚本

# 方式1:使用默认配置文件(推荐)
python backpack_points_runner.py

# 方式2:指定配置文件
python backpack_points_runner.py my_config.yml

# 方式3:使用运行脚本
# Windows
auto_run.bat

# Linux/Mac
chmod +x auto_run.sh
./auto_run.sh

📊 交易流程

第一阶段(现货 + Lend + 空单)

  1. ① 买入现货(90%本金,如 1800 USDC → ~16 SOL)
  2. ② 借出现货(Lend 16 SOL,获得利息)
  3. ③ 开空单对冲(Short 16 SOL, 1x)
  4. ④ 平空单
  5. ⑤ 赎回现货(自动)
  6. ⑥ 卖出现货换回 USDC

第二阶段(Borrow + 现货 + 多单)

  1. ⑦ 借入现货(Borrow 50%本金等值 → ~8.8 SOL)
  2. ⑧ 卖出借入的现货
  3. ⑨ 开多单对冲(Long 8.8 SOL, 1x)
  4. ⑩ 平多单
  5. ⑪ 买回现货用于还款(自动还款)
  6. ⑫ 归还借款(自动)

总计: 4次现货交易 + 4次借贷操作 + 4次合约交易 = 12次积分触发

🔄 循环执行模式

启用 loop_mode: true 后:

  • 完成 12 步后等待指定时间(如 3 分钟)
  • 自动开始下一轮循环
  • 动态使用当前余额作为本金
  • 余额低于 min_balance_usdt 时自动停止
  • Ctrl+C 可随时安全停止

示例:

循环 1: 余额 2500 → 使用 2000 本金 → 余额 2498
循环 2: 余额 2498 → 使用 2000 本金 → 余额 2496
循环 3: 余额 2496 → 使用 2000 本金 → 余额 2494
...
循环 N: 余额 2490 < 2500 → 停止

📁 项目文件

文件 说明
backpack_points_runner.py 主脚本(交易编排引擎)
backpack_api_client.py Backpack API 适配器
config.example.yml 配置文件模板
requirements.txt Python 依赖列表
LICENSE MIT 开源协议
刷分流程说明.md 详细流程说明
配置文件说明.md 配置文件详细说明
auto_run.sh / auto_run.bat 运行脚本

需要创建的文件:

  • api_key_01.txt - API 公钥
  • api_secret_01.txt - API 私钥
  • config.yml - 个人配置(从 config.example.yml 复制)

⚙️ 配置参数

所有参数都通过 config.yml 配置文件设置:

# 交易对配置
pair: "SOL/USDC"

# 本金配置
principal_usdt: 2000.0
first_leg_ratio: 0.9   # 第一阶段使用90%本金
borrow_ratio: 0.5       # 第二阶段借入50%本金等值

# 等待时间(秒)
wait_seconds: 2                    # 每步之间等待
wait_open_to_close_seconds: 30     # 持仓时间

# 保证金与余额
min_margin_usdt: 150.0      # 最小保证金留存
min_balance_usdt: 2500.0    # 最低余额要求(低于此值停止运行)

# 循环执行
loop_mode: true             # 是否循环执行
loop_interval_minutes: 3    # 循环间隔(分钟)

# 运行模式
simulate: false             # false=真实交易, true=模拟

# API 配置
api:
  window: 30000            # 时间窗口(毫秒)
  max_retries: 3           # 最大重试次数
  retry_delay: 2.0         # 重试延迟(秒)

参数说明

参数 默认值 说明
pair SOL/USDC 交易对
principal_usdt 2000 设定本金
first_leg_ratio 0.9 第一阶段使用本金比例(90%)
borrow_ratio 0.5 第二阶段借入本金比例(50%)
wait_seconds 2 每步等待时间(秒)
wait_open_to_close_seconds 30 持仓时间(秒)
min_margin_usdt 150 最小保证金留存
min_balance_usdt 2500 最低余额要求 ⚠️
loop_mode false 循环执行模式
loop_interval_minutes 3 循环间隔(分钟)
csv_path backpack_points_logs.csv CSV 日志路径
state_path backpack_points_state.json 状态文件路径
simulate true false=真实交易, true=模拟模式

⚠️ 重要:

  • min_balance_usdt 是安全保护机制,余额低于此值会停止运行
  • principal_usdt 是目标本金,实际使用 min(余额, principal_usdt)
  • 所有配置请在 config.yml 文件中修改,不再支持命令行参数

💰 成本与收益

假设本金 2000 USDC,SOL 价格 113 USDC:

单次循环成本

  • 现货手续费: ~0.72 USDC (4次 × 0.02%)
  • 合约手续费: ~1.02 USDC (4次 × 0.03%)
  • 借入利息: ~0.0001 USDC
  • 总成本: ~1.74 USDC/次

循环 10 次(约 30 分钟)

  • 总成本: ~17.4 USDC
  • 触发积分: 120 次操作

日循环 480 次(24小时)

  • 总成本: ~835 USDC
  • 触发积分: 5,760 次操作

💡 提示: 实际收益取决于 Backpack 积分价值

🔧 高级功能

1. 动态本金策略

  • 余额 ≥ principal_usdt: 使用设定本金
  • 余额 < principal_usdt: 使用全部余额
  • 余额 < min_balance_usdt: 停止运行

2. 自动还款机制

  • 步骤 ⑤ 赎回:卖出时自动完成(auto_lend_redeem=True
  • 步骤 ⑫ 还款:买入时自动完成(auto_borrow_repay=True

3. 保证金保护

  • 1x 杠杆需要 100% 保证金
  • 每次开仓前检查余额
  • 不足时报错并停止

⚠️ 风险提示

  1. 价格滑点: 选择流动性好的交易对(如 SOL/USDC)
  2. 保证金风险: 1x 杠杆降低爆仓风险
  3. API 失败: 内置重试机制(默认3次)
  4. 资金安全: 妥善保管 API 密钥,不授予提现权限
  5. 手续费损耗: 频繁交易会产生手续费

🔧 故障排查

❌ "请设置 API 密钥"

# 检查密钥文件
ls api_key_01.txt api_secret_01.txt

# 或使用环境变量
export BPX_API_KEY="你的公钥"
export BPX_API_SECRET="你的私钥"

❌ "INSUFFICIENT_MARGIN"

# 在 config.yml 中降低比例或增加余额
first_leg_ratio: 0.8
borrow_ratio: 0.4

❌ "Request has expired"

# 已在 config.yml 中设置为 30 秒
api:
  window: 30000

📊 查看日志

# 查看最近日志
tail -50 backpack_points_logs.csv

# 查看运行状态
cat backpack_points_state.json

# 实时监控
tail -f backpack_points_logs.csv

📚 文档资源

🧪 测试流程

# 1. 模拟运行(推荐先测试)
# 在 config.yml 中设置 simulate: true
python backpack_points_runner.py

# 2. 小额真实测试(单次)
# 在 config.yml 中设置:
#   simulate: false
#   principal_usdt: 100
#   loop_mode: false
python backpack_points_runner.py

# 3. 正式运行(循环模式)
# 在 config.yml 中设置:
#   simulate: false
#   loop_mode: true
python backpack_points_runner.py

🚀 生产环境运行

Linux/Mac 后台运行

# 使用 nohup
nohup python backpack_points_runner.py > output.log 2>&1 &

# 查看进程
ps aux | grep backpack

# 停止进程
kill <进程ID>

使用 screen/tmux(推荐)

# 创建会话
screen -S backpack
#
tmux new -s backpack

# 运行脚本
python backpack_points_runner.py

# 分离: Ctrl+A+D (screen) 或 Ctrl+B+D (tmux)

# 重新连接
screen -r backpack
#
tmux attach -t backpack

定时运行

# 编辑 crontab
crontab -e

# 每天早上 9 点运行 2 小时(在 config.yml 中设置 loop_mode: true)
0 9 * * * cd /path/to/script && timeout 2h python backpack_points_runner.py

🔒 安全建议

  1. API 密钥安全

    • 不要授予提现权限
    • 定期更换密钥
    • 不要将密钥上传到 GitHub
  2. 资金管理

    • 初期使用小额资金测试
    • 设置合理的 min_balance_usdt
  3. 风险控制

    • 避免在市场剧烈波动时运行
    • 定期检查手续费支出
    • 监控积分获取情况

📝 版本信息

版本: v2.0.0
更新时间: 2025-10-29
许可证: MIT License

依赖

  • Python 3.8+
  • bpx-py (官方 SDK)
  • PyYAML (配置文件支持)

更新日志

v2.0.0 (2025-10-29)

  • ✨ 新增 YAML 配置文件支持
  • ✨ 新增循环执行模式
  • ✨ 新增动态本金策略
  • 🐛 修复 API 时间窗口过期问题
  • 🐛 修复还款机制
  • 📝 完善文档

⚖️ 免责声明

  1. 本脚本仅供学习和研究使用
  2. 加密货币交易存在风险,请谨慎使用
  3. 作者不对使用本脚本造成的任何损失负责
  4. 请遵守当地法律法规和交易所规则
  5. 建议先使用小额资金测试
  6. 频繁交易可能产生大量手续费
  7. 积分政策可能随时变化

祝你刷分顺利!🚀

如有问题,请查看文档或提交 Issue。

License: MIT Python 3.8+

About

Backpack Exchange 积分刷分自动化脚本

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages