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

# Read display-oriented board data

> Resource-dependent response, without a universal data envelope.

Required selectors:
- drop, trades, candles, holders, quoteBuy, packActivity: dropId
- quoteSell, pull, card: cardId (pull interprets this selector as a pull ID; card interprets it as a card ID)
- inventory: owner

IDs can diverge after batch openings. Quotes are indexed display estimates, not transaction execution guarantees. quoteBuy returns ETH decimal strings, not wei. Inventory's next cursor covers three indexes; preserve it unchanged. leaderboard has a maximum limit of 50 (default 20); other resources default to 100, maximum 100.



## OpenAPI

````yaml /api-reference/vibemarket_openapi.json get /runtime/{version}/board
openapi: 3.0.3
info:
  title: vibe.market API
  version: '2026-09-10'
  description: >-
    Consumer HTTP API for the current vibe.market at
    https://vibechain.com/market. This is an experimental protocol; review
    https://vibechain.com/terms. Public reads do not require Classic API keys.
    Discover runtime graphs rather than hardcoding a revision. The
    /api/vibemarket2 namespace is intentional. Operational provider webhooks and
    operator-only controls are excluded.
  termsOfService: https://vibechain.com/terms
servers:
  - url: https://build.vibechain.com/api/vibemarket2
    description: Current-market backend
security: []
tags:
  - name: Discovery
  - name: Indexed market
  - name: Board
  - name: Live updates
  - name: Creators
  - name: Artwork
  - name: Accounts
  - name: Community
  - name: Private messages
  - name: Scoped sessions
paths:
  /runtime/{version}/board:
    get:
      tags:
        - Board
      summary: Read display-oriented board data
      description: >-
        Resource-dependent response, without a universal data envelope.


        Required selectors:

        - drop, trades, candles, holders, quoteBuy, packActivity: dropId

        - quoteSell, pull, card: cardId (pull interprets this selector as a pull
        ID; card interprets it as a card ID)

        - inventory: owner


        IDs can diverge after batch openings. Quotes are indexed display
        estimates, not transaction execution guarantees. quoteBuy returns ETH
        decimal strings, not wei. Inventory's next cursor covers three indexes;
        preserve it unchanged. leaderboard has a maximum limit of 50 (default
        20); other resources default to 100, maximum 100.
      operationId: vm2019
      parameters:
        - name: version
          in: path
          required: true
          schema:
            type: string
          description: >-
            Runtime id from /runtime/versions or catalog/sources; never infer
            the newest revision from its name.
        - name: resource
          in: query
          required: true
          schema:
            type: string
            enum:
              - deployment
              - presets
              - drops
              - drop
              - pulls
              - pull
              - card
              - trades
              - candles
              - holders
              - stats
              - inventory
              - quoteBuy
              - quoteSell
              - leaderboard
              - presence
              - packActivity
              - table
          description: Selects the response shape.
        - name: dropId
          in: query
          required: false
          schema:
            type: string
            pattern: ^[1-9][0-9]{0,77}$
        - name: cardId
          in: query
          required: false
          schema:
            type: string
            pattern: ^[1-9][0-9]{0,77}$
        - name: owner
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/Address'
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
          description: Default 100, except leaderboard default 20 and maximum 50.
        - name: before
          in: query
          required: false
          schema:
            type: string
            maxLength: 1600
        - name: packs
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 10
            default: 1
        - name: res
          in: query
          required: false
          schema:
            type: string
            enum:
              - 1m
              - 5m
              - 1h
            default: 1m
        - name: window
          in: query
          required: false
          schema:
            type: string
            enum:
              - 24h
              - all
            default: 24h
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoardResponse'
        '400':
          description: Invalid input, signature, cursor or action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Dependency, projection or capacity unavailable. Retry with backoff.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security: []
