Bitski Minting API

The Minting API from Bitski — 8 operation(s) for minting.

OpenAPI Specification

bitski-minting-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: NFT Service APIs activity Minting API
  description: ''
  license:
    name: ''
  version: '2.0'
servers:
- url: https://api.bitski.com
tags:
- name: Minting
paths:
  /contracts/{contract_id}/metadata:
    get:
      tags:
      - Minting
      summary: Get contract metadata
      description: Get contract metadata
      operationId: contract_metadata
      parameters:
      - name: contract_id
        in: path
        description: Your Bitski Contract ID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: The contract metadata
          content:
            application/json:
              schema:
                type: object
                required:
                - fee_recipient
                - seller_fee_basis_points
                properties:
                  description:
                    type: string
                    description: The description of the contract
                    example: Best birds in web3
                    nullable: true
                  external_link:
                    type: string
                    description: A url for the entity that owns this contract
                    example: www.bitski.com/@stapleverse
                    nullable: true
                  fee_recipient:
                    type: string
                    description: The recipient for royalties associated with sales
                    example: '0x8b53d6e704485ef70bd02e2a91df126935a127c9'
                  image:
                    type: string
                    description: The contract image
                    example: https://cdn.bitskistatic.com/tokens-raw/54676382-bab5-408d-afe2-fc6f160da4a8/06fd0294-a425-44c7-96e8-9d24757163b4.png
                    nullable: true
                  name:
                    type: string
                    description: The name of the contract
                    example: My Collection Of Birds
                    nullable: true
                  seller_fee_basis_points:
                    type: integer
                    format: int64
                    description: Basis points for sales 2.5% = 250
                    example: 250
  /contracts/{contract_id}/token-metadata/{token_id}:
    get:
      tags:
      - Minting
      summary: Get token metadata
      description: Get token metadata
      operationId: token_metadata
      parameters:
      - name: contract_id
        in: path
        description: Your Bitski Contract ID
        required: true
        schema:
          type: string
          format: uuid
      - name: token_id
        in: path
        description: The id of the token you want metdata for
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The token metadata
          content:
            application/json:
              schema:
                type: object
                properties:
                  attributes:
                    type: array
                    items: {}
                    description: Token attributes
                    example: null
                  background_color:
                    type: string
                    description: Token background color
                    example: null
                    nullable: true
                  description:
                    type: string
                    description: Token description
                    example: A very special NFT
                    nullable: true
                  image:
                    type: string
                    description: The token image
                    example: https://cdn.bitskistatic.com/tokens-raw/54676382-bab5-408d-afe2-fc6f160da4a8/06fd0294-a425-44c7-96e8-9d24757163b4.png
                    nullable: true
                  name:
                    type: string
                    description: Token name
                    example: 'NFT Token #1'
                    nullable: true
                  properties:
                    type: object
                    description: Token properties
  /v1/apps/{app_id}/contracts:
    get:
      tags:
      - Minting
      summary: List all your contracts
      description: List all your contracts
      operationId: list_contracts
      parameters:
      - name: includeTokenTemplates
        in: query
        description: Whether to include token templates in the response
        required: false
        schema:
          type: boolean
      - name: isDeployed
        in: query
        description: Filter by deployment status
        required: false
        schema:
          type: boolean
          nullable: true
      - name: includeWatched
        in: query
        description: Filter by access type
        required: false
        schema:
          type: boolean
          nullable: true
      - name: app_id
        in: path
        description: Your Bitski Application ID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: List contracts
          content:
            application/json:
              schema:
                type: object
                required:
                - contracts
                properties:
                  contracts:
                    type: array
                    items:
                      $ref: '#/components/schemas/Contract'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
      security:
      - oauth2:
        - apps
    post:
      tags:
      - Minting
      summary: Creates the draft of a contract without deploying it.
      description: 'Creates the draft of a contract without deploying it.


        For external contract types like ZORA, "create" just imports it - you never will deploy it since its already deployed.'
      operationId: create_contract
      parameters:
      - name: app_id
        in: path
        description: Your Bitski Application ID
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - contract
              properties:
                contract:
                  allOf:
                  - $ref: '#/components/schemas/ContractType'
                  - type: object
                    required:
                    - network
                    properties:
                      address:
                        type: string
                        description: The address for this contract, if it has already been deployed
                        example: 0x...
                      description:
                        type: string
                        description: Contract description
                        example: A collection of bird NFTs
                        nullable: true
                      externalLink:
                        type: string
                        description: A url for the entity that owns this contract
                        example: www.bitski.com/@stapleverse
                        nullable: true
                      id:
                        type: string
                        format: uuid
                        description: An optional contract id
                        nullable: true
                      name:
                        type: string
                        description: The contract name
                        example: My Contract
                        nullable: true
                      network:
                        type: string
                        description: The ethereum network for this contract
                        example: mainnet
                      symbol:
                        type: string
                        description: Contract symbol
                        example: BIRD
                        nullable: true
        required: true
      responses:
        '201':
          description: List contracts
          content:
            application/json:
              schema:
                type: object
                required:
                - contract
                properties:
                  contract:
                    $ref: '#/components/schemas/Contract'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
      security:
      - oauth2:
        - apps
  /v1/apps/{app_id}/contracts/{contract_id}:
    get:
      tags:
      - Minting
      summary: Get details about a contract
      description: Get details about a contract
      operationId: get_contract
      parameters:
      - name: app_id
        in: path
        description: Your Bitski application ID
        required: true
        schema:
          type: string
          format: uuid
      - name: contract_id
        in: path
        description: Your contract id
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Contract details
          content:
            application/json:
              schema:
                type: object
                required:
                - contract
                properties:
                  contract:
                    $ref: '#/components/schemas/Contract'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '404':
          description: Contract not found
          content:
            application/json:
              schema:
                type: object
              example:
                error:
                  message: Not found
      security:
      - oauth2:
        - apps
    patch:
      tags:
      - Minting
      summary: Update a contract
      description: Update a contract
      operationId: patch_contract
      parameters:
      - name: app_id
        in: path
        description: Your Bitski application ID
        required: true
        schema:
          type: string
          format: uuid
      - name: contract_id
        in: path
        description: Your contract id
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - contract
              properties:
                contract:
                  oneOf:
                  - type: object
                    required:
                    - deploymentState
                    properties:
                      deploymentState:
                        type: string
                        enum:
                        - PENDING
                  - type: object
                    description: 'Deploys a proxy clone contract which points at a shared contract.


                      Charges customer for the gas fee.'
                    required:
                    - proxyAdmin
                    - deploymentState
                    properties:
                      deploymentState:
                        type: string
                        enum:
                        - PENDING_PROXY
                      proxyAdmin:
                        type: string
                        description: The administrative address for the contract
                        example: '0x137d9341d2d5311d5008d1eca56ce495ebad9538'
                  - type: object
                    description: Use upgrade proxy if there is a new base contract you want to point the contract to.
                    required:
                    - logicAddress
                    - proxyAdmin
                    - deploymentState
                    properties:
                      deploymentState:
                        type: string
                        enum:
                        - PENDING_UPGRADE
                      logicAddress:
                        type: string
                        description: 'The new logic address        #[cfg_attr(feature = "docs", schema(value_type = String, example = "0x137d9341d2d5311d5008d1eca56ce495ebad9538"))]'
                        example: '0x4b88eab793d9715289bacbfccca26056c31cc8ad'
                      proxyAdmin:
                        type: string
                        description: The new proxy admin
                        example: '0x137d9341d2d5311d5008d1eca56ce495ebad9538'
                  - type: object
                    description: Mark a contract as deployed given a hash and receipt
                    required:
                    - deploymentTransactionHash
                    - receipt
                    - deploymentState
                    properties:
                      deploymentState:
                        type: string
                        enum:
                        - DEPLOYED
                      deploymentTransactionHash:
                        type: string
                        description: the transaction hash of the deployment
                        example: '0xdaa10785392d5bbe00cbd6d81d93a7bf9db197e2a335e613d9f4e89717d93a63'
                      receipt:
                        type: object
                        description: the transaction receipt of the deployment
                  - type: object
                    description: Mark the contract deployment as failed
                    required:
                    - error
                    - deploymentState
                    properties:
                      deploymentState:
                        type: string
                        enum:
                        - FAILED
                      error:
                        type: string
                        example: contract creation code storage out of gas
                  discriminator:
                    propertyName: deploymentState
        required: true
      responses:
        '200':
          description: Updated contract details
          content:
            application/json:
              schema:
                type: object
                required:
                - contract
                properties:
                  contract:
                    $ref: '#/components/schemas/Contract'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '404':
          description: Contract not found
          content:
            application/json:
              schema:
                type: object
              example:
                error:
                  message: Not found
      security:
      - oauth2:
        - apps
  /v1/apps/{app_id}/token-templates:
    get:
      tags:
      - Minting
      operationId: get_token_templates
      parameters:
      - name: limit
        in: query
        description: The total number of results to display
        required: false
        schema:
          type: integer
          format: int32
          nullable: true
          minimum: 0
      - name: offset
        in: query
        description: 'The starting index of the results to display


          e.g. for page 2 listing 10 items offset is 10.'
        required: false
        schema:
          type: integer
          format: int32
          nullable: true
          minimum: 0
      - name: isDropLink
        in: query
        description: Filter out token templates used for drop links.
        required: false
        schema:
          type: boolean
      - name: app_id
        in: path
        description: Your Bitski Application ID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: List of token templates
          content:
            application/json:
              schema:
                type: object
                required:
                - tokenTemplates
                properties:
                  tokenTemplates:
                    type: array
                    items:
                      $ref: '#/components/schemas/TokenTemplate'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
      security:
      - oauth2:
        - apps
    post:
      tags:
      - Minting
      operationId: create_token_template
      parameters:
      - name: app_id
        in: path
        description: Your Bitski Application ID
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - tokenTemplate
              properties:
                auction:
                  allOf:
                  - type: object
                    required:
                    - info
                    properties:
                      auctionContractId:
                        type: string
                        format: uuid
                        description: The on-chain auction contract
                        nullable: true
                      endsAt:
                        type: string
                        format: date-time
                        description: The time the auction ends
                        nullable: true
                      id:
                        type: string
                        format: uuid
                        description: The id of the auction
                      info:
                        type: object
                        required:
                        - automaticSettlement
                        properties:
                          automaticSettlement:
                            type: boolean
                            description: 'If the auction charges the user''s payment method on file.


                              False if payment will be settled offline via ACH or other preferred method.'
                          minBid:
                            type: string
                            description: The minimum starting bid for the auction
                            example: '100.00'
                      startsAt:
                        type: string
                        format: date-time
                        description: The time the auction starts
                        nullable: true
                      tokenId:
                        type: string
                        format: uuid
                        description: The token that is being auctioned
                  nullable: true
                tokenTemplate:
                  $ref: '#/components/schemas/TokenTemplate'
        required: true
      responses:
        '201':
          description: New token template
          content:
            application/json:
              schema:
                type: object
                required:
                - tokenTemplate
                - auctions
                properties:
                  auctions:
                    type: array
                    items:
                      $ref: '#/components/schemas/Auction'
                    description: The optional auction associated with these tokens
                  tokenTemplate:
                    $ref: '#/components/schemas/TokenTemplate'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
      security:
      - oauth2:
        - apps
  /v1/apps/{app_id}/token-templates/{token_template_id}:
    get:
      tags:
      - Minting
      operationId: token_template
      parameters:
      - name: app_id
        in: path
        description: Your Bitski Application ID
        required: true
        schema:
          type: string
          format: uuid
      - name: token_template_id
        in: path
        description: The token template id
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: The token template details
          content:
            application/json:
              schema:
                type: object
                required:
                - tokenTemplate
                - auctions
                properties:
                  auctions:
                    type: array
                    items:
                      $ref: '#/components/schemas/Auction'
                    description: The optional auction associated with these tokens
                  tokenTemplate:
                    $ref: '#/components/schemas/TokenTemplate'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '404':
          description: Store not found
          content:
            application/json:
              schema:
                type: object
              example:
                error:
                  message: Not found
      security:
      - oauth2:
        - apps
    put:
      tags:
      - Minting
      operationId: update_token_template
      parameters:
      - name: app_id
        in: path
        description: Your Bitski Application ID
        required: true
        schema:
          type: string
          format: uuid
      - name: token_template_id
        in: path
        description: The token template id
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - tokenTemplate
              properties:
                auctions:
                  type: array
                  items:
                    type: object
                    required:
                    - info
                    properties:
                      auctionContractId:
                        type: string
                        format: uuid
                        description: The on-chain auction contract
                        nullable: true
                      endsAt:
                        type: string
                        format: date-time
                        description: The time the auction ends
                        nullable: true
                      id:
                        type: string
                        format: uuid
                        description: The id of the auction
                      info:
                        type: object
                        required:
                        - automaticSettlement
                        properties:
                          automaticSettlement:
                            type: boolean
                            description: 'If the auction charges the user''s payment method on file.


                              False if payment will be settled offline via ACH or other preferred method.'
                          minBid:
                            type: string
                            description: The minimum starting bid for the auction
                            example: '100.00'
                      startsAt:
                        type: string
                        format: date-time
                        description: The time the auction starts
                        nullable: true
                      tokenId:
                        type: string
                        format: uuid
                        description: The token that is being auctioned
                  nullable: true
                tokenTemplate:
                  $ref: '#/components/schemas/TokenTemplate'
        required: true
      responses:
        '200':
          description: The updated template details
          content:
            application/json:
              schema:
                type: object
                required:
                - tokenTemplate
                - auctions
                properties:
                  auctions:
                    type: array
                    items:
                      $ref: '#/components/schemas/Auction'
                    description: The optional auction associated with these tokens
                  tokenTemplate:
                    $ref: '#/components/schemas/TokenTemplate'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '404':
          description: Store not found
          content:
            application/json:
              schema:
                type: object
              example:
                error:
                  message: Not found
      security:
      - oauth2:
        - apps
  /v1/apps/{app_id}/tokens:
    get:
      tags:
      - Minting
      summary: List tokens
      description: List tokens
      operationId: get_tokens
      parameters:
      - name: privateMetadata
        in: path
        required: true
        schema:
          type: string
      - name: contractAddress
        in: path
        required: true
        schema:
          type: string
        example: '0xa4ef984773fd233c4cbed9cb1b905a3fa21e9461'
      - name: tokenId
        in: path
        required: true
        schema:
          type: string
        example: '0x01'
      - name: networkId
        in: path
        required: true
        schema:
          type: string
        example: mainnet
      - name: app_id
        in: path
        description: Your Bitski Application ID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: The updated template details
          content:
            application/json:
              schema:
                type: object
                required:
                - contracts
                - tokens
                - redemptionCodes
                - auctions
                properties:
                  auctions:
                    type: array
                    items:
                      $ref: '#/components/schemas/Auction'
                    description: The list auctions for this set of tokens
                  contracts:
                    type: array
                    items:
                      $ref: '#/components/schemas/Contract'
                    description: A list of contracts for the set of tokens
                  redemptionCodes:
                    type: array
                    items:
                      $ref: '#/components/schemas/ClaimCode'
                    description: The list redemption codes for this set of tokens
                  tokens:
                    type: array
                    items:
                      $ref: '#/components/schemas/Token'
                    description: The list of tokens
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
      security:
      - oauth2:
        - apps
    post:
      tags:
      - Minting
      summary: Create a new token
      description: Create a new token
      operationId: create_token
      parameters:
      - name: app_id
        in: path
        description: Your Bitski Application ID
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - token
              properties:
                initialOwner:
                  type: string
                  description: The initial address this token will be minted to.
                  example: '0xa4ef984773fd233c4cbed9cb1b905a3fa21e9461'
                token:
                  type: object
                  properties:
                    animationUrl:
                      type: string
                      description: Token animation url
                      example: null
                      nullable: true
                    backgroundColor:
                      type: string
                      description: Token background color
                      example: '#000000'
                      nullable: true
                    contractId:
                      type: string
                      format: uuid
                      description: The id of the contract for this token
                    description:
                      type: string
                      description: Token description
                      example: A great token
                      nullable: true
                    externalUrl:
                      type: string
                      description: A url for the entity that created this token
                      example: null
                      nullable: true
                    image:
                      type: string
                      description: The token metadata image
                      example: https://cdn.bitskistatic.com/tokens-raw/54676382-bab5-408d-afe2-fc6f160da4a8/06fd0294-a425-44c7-96e8-9d24757163b4.png
                      nullable: true
                    metadata:
                      allOf:
                      - $ref: '#/components/schemas/TokenMetadata'
                      nullable: true
                    name:
                      type: string
                      description: Token name
                      example: Bird NFT
                      nullable: true
                    state:
                      type: string
                      description: Token state
                      example: AVAILABLE
                      nullable: true
                    tokenId:
                      type: string
                      description: The token id
                      example: '0x1'
                      nullable: true
                    tokenTemplateId:
                      type: string
                      format: uuid
                      description: The id of the token template for this token
                      nullable: true
                    youtubeUrl:
                      type: string
                      description: Token youtube url
                      example: null
                      nullable: true
                transaction:
                  allOf:
                  - type: object
                    properties:
                      from:
                        type: string
                        description: The address that will mint this token
                        example: '0xa4ef984773fd233c4cbed9cb1b905a3fa21e9461'
                      gas:
                        type: string
                        description: The amount of gas for this transaction
                        example: '0xd9cb1b905'
                      gasPrice:
                        type: string
                        description: The price of gas for this transaction
                        example: '0xe8cb1b9'
                  nullable: true
        required: true
      responses:
        '201':
          description: The updated template details
          content:
            application/json:
              schema:
                type: object
                required:
                - token
                - auctions
                properties:
                  auctions:
                    type: array
                    items:
                      $ref: '#/components/schemas/Auction'
                    description: An optional set of associated auctions
                  token:
                    $ref: '#/components/schemas/Token'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
      security:
      - oauth2:
        - apps
  /v1/apps/{app_id}/tokens/{token_id}:
    get:
      tags:
      - Minting
      summary: Get token details
      description: Get token details
      operationId: get_token
      parameters:
      - name: app_id
        in: path
        description: Your Bitski Application ID
        required: true
        schema:
          type: string
          format: uuid
      - name: token_id
        in: path
        description: The token id
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: The updated template details
          content:
            application/json:
              schema:
                type: object
                required:
                - token
                - auctions
                properties:
                  auctions:
                    type: array
                    items:
                      $ref: '#/components/schemas/Auction'
                    description: An optional set of associated auctions
                  token:
                    $ref: '#/components/schemas/Token'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '404':
          description: Not found
          content:
            appli

# --- truncated at 32 KB (45 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bitski/refs/heads/main/openapi/bitski-minting-api-openapi.yml