跳转到主要内容
POST
提交已签名抽卡请求并按请求 ID 轮询

提交并跟踪抽卡

  1. 签署购买请求。 让买家签署准备抽卡返回的完整 Permit2 数据,再用开发者密钥提交。流式接口使用相同的请求体和签名校验规则。
  2. 保存请求 ID。 接口立即返回 HTTP 202、requestId 和当前状态。此次购买归属于当前开发者和买家钱包。
  3. 查询结果。 使用该 ID 约每秒查询一次抽卡状态,直到返回 RESOLVED 或 FAILED。
如果没有收到响应,重新发送同一份已签名的数据即可找回原 requestId。失败的请求可以重新启动,同一签名最多扣款一次。如果 PENDING_PAYMENT 持续超过 10 分钟,请停止轮询,并在再次签名前携原 requestId 联系 Renaiss。

请求

需要开发者密钥和钱包签名

响应

提交后的失败

首次提交返回 HTTP 202 和 PENDING_PAYMENT。重发同一签名可能会重新开始失败的请求。如只需查询,请使用原 requestId 轮询。状态为 FAILED 表示未扣款。多数错误的 error.message 都是 Unable to fund the pull.。如果接口返回其他消息,表中会列出原文。
如果遇到表中未列出的错误码,请先核对该钱包的抽卡历史,再决定是否重新签名。主网的 USDT 转账因授权额度不足而失败时,也可能返回 INSUFFICIENT_USDT_AMOUNT。请同时检查钱包余额和授予 Permit2 的 USDT 额度。测试网上,余额充足但授权额度不足时会返回 INSUFFICIENT_ALLOWANCE。

错误码

如果接口返回 HTTP 4xx 或 5xx,可按下表中的状态码和响应原文查找处理方式。有关各接口通用的处理建议,请参阅错误码含义与处理方式。

授权

x-builder-api-key
string
header
必填

已获准使用的开发者 API 密钥,仅在后端保存。抽卡和市场的写入操作还需钱包签名,实物兑换还需钱包签署登录消息后由 API 签发的 Bearer 令牌。

请求体

application/json
packId
string<uuid>
必填
numOfTokens
integer
必填
必填范围: 1 <= x <= 10
amountPerToken
string
必填
Pattern: ^\d+$
nonce
string
必填
Pattern: ^\d+$
deadline
integer
必填
buyerWalletAddress
string
必填
permitSignature
string
必填

对准备结果中结构化数据的签名,以最多 4,096 字节的十六进制表示。EOA 直接签署结构化数据;合约钱包提交其 isValidSignature 针对 EIP-712 摘要接受的数据,允许为空(0x)。调用方为 Permit2,签名在支付前及链上各验证一次。

响应

已接受抽卡请求,响应体为请求状态。

requestId
string<uuid>
必填
status
enum<string>
必填
  • PENDING_PAYMENT — 抽卡请求已受理,付款正在处理中。
  • PENDING_RESOLUTION — 付款已确认,系统正在分配卡牌。此后状态不会变为 FAILED。
  • RESOLVED — 抽卡已完成。可在 result.draws 中查看抽到的卡牌。
  • FAILED — 买家未被扣款。可通过 error.code 查看原因。
可用选项:
PENDING_PAYMENT,
PENDING_RESOLUTION,
RESOLVED,
FAILED
buyerWalletAddress
string
必填

带 0x 前缀的 20 字节钱包或合约地址。请使用全小写或有效的校验和格式。

packId
string<uuid>
必填
nonce
string
必填
numOfTokens
integer
必填
permitFundTxHash
string | null
必填

付款交易哈希,确认前为 null。

error
object | null
必填

仅当 status 为 FAILED 时返回 code 和 message,其余状态均为 null。 参见失败原因与处理方式。

result
object · null · null
必填

与本次抽卡 GET /v2/gacha/draw-status 的响应体相同。仅 RESOLVED 时有值,否则为 null。