浏览卡包
浏览公开卡包可省略
x-builder-api-key。传入密钥还可看到专门向你的应用开放的卡包。列表会省略无权访问的卡包。使用这类卡包的 slug 查询会返回 HTTP 404。使用密钥的请求会计入该密钥的限流额度。
准备购买时使用目录中的 id,核对钱包签名时使用 onChainPackId。activeSetExpectedValueInUsd 是当前整组卡牌的平均价值,单位为美分。剩余卡牌的平均价值可能不同。
提交抽卡
1
准备购买
将买家钱包地址、目录中的卡包 ID 和数量提交至准备抽卡接口。核对返回的钱包、链、卡包 ID、售卡机合约和每张卡的价格,确保与买家确认的内容一致。
2
检查 USDT 授权额度
在
approval 中核对所选网络的 USDT 合约、Permit2 支出方和所需额度。如果需要授权,钱包必须有 BNB 支付 Gas。等待授权交易确认后再继续。3
签署购买数据
核对 Permit2 的域、支出方、金额、nonce 和截止时间。检查 witness 中的链上卡包 ID、开发者代码和数量,再让买家签署
permit2TypedData。从 unsignedPullPayload 复制 packId、numOfTokens、amountPerToken、nonce 和 deadline,再加上 buyerWalletAddress 和 permitSignature。接口通过密钥确定开发者代码。4
提交一次,跟踪结果
选择下表中的一种方式提交。如果价格或签名内容发生变化,先请买家重新核对。
恢复中断的抽卡
如果已取得requestId,使用原开发者密钥查询请求状态。
如果还没收到 ID 就断开了连接,或提交时收到 HTTP
5xx,请向 POST /v2/gacha/pull/request 重发同一份已签名的抽卡数据,找回原 requestId。每次只发送一个重试请求。如果保存了付款哈希,也可用 buyerWalletAddress 和 permitFundTxHash 查询抽卡结果。
抽卡状态为 FAILED 时,请按 error.code 对应的步骤处理。若为 INSUFFICIENT_USDT_AMOUNT,请补足钱包的 USDT 余额。若为 INSUFFICIENT_ALLOWANCE,请提高 Permit2 授权额度。等待链上确认后,在签名截止前重发原请求即可使用同一 ID 重新抽卡。如果签名已过期,请重新准备并签名。
回购与交付
抽卡结果确定后,卡牌在回购期内由 Renaiss 保管。买家可以接受当前回购报价,也可以保留卡牌,等待转入钱包。回购价值与加成
卡牌有加成时,
buybackBonus.originalBuybackBaseValueInUSD 是加成前的价值,单位为美分。buybackBonus.bonusBps 是以基点表示的比例,例如 2000 表示 20%。接口返回的基础价值和各档金额已包含加成,可直接使用。
以下响应提供 buybackBonus:抽卡结果查询、事件流的 draws_resolved 事件、已完成抽卡请求的 result、钱包活动、卡包公开抽卡记录,以及回购期内的钱包藏品。如果没有加成或无法读取抽卡详情,该字段为 null。查询卡包公开记录时,省略开发者密钥也会使该字段返回 null。
回售卡牌
- 查询买家的回购报价。按顺序读取
buybackTiers,展示第一个未过期档位的金额。金额为零时没有回购款。如果价格变化,先展示新金额,再请求签名。 - 请买家签署
BuybackUserAuthorization。一笔回购可包含同一卡包和合约的 1 至 10 个结算 ID。每个 ID 都须符合回购条件,且不能重复。 - 选择直接结算或提交后轮询。轮询时,保存返回的
requestId,约每秒查询一次回购状态,直到返回COMPLETED或FAILED。
PENDING 持续超过十分钟,请停止轮询,携原 requestId 联系 Renaiss。
回购状态为 FAILED 且错误码为 OP_WALLET_BUSY 时,请稍等几秒,再使用原签名重试。其他错误请先刷新回购报价,再签署新请求。
保留卡牌
回购期从抽卡结果确定时开始,时长取当时卡包buybackConfig 中最大的 buybackExpiredInSeconds。后续调整仅影响之后的抽卡。
回购期结束后,Renaiss 会将卡牌转入买家钱包。展示“已到账”前,核对 releaseTxHash 和链上持有人。卡牌出现在公开记录中时,交付仍可能尚未完成。