📦 Binance P2p — 币安P2P助手

v1.0.0

币安点对点交易助手,可查询P2P价格、广告、支付方式及历史订单,不支持现货/合约行情。

0· 77·0 当前·0 累计
by @dexploarer (Dexploarer)
下载技能包
最后更新
2026/4/1
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
技能说明需要Binance API密钥与签名,但注册元数据声明无需凭证或安装步骤——该不匹配及需处理机密信息,安装前需谨慎。
评估建议
该技能实现了所声称的功能(公开查询+可选认证订单历史),但存在明显不一致:捆绑的SKILL.md要求BINANCE_API_KEY与BINANCE_SECRET_KEY,而注册元数据未列出任何凭证。安装或提供密钥前: - 要求发布者修正注册元数据,明确所需环境变量及主凭证。可信技能应在注册处声明密钥需求。 - 若启用个人订单功能,创建只读权限的专用Binance API密钥,启用IP白名单,避免关联大额资产。 - 尽量在运行时/会话注入密钥,勿写入磁盘;若必须保存,需经用户明确同意,确保文件加入.gitignore并受保护。 - 对照官方文档验证SAPI签名说明(“不排序参数”说法非常规,需确认)。 - 因技能仅含指令,会执行curl/openssl类命令签名调用;限制执行环境,勿向不受信任代理提供机密。 若无法确认发布者或不愿共享密钥,仅使用公开功能或拒绝安装。...
详细分析 ▾
用途与能力
SKILL.md明确支持公开(无需认证)查询及需BINANCE_API_KEY与BINANCE_SECRET_KEY的个人订单端点。然而注册元数据未列出所需环境变量或主凭证,形成内部不一致。币安P2P订单历史功能确实需要API凭证,注册处应予以声明。缺乏主页/所有者信息增加不确定性。
指令范围
指令聚焦P2P查询与SAPI认证订单历史,提供详细签名指导(HMAC SHA256、百分号编码、SAPI参数顺序)。要求代理使用环境变量存储凭证,掩码输出中的机密,并仅在用户同意时写入磁盘。包含具体shell示例(openssl、curl),符合HMAC签名场景但赋予代理显式shell级操作。强调SAPI要求保持参数插入顺序,该要求非常规,需对照官方文档验证。
安装机制
本技能仅为指令,无安装规范与代码文件,默认不会写入磁盘或下载内容,降低安装风险。
凭证需求
SKILL.md需两个敏感环境变量(BINANCE_API_KEY与BINANCE_SECRET_KEY)以支持个人订单功能,与所声称的第二阶段能力相符。但注册元数据未声明所需环境变量或主凭证,形成可能隐藏密钥需求的内部不一致。请求API密钥与密钥对签名请求属正常,但技能应正式声明并记录所需最小权限(已建议只读)。
持久化与权限
技能非常驻,不请求系统级配置路径或其他技能配置。SKILL.md明确建议未经用户同意勿将机密写入磁盘,并提示使用.env及.gitignore。平台默认允许自主调用,但技能未请求提升的持久化权限。
安全有层次,运行前请审查代码。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/4/1

初始版本,来自 milady-ai/skills

无害

安装命令

点击复制
官方npx clawhub@latest install binance-p2p
镜像加速npx clawhub@latest install binance-p2p --registry https://cn.longxiaskill.com

技能文档

帮助用户通过自然语言查询与 Binance P2P(C2C) 交互。

何时使用 / 何时不使用

当用户想执行以下操作时,请使用本技能:

  • 查询某个加密资产/法币对的 P2P 买卖报价(如 USDT/CNY)。
  • 搜索 P2P 广告,并按支付方式、限额、商家质量等条件筛选。
  • 比较不同支付方式的价格(如支付宝 vs 银行转账)。
  • 查看 自己的 P2P 订单历史 / 汇总(需提供 API 密钥)。

当用户询问以下内容时,请勿使用本技能:

  • 现货/闪兑价格、合约/衍生品、杠杆、交易机器人。
  • 充值/提现、钱包转账、链上交易。
  • 创建/取消订单、申诉、放币(交易操作)。

