每个证明在签发后 10 分钟过期(
expires_at)。证明仅证明某个时间点;如果对方需要新的证明,请创建新的签名。防钓鱼信封
CBPay 从不签署自由格式的消息。两种流程都构建相同的结构化信封,因此签名者始终能看到正在证明什么、哪个钱包在签名以及有效期到何时:wallet_link 用途会添加一行 Account:,其中包含您账户 ID 的掩码。如果签名对应的信封已过期、尚未生效或绑定到其他钱包,则会被拒绝。
1. 服务端签名(隔离钱包)
使用由 CBPay 托管的隔离钱包(custody: cbpay)进行签名。由于此流程使用托管密钥生成签名,因此需要 KYC 已批准和 OTP 挑战。
1
创建 OTP 挑战
为
sign_message 操作请求一次性验证码,并进行验证以获取 X-OTP-Token(参见 OTP)。2
请求签名
purpose 为 wallet_ownership 或 treasury_attestation。statement 是可选的自由文本行(最多 140 个字符),嵌入在信封中。201
3
分享公开链接
将
verify_url 发送给对方。他们无需凭证即可打开并查看证明、其状态和签名。wallet_signature_created webhook。
列表、详情和撤销
2. 绑定外部钱包(MetaMask / TronLink)
要证明您持有密钥的钱包(非 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
常见问题
签名证明会转移资金或消耗 gas 吗?
签名证明会转移资金或消耗 gas 吗?
不会。签名消息纯粹是加密操作:无链上交易,无网络费用,无余额变动。
证明有效期是多久?
证明有效期是多久?
从
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 拒绝。