components:
  schemas:
    Address:
      type: string
      pattern: ^0x[0-9a-fA-F]{40}$
    BoardResponse:
      description: >-
        Resource-specific display response, not a universal data envelope.
        Examples: drops -> {drops,next}; trades -> {trades}; candles ->
        {candles}; holders -> {holders}; pulls/pull/card -> {pulls}; leaderboard
        -> {window,pulls}; table -> {asOf,rows}; quoteBuy -> BuyQuote. Inventory
        contains cards, tokens, pendingPulls and a composite next cursor. See
        the board operation's resource rules.
      anyOf:
        - $ref: '#/components/schemas/BoardDrop'
        - $ref: '#/components/schemas/BuyQuote'
        - $ref: '#/components/schemas/SellQuote'
        - $ref: '#/components/schemas/BoardInventory'
        - type: object
          properties:
            drops:
              type: array
              items:
                $ref: '#/components/schemas/BoardDrop'
            next:
              type: string
              nullable: true
          required:
            - drops
            - next
        - type: object
          properties:
            trades:
              type: array
              items:
                $ref: '#/components/schemas/BoardTrade'
          required:
            - trades
        - type: object
          properties:
            candles:
              type: array
              items:
                $ref: '#/components/schemas/Candle'
          required:
            - candles
        - type: object
          properties:
            pulls:
              type: array
              items:
                $ref: '#/components/schemas/BoardPull'
          required:
            - pulls
        - type: object
          properties:
            holders:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/Address'
                  tokens:
                    type: string
                  lots:
                    type: integer
                  cards:
                    type: integer
          required:
            - holders
        - type: object
          properties:
            window:
              type: string
              enum:
                - 24h
                - all
            pulls:
              type: array
              items:
                $ref: '#/components/schemas/BoardCard'
          required:
            - window
            - pulls
        - type: object
          properties:
            asOf:
              type: string
              format: date-time
            rows:
              type: array
              items:
                type: object
                properties: {}
          required:
            - asOf
            - rows
        - type: object
          description: >-
            deployment, presets, presence, stats and packActivity have their own
            resource-specific display fields; preserve extra fields.
    Error:
      type: object
      properties:
        error:
          type: string
      required:
        - error
    BoardDrop:
      type: object
      properties:
        dropId:
          type: integer
        slug:
          type: string
        name:
          type: string
        symbol:
          type: string
        creator:
          $ref: '#/components/schemas/Address'
        token:
          $ref: '#/components/schemas/Address'
        cards:
          $ref: '#/components/schemas/Address'
        pool:
          $ref: '#/components/schemas/Address'
        poolId:
          type: string
        packArt:
          type: string
        packPriceEth:
          type: string
        launchPriceEth:
          type: string
        changeSinceLaunchBps:
          type: integer
        change24hBps:
          type: integer
          nullable: true
        mcapEth:
          type: string
        vol24hEth:
          type: string
        packsOpened:
          type: integer
        cardsOutstanding:
          type: integer
        cardsCollected:
          type: integer
        createdAt:
          type: string
          format: date-time
        lastPullAt:
          type: string
          nullable: true
        odds:
          type: array
          items:
            type: object
            properties:
              rarity:
                type: integer
              label:
                type: string
              oddsBps:
                type: integer
              multBps:
                type: integer
              art:
                type: string
        virtual:
          type: object
          properties:
            openingEnabled:
              type: boolean
            freeCapitalEth:
              type: string
            bonusReserveEth:
              type: string
            realSellReserveEth:
              type: string
            virtualQuoteEth:
              type: string
            inventoryTokens:
              type: string
        createdTx:
          type: string
      required:
        - dropId
        - slug
        - name
        - symbol
        - creator
        - token
        - packPriceEth
    BuyQuote:
      type: object
      properties:
        dropId:
          type: integer
          format: int64
        packs:
          type: integer
          format: int64
        tokensOut:
          type: string
        ethIn:
          type: string
          description: ETH decimal string, not wei.
        ethInWithSlippage:
          type: string
          description: >-
            Display estimate with the board's margin; not transaction
            authorization.
        priceImpactBps:
          type: integer
          format: int64
        openFeeEth:
          type: string
        quotedAt:
          type: string
          format: date-time
      required:
        - dropId
        - packs
        - tokensOut
        - ethIn
        - ethInWithSlippage
        - priceImpactBps
        - openFeeEth
        - quotedAt
    SellQuote:
      type: object
      properties:
        cardId:
          type: integer
        tokensToSell:
          type: string
        tokensRetained:
          type: string
        bonusTokens:
          type: string
        bonusShortfall:
          type: string
        ethCover:
          type: string
        ethOut:
          type: string
        ethOutWithBonus:
          type: string
        effectiveMultBps:
          type: integer
        priceImpactBps:
          type: integer
        quotedAt:
          type: string
          format: date-time
      required:
        - cardId
        - tokensToSell
        - ethOut
        - quotedAt
    BoardInventory:
      type: object
      properties:
        address:
          $ref: '#/components/schemas/Address'
        cards:
          type: array
          items:
            $ref: '#/components/schemas/BoardCard'
        tokens:
          type: array
          items:
            type: object
            properties:
              dropId:
                type: integer
              slug:
                type: string
              symbol:
                type: string
              tokens:
                type: string
              lots:
                type: integer
              packPriceEth:
                type: string
        pendingPulls:
          type: array
          items:
            type: object
            properties: {}
        next:
          type: string
          nullable: true
        totals:
          type: object
          properties:
            cardsValueEth:
              type: string
            tokensValueEth:
              type: string
          required:
            - cardsValueEth
            - tokensValueEth
      required:
        - address
        - cards
        - tokens
        - pendingPulls
        - next
        - totals
    BoardTrade:
      type: object
      properties:
        tx:
          type: string
        dropId:
          type: integer
        side:
          type: string
          enum:
            - buy
            - sell
        trader:
          $ref: '#/components/schemas/Address'
        tokens:
          type: string
        eth:
          type: string
        packPriceEth:
          type: string
        at:
          type: string
          format: date-time
      required:
        - tx
        - dropId
        - side
        - trader
        - tokens
        - eth
        - packPriceEth
        - at
    Candle:
      type: object
      properties:
        t:
          type: integer
          description: Unix seconds at bucket start.
        o:
          type: string
        h:
          type: string
        l:
          type: string
        c:
          type: string
        v:
          type: string
      required:
        - t
        - o
        - h
        - l
        - c
        - v
    BoardPull:
      type: object
      properties:
        pullId:
          type: integer
        dropId:
          type: integer
        slug:
          type: string
        opener:
          $ref: '#/components/schemas/Address'
        count:
          type: integer
        fulfilled:
          type: boolean
        openedAt:
          type: string
          format: date-time
        fulfilledAt:
          type: string
          nullable: true
        cards:
          type: array
          items:
            type: object
            properties:
              cardId:
                type: integer
              rarity:
                type: integer
              label:
                type: string
              serial:
                type: integer
              multBps:
                type: integer
              art:
                type: string
              openingProceedsEth:
                type: string
              payoutEth:
                type: string
        tx:
          type: string
      required:
        - pullId
        - dropId
        - opener
        - count
        - fulfilled
        - cards
        - tx
    BoardCard:
      type: object
      properties:
        cardId:
          type: integer
        dropId:
          type: integer
        pullId:
          type: integer
        owner:
          $ref: '#/components/schemas/Address'
        slug:
          type: string
        dropName:
          type: string
        symbol:
          type: string
        rarity:
          type: integer
        label:
          type: string
        serial:
          type: integer
        multBps:
          type: integer
        art:
          type: string
        mintedAt:
          type: string
          format: date-time
        alive:
          type: boolean
        foil:
          type: integer
        wear:
          type: integer
        collected:
          type: boolean
        cashable:
          type: boolean
        shortfallEth:
          type: string
        collectionEndsAt:
          type: integer
        firstEdition:
          type: boolean
        collectsRemaining:
          type: integer
        openingProceedsEth:
          type: string
        payoutEth:
          type: string
        definitionId:
          type: string
          nullable: true
        cardName:
          type: string
          nullable: true
        quote:
          $ref: '#/components/schemas/SellQuote'
      required:
        - cardId
        - dropId
        - pullId
        - owner
        - rarity
        - art

````