如缺少关键输入,请主动澄清(不要猜测):

  • fiat(如 CNY)
  • asset(如 USDT)
  • 用户意图:买币 还是 卖币
  • 首选支付方式
  • 目标金额(可选,但推荐用于广告过滤)

核心概念

tradeType 映射(避免歧义)

  • 用户想 买币(支付法币,获得 USDT/BTC)→ tradeType=BUY
  • 用户想 卖币(获得法币,支付 USDT/BTC)→ tradeType=SELL

当用户表述模糊时,始终在回复中反映此映射。

功能

第一阶段 —— 公开市场(无需身份验证)

  • 查询 P2P 价格
  • 搜索广告
  • 比较支付方式
  • 按限额与商家指标过滤/排序广告

第二阶段 —— 个人订单(需 API 密钥)

  • 列出 P2P 订单历史
  • 按交易类型 / 时间范围过滤
  • 提供汇总统计

安全与隐私规则

凭据

所需环境变量:
  • BINANCE_API_KEY(作为 header 发送)
  • BINANCE_SECRET_KEY(用于签名)

绝不显示完整密钥

  • API Key:显示 前 5 + 后 4 字符:abc12...z789
  • Secret Key:始终掩码;仅显示 最后 5 位...c123

最小权限

  • Binance API 权限:仅开启读取
  • 不要请求/鼓励开通交易、提现或修改权限。

存储建议

  • 优先使用环境注入(会话/运行时环境变量),而非写入磁盘。
  • 仅在用户明确同意时才写入 .env
  • 保存前确保 .env 已加入 .gitignore

⚠️ 关键:SAPI 签名(与标准 Binance API 不同)

参数排序

  • 不要对参数排序 用于 SAPI 请求。
  • 构建查询字符串时保持原始插入顺序。
示例:
# ✅ SAPI 正确:保持插入顺序
params = {"page": 1, "rows": 20, "timestamp": 1710460800000}
query_string = urlencode(params)  # 不排序

# ❌ 错误(仅标准 Binance API 需要):排序 query_string = urlencode(sorted(params.items()))

签名细节

参见:references/authentication.md,内含:
  • RFC 3986 百分号编码
  • HMAC SHA256 签名流程
  • 所需 header(含 User-Agent)
  • SAPI 特有的参数排序

API 概览

公开查询(MGS C2C Agent API — 无需身份验证)

Base URL: https://www.binance.com

接口方法参数用途
/bapi/c2c/v1/public/c2c/agent/quote-priceGETfiat, asset, tradeType快速价格查询
/bapi/c2c/v1/public/c2c/agent/ad-listGETfiat, asset, tradeType, limit, order, tradeMethodIdentifiers搜索广告
/bapi/c2c/v1/public/c2c/agent/trade-methodsGETfiat获取支付方式
参数说明:
  • tradeTypeBUYSELL(大小写不敏感)
  • limit:1–20(默认 10)
  • tradeMethodIdentifiers:以 纯字符串 传递(非 JSON 数组)——例如 tradeMethodIdentifiers=BANKtradeMethodIdentifiers=WECHAT。值 必须 使用 trade-methods 接口返回的 identifier 字段(见下方流程)。
⚠️ 请勿使用 JSON 数组语法如 ["BANK"]——会返回空结果。

流程:按支付方式比较价格

当用户想比较不同支付方式价格(如“支付宝 vs 微信”),按以下两步执行:

步骤 1 —— 调用 trade-methods 获取目标法币的正确标识符:

GET /bapi/c2c/v1/public/c2c/agent/trade-methods?fiat=CNY
→ [{"identifier":"ALIPAY",...}, {"identifier":"WECHAT",...}, {"identifier":"BANK",...}]

步骤 2 —— 将 identifier 作为纯字符串传入 ad-listtradeMethodIdentifiers,每种支付方式各请求一次,然后比较:

GET /bapi/c2c/v1/public/c2c/agent/ad-list?fiat=CNY&asset=USDT&tradeType=BUY&limit=5&tradeMethodIdentifiers=ALIPAY&tradeMethodIdentifiers=WECHAT
对比每组结果中的最优价格。

重要: 不要硬编码标识符如 "Alipay""BANK"。始终先调用 trade-methods 获取对应法币的精确 identifier 字符串。

个人订单(Binance SAPI — 需身份验证)

Base URL: https://api.binance.com

接口方法身份验证用途
/sapi/v1/c2c/orderMatch/listUserOrderHistoryGET订单历史
/sapi/v1/c2c/orderMatch/getUserOrderSummaryGET用户统计
身份验证要求:
  • Header:X-MBX-APIKEY
  • Query:timestamp + signature
  • Header:User-Agent: binance-wallet/1.0.0 (Skill)

输出格式指南

价格报价

  • 当双边都有数据时,同时展示(最佳买入 / 最佳卖出)。
  • 使用法币符号并保留两位小数。示例:
USDT/CNY (P2P)
  • 买入 USDT(你买币):¥7.20
  • 卖出 USDT(你卖币):¥7.18

广告列表

返回
前 N 条 固定格式数据: 1) adNo(广告编号 / 标识符) 2) price(法币价格) 3) 商家名称 4) 成交率 5) 限额 6) 支付方式(标识符)

除非 API 返回,否则不要生成带参数的外部链接。

用户请求下单时:

  • 本技能不支持自动下单。
  • 当用户想下单,提供直达该广告的链接,使用 adNo:
https://c2c.binance.com/en/adv?code={adNo}
  • {adNo}:来自广告列表结果中的广告编号/标识符
示例:https://c2c.binance.com/en/adv?code=123
  • 该链接打开具体广告详情页,用户可直接在此下单。

个人订单

  • 时间格式:YYYY-MM-DD HH:mm (UTC+0) —— 始终以 UTC 时区显示
  • 包含:类型、资产/法币、数量、总额、状态
  • 过滤时提供简要汇总行(笔数 + 总额)

时间字段转换(listUserOrderHistory 中的 createTime):

  • createTime 字段返回 Unix 时间戳,毫秒(13 位)。
  • 转换为 UTC+0 时区* 的可读格式:
# Python 示例
from datetime import datetime, timezone
readable_time = datetime.fromtimestamp(createTime / 1000, tz=timezone.utc).strftime('%Y-%m-%d %H:%M (UTC+0)')

// JavaScript 示例 const readableTime = new Date(createTime).toISOString().replace('T', ' ').slice(0, 16) + ' (UTC+0)'; // 或更明确: const date = new Date(createTime); const readableTime = date.getUTCFullYear() + '-' + String(date.getUTCMonth() + 1).padStart(2, '0') + '-' + String(date.getUTCDate()).padStart(2, '0') + ' ' + String(date.getUTCHours()).padStart(2, '0') + ':' + String(date.getUTCMinutes()).padStart(2, '0') + ' (UTC+0)';

  • 始终向用户展示转换后的时间并带时区信息,而非原始时间戳。

错误处理(面向用户)

  • 无效 API 密钥 (-2015):提示检查 .env / API 管理。
  • 签名失败 (-1022):警告密钥错误、参数排序或时间戳过期。
  • 时间戳无效 (-1021):建议校准时间 / 重新生成时间戳。
  • 限速:请稍后重试。

限制(出于设计)

本技能不会:
  • 下单/撤单
  • 标记已付款 / 放币
  • 提交申诉
  • 发布/修改广告
  • 暴露超出历史/汇总所需的敏感订单详情接口

如需应用内操作,仅引导用户至官方 P2P 订单页面(仅作通用入口)。

开发者说明

版本检查(每次会话首次调用)

每次会话首次调用本技能时,请求:
  • GET /bapi/c2c/v1/public/c2c/agent/check-version?version=1.0.1(Base: https://www.binance.com

行为:

  • needUpdate=true:显示:P2P 技能有新版本可用(当前:{clientVersion},最新:{latestVersion}),建议更新。
  • 否则 / 失败:静默继续。

客户端操作

  • 资产过滤:若 API 不支持,先获取再本地过滤。
  • 汇总:当汇总接口不足时,客户端自行计算总计。
数据来源ClawHub ↗ · 中文优化:龙虾技能库