Skip to main content
签名证明是一种加密证据,用于证明某个钱包属于您的账户,无需转移资金,也无需链上交易。CBPay 构建一个结构化、可读性强的防钓鱼信封(标题、用途、钱包、随机数和有效期窗口),钱包使用 EIP-191(以太坊)或 TIP-191(波场)对其进行签名,任何人都可以通过公开链接验证结果 — 无需身份验证。 生成证明有两种方式:
每个证明在签发后 10 分钟过期(expires_at)。证明仅证明某个时间点;如果对方需要新的证明,请创建新的签名。

防钓鱼信封

CBPay 从不签署自由格式的消息。两种流程都构建相同的结构化信封,因此签名者始终能看到正在证明什么哪个钱包在签名以及有效期到何时:
wallet_link 用途会添加一行 Account:,其中包含您账户 ID 的掩码。如果签名对应的信封已过期、尚未生效或绑定到其他钱包,则会被拒绝。

1. 服务端签名(隔离钱包)

使用由 CBPay 托管的隔离钱包(custody: cbpay)进行签名。由于此流程使用托管密钥生成签名,因此需要 KYC 已批准OTP 挑战。
1

创建 OTP 挑战

sign_message 操作请求一次性验证码,并进行验证以获取 X-OTP-Token(参见 OTP)。
2

请求签名

purposewallet_ownershiptreasury_attestationstatement 是可选的自由文本行(最多 140 个字符),嵌入在信封中。
201
3

分享公开链接

verify_url 发送给对方。他们无需凭证即可打开并查看证明、其状态和签名。
每次签名还会触发向账户所有者发送安全电子邮件以及 wallet_signature_created webhook。

列表、详情和撤销

要证明您持有密钥的钱包(非 CBPay 托管)的所有权,请完成签名挑战:
1

创建挑战

201
2

在钱包中签名信封

向所有者显示 envelope 文本,并要求他们使用 address 对应的钱包按原样签名(以太坊使用 MetaMask personal_sign,波场使用 TronLink)。挑战将在 10 分钟后过期。
3

提交签名

200
验证成功会创建一个签名证明(purpose: wallet_link)并触发 wallet_linked webhook。列出和撤销绑定:

3. 公开验证

任何拥有链接的人都可以验证证明 — 无需账户,无需令牌:
200
只有当证明已签名、未撤销、未过期且签名仍与信封匹配时,valid 才为 true(verified_live 会在每次调用时重新检查加密算法)。未知或格式错误的代码将返回 404 not_found

状态

错误

Webhooks

订阅这些事件(参见 Webhooks):
wallet_signature_created
wallet_linked

常见问题

不会。签名消息纯粹是加密操作:无链上交易,无网络费用,无余额变动。
issued_at 起 10 分钟。之后公开链接会显示证明已过期。需要新的证明时,请创建新的签名。
可以 — POST /v1/signature-proofs/{proofID}/revoke。公开链接仍然有效,并报告 status: revoked,因此过去的验证仍可审计。
任何支持以太坊 personal_sign(EIP-191)或波场消息签名(TIP-191)的钱包 — MetaMask、TronLink 及兼容钱包。
信封最多接受 140 个字符的声明。超过 280 个字符的请求会以 invalid_statement 失败;在 141 到 280 个字符之间,信封会以 sign_rejected 拒绝。
最后修改于 2026年8月22日