> ## Documentation Index
> Fetch the complete documentation index at: https://docs.renaiss.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a draw by funding hash

> Look up a draw using the buyer’s wallet and the original funding transaction hash.

Send the original buyer wallet and funding hash with the same builder key. A transaction from another builder returns HTTP `404`.

A result can arrive before the card reaches the wallet. See [buybacks and delivery](https://docs.renaiss.xyz/gacha.md#buybacks-and-delivery) for custody, transfer confirmation and when a draw becomes public.

## Request

Builder key required

## Response

## Error codes

Match the HTTP status and response text to a row below. For guidance on codes shared across endpoints, see [Error meanings and recovery](https://docs.renaiss.xyz/api-reference/errors.md).

| HTTP | Error code | Text field | Response text and recovery |
| :- | :- | :- | :- |
| `400` | `WRONG_REQUEST_PARAMS` | `message` | `Bad request - invalid parameters` A field is missing or has the wrong form. Fix the request and send it again. |
| `401` | `API_AUTH_INVALID_CREDENTIAL` | `error` | `Invalid authentication credential` The builder key is malformed, unknown, expired or revoked. Check the key. Do not retry with the same key. |
| `401` | `API_AUTH_MISSING_CREDENTIAL` | `error` | `Required authentication credential is missing` No builder key was sent. Send your builder key in the `x-builder-api-key` header. |
| `403` | `API_AUTH_CREDENTIAL_NOT_ALLOWED` | `error` | `Credential is not allowed by this policy` This route takes a builder key only. Remove the `Authorization` header and any other credential, then send the request again. |
| `403` | `GACHA_V3_BUILDER_NOT_ACCEPTED_ON_PUBLIC_API` | `error` | `This builder checks out on its own surface, not on the public API` This builder key cannot be used on this API. Do not retry; contact Renaiss. |
| `404` | `EOA_PURCHASE_REJECTED` | `error` | `Confirmed pull not found` There is no confirmed pull for this wallet and funding transaction hash under your builder key. Check both values. A payment that was just sent may not be mined yet: try again in a few seconds. |
| `429` | `API_AUTH_RATE_LIMITED` | `error` | `Authentication rate limit exceeded` The builder key hit its rate limit. Wait a little, then retry at a lower rate. |
| `500` | `API_AUTH_ERROR` | `error` | `Internal server error` |
| `500` | `FUNCTION_ERROR` | `error` | `Internal server error` |
| `500` | Other code | `error` | `Internal server error` |


## OpenAPI

````yaml api-reference/openapi.json GET /v2/gacha/draw-status
openapi: 3.1.1
info:
  version: 1.0.0
  title: Renaiss Builder API v2
  description: >-
    Builder API v2 for gacha, marketplace and redemption with external wallets
    on BNB Smart Chain (chain 56). Any active, approved builder key can prepare
    purchases.


    A collectible is an item a wallet can pull, trade, sell back or redeem, such
    as a card. This API calls every such item a collectible (e.g. cards), in
    paths, fields and descriptions.


    Browse publicly, then prepare and sign actions with the buyer wallet. Gacha
    history and buyback offers require your builder key; purchases and buybacks
    also require a wallet action signature. Private shipping data and redemption
    require a wallet access token, which the API issues from a registered
    partner origin after the wallet signs a sign-in message. Gacha and
    marketplace never use a wallet access token. Keep the builder key on your
    backend.


    The acting wallet is an EOA or a deployed ERC-1271 contract account.
    EIP-7702 delegated accounts, ERC-6492 and ERC-8010 wrapped signatures and
    Renaiss-managed Safes are refused (a Safe only after its signature
    verified). A pull to a contract account that cannot receive ERC-721 tokens
    returns `CONTRACT_WALLET_CANNOT_RECEIVE_NFT`. A failed chain read returns
    `API_AUTH_ERROR` (500). Wallet access tokens and redemption are EOA only.
servers:
  - url: https://api.renaiss.xyz
    description: BNB Smart Chain
  - url: https://dev-api.renaiss.xyz
    description: BNB testnet
security: []
tags:
  - name: Gacha v2
    description: >-
      Direct-EOA pack browsing, purchases, collectible (e.g. card) reveals,
      purchase history and buybacks. Start here; no wallet access token is
      needed.
  - name: Marketplace
    description: >-
      Public collectible (e.g. card) browsing and external-wallet asks, bids,
      purchases and cancellations. Trading requires builder authorization and
      wallet action signatures.
  - name: Users
    description: >-
      What one wallet address has and did: its collectibles (e.g. cards), their
      total market value and its activities. The whole wallet, whichever builder
      it used. Requires your builder key only.
  - name: Redemption
    description: >-
      Shipping eligibility, quotes, redemption preparation, submission and
      tracking. Requires your builder key and a wallet access token for the same
      wallet.
  - name: Wallet access tokens
    description: >-
      Get, refresh and revoke the wallet access tokens that Redeem needs. The
      wallet signs a sign-in message (valid 5 minutes, one use); the API returns
      a wallet access token (15 minutes) and a refresh token (7 days, single
      use). Register exact partner frontend origins with Renaiss before use.
      Gacha and marketplace never use a wallet access token.
paths:
  /v2/gacha/draw-status:
    get:
      tags:
        - Gacha v2
      summary: >-
        Get the status of one of this builder's pulls by confirmed funding
        transaction
      description: >-
        Look up a draw using the buyer’s wallet and the original funding
        transaction hash.
      parameters:
        - schema:
            type: string
          required: true
          name: buyerWalletAddress
          in: query
        - schema:
            type: string
          required: true
          name: permitFundTxHash
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  permitFundTxHash:
                    type: string
                    description: 32 bytes encoded as 0x followed by 64 hexadecimal digits.
                  buyerWalletAddress:
                    type: string
                    description: >-
                      20-byte, 0x-prefixed wallet or contract address. Use
                      lowercase or a valid checksum.
                  packId:
                    type: string
                    format: uuid
                  packName:
                    type: string
                  status:
                    type: string
                    enum:
                      - PENDING_RESOLUTION
                      - RESOLVED
                  numOfTokens:
                    type: integer
                    exclusiveMinimum: 0
                  pulledAt:
                    type:
                      - string
                      - 'null'
                    format: date-time
                  draws:
                    type: array
                    items:
                      type: object
                      properties:
                        settlementId:
                          type: string
                          description: >-
                            32 bytes encoded as 0x followed by 64 hexadecimal
                            digits.
                        tokenId:
                          type: string
                        releaseTxHash:
                          type:
                            - string
                            - 'null'
                          description: >-
                            32 bytes encoded as 0x followed by 64 hexadecimal
                            digits.
                        buybackTxHash:
                          type:
                            - string
                            - 'null'
                          description: >-
                            32 bytes encoded as 0x followed by 64 hexadecimal
                            digits.
                        buybackTiers:
                          type: array
                          items:
                            type: object
                            properties:
                              buybackPercentage:
                                type: number
                                description: >-
                                  Percent of the card's base value, e.g. 90
                                  means 90%.
                              amountInUsdt:
                                type: string
                                description: Price in USDT with 18 decimals in this tier.
                              expiresAt:
                                type: string
                                description: >-
                                  When this tier ends. The tier still applies at
                                  that moment.
                            required:
                              - buybackPercentage
                              - amountInUsdt
                              - expiresAt
                          description: >-
                            Every buyback tier of this draw, past ones too,
                            soonest end first, with the same prices as `GET
                            /v2/gacha/buyback/offers`. The price at a moment is
                            the `amountInUsdt` of the first tier whose
                            `expiresAt` has not passed; a tier still applies at
                            its `expiresAt`. Use it to display the offer. Before
                            the user confirms a buyback, read `GET
                            /v2/gacha/buyback/offers` and sign the amount it
                            returns. The list stays the same after the
                            collectible is sold back or delivered: read
                            `buybackTxHash` and `releaseTxHash` for that. Empty
                            when the draw has no buyback.
                        tier:
                          anyOf:
                            - type: string
                              enum:
                                - TOP
                                - S
                                - A
                                - B
                                - C
                                - D
                            - type: string
                              enum:
                                - epic
                                - rare
                                - uncommon
                                - common
                                - legendary
                                - thorn
                                - bloom
                                - crown
                            - type: 'null'
                          description: >-
                            The collectible's tier for this draw. Null when the
                            collectible details could not be loaded.
                        buybackBaseValueInUSD:
                          type:
                            - string
                            - 'null'
                          description: >-
                            The collectible's base buyback value in USD cents,
                            bonus included. Null when the collectible details
                            could not be loaded.
                        buybackBonus:
                          type:
                            - object
                            - 'null'
                          properties:
                            originalBuybackBaseValueInUSD:
                              type: string
                              description: >-
                                The base buyback value before the bonus, in USD
                                cents. Frozen when the set formed.
                            bonusBps:
                              type: integer
                              description: 'The bonus in basis points: 2000 means +20%.'
                          required:
                            - originalBuybackBaseValueInUSD
                            - bonusBps
                          description: >-
                            The buyback bonus of this collectible. The base
                            buyback value field next to it and the
                            `buybackTiers` amounts already include the bonus: do
                            not apply it again. Null when the collectible has no
                            bonus. Null when the collectible details could not
                            be loaded.
                        type:
                          type: string
                          enum:
                            - POKEMON
                            - ONE_PIECE
                            - SPORTS
                          description: The collectible's category.
                        name:
                          type: string
                          description: Grade, year, set, number and title.
                        frontImageUrl:
                          type: string
                          format: uri
                          description: >-
                            The graded slab in its Renaiss frame, on a dark
                            background.
                        attributes:
                          type: array
                          items:
                            type: object
                            properties:
                              key:
                                type: string
                              value:
                                type: string
                            required:
                              - key
                              - value
                          description: >-
                            The collectible's details as key and value pairs.
                            For a card, the keys in this order: Grader, Grade,
                            Cert Number, Year, Set, Card Number, Character,
                            Language. A key without a value is left out. Every
                            value is a string.
                      required:
                        - settlementId
                        - tokenId
                        - releaseTxHash
                        - buybackTxHash
                        - buybackTiers
                        - tier
                        - buybackBaseValueInUSD
                        - buybackBonus
                required:
                  - permitFundTxHash
                  - buyerWalletAddress
                  - packId
                  - packName
                  - status
                  - numOfTokens
                  - pulledAt
                  - draws
        '400':
          description: >-
            The request was refused before anything happened.


            See [error codes and
            recovery](/api-reference/gacha/get-draw#http-errors).
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - WRONG_REQUEST_PARAMS
                  message:
                    type: string
                    description: A short sentence about what went wrong.
                required:
                  - code
                  - message
              example:
                code: WRONG_REQUEST_PARAMS
                message: Bad request - invalid parameters
        '401':
          description: >-
            The builder key is missing or not accepted.


            See [error codes and
            recovery](/api-reference/gacha/get-draw#http-errors).
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: A short sentence about what went wrong.
                  code:
                    type: string
                    enum:
                      - API_AUTH_MISSING_CREDENTIAL
                      - API_AUTH_INVALID_CREDENTIAL
                required:
                  - error
                  - code
              example:
                error: Required authentication credential is missing
                code: API_AUTH_MISSING_CREDENTIAL
        '403':
          description: >-
            The builder key is not allowed to make this request.


            See [error codes and
            recovery](/api-reference/gacha/get-draw#http-errors).
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: A short sentence about what went wrong.
                  code:
                    type: string
                    enum:
                      - API_AUTH_CREDENTIAL_NOT_ALLOWED
                      - GACHA_V3_BUILDER_NOT_ACCEPTED_ON_PUBLIC_API
                required:
                  - error
                  - code
              example:
                error: Credential is not allowed by this policy
                code: API_AUTH_CREDENTIAL_NOT_ALLOWED
        '404':
          description: >-
            No confirmed pull was found.


            See [error codes and
            recovery](/api-reference/gacha/get-draw#http-errors).
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: A short sentence about what went wrong.
                  code:
                    type: string
                    enum:
                      - EOA_PURCHASE_REJECTED
                required:
                  - error
                  - code
              example:
                error: Confirmed pull not found
                code: EOA_PURCHASE_REJECTED
        '429':
          description: >-
            Too many requests with this builder key.


            See [error codes and
            recovery](/api-reference/gacha/get-draw#http-errors).
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: A short sentence about what went wrong.
                  code:
                    type: string
                    enum:
                      - API_AUTH_RATE_LIMITED
                required:
                  - error
                  - code
              example:
                error: Authentication rate limit exceeded
                code: API_AUTH_RATE_LIMITED
        '500':
          description: >-
            A failure on our side. Retry later.


            See [error codes and
            recovery](/api-reference/gacha/get-draw#http-errors).
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: A short sentence about what went wrong.
                  code:
                    type: string
                required:
                  - error
                  - code
              example:
                error: Internal server error
                code: FUNCTION_ERROR
      security:
        - builderAuth: []
components:
  securitySchemes:
    builderAuth:
      type: apiKey
      in: header
      name: x-builder-api-key
      description: >-
        Your approved builder API key. Keep it on your backend. Gacha and
        marketplace writes also require wallet action signatures. Redeem also
        needs a wallet access token, a Bearer token the API issues after the
        wallet signs a sign-in message.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.