openapi: 3.0.1
servers:
  - url: https://api.tokenjay.app/
info:
  description: Please see usage policies on tokenjay.app
  termsOfService: https://tokenjay.app/apidoc.html
  title: TokenJay API services
  version: 1.0.0
  x-apisguru-categories:
    - financial
  x-origin:
    - format: openapi
      url: https://api.tokenjay.app/api-docs
      version: "3.0"
  x-providerName: tokenjay.app
tags:
  - description: Ergo Platform Genuine Tokens Verification
    externalDocs:
      description: EIP-21
      url: https://github.com/ergoplatform/eips/blob/master/eip-0021.md
    name: tokenVerification
  - description: Detecting nodes to use for submitting transactions
    name: peerDetection
  - description: ErgoPay payment portal
    name: paymentPortal
paths:
  /ageusd/info:
    get:
      operationId: getAgeUsdInfo
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/AgeUsdInfo"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      summary: Returns state of AgeUSD at this moment
      tags:
        - ageUsd
  "/cancelbabel/{boxId}":
    get:
      operationId: ergoPayCreateBabelBox_1
      parameters:
        - in: path
          name: boxId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/ErgoPayResponse"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      tags:
        - babel-fee-controller
  "/createbabel/{address}":
    get:
      operationId: ergoPayCreateBabelBox
      parameters:
        - in: path
          name: address
          required: true
          schema:
            type: string
        - in: query
          name: tokenId
          required: true
          schema:
            type: string
        - in: query
          name: ergAmount
          required: true
          schema:
            format: int64
            type: integer
        - in: query
          name: tokenAmount
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/ErgoPayResponse"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      tags:
        - babel-fee-new-offer-controller
  /mosaik/babelfee/:
    get:
      operationId: getBabelFeeOverview
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/MosaikApp"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      tags:
        - babel-fee-controller
  /mosaik/babelfee/newoffer:
    get:
      operationId: getBabelFeeNewOffer
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/MosaikApp"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      tags:
        - babel-fee-new-offer-controller
  /mosaik/babelfee/newoffer/doit:
    post:
      operationId: doCreateBabelBox
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties:
                type: object
              type: object
        required: true
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/FetchActionResponse"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      tags:
        - babel-fee-new-offer-controller
  /mosaik/babelfee/newoffer/new-input:
    post:
      operationId: replaceTokenAmountInputFields
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties:
                type: object
              type: object
        required: true
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/FetchActionResponse"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      tags:
        - babel-fee-new-offer-controller
  /mosaik/babelfee/notificationcheck:
    get:
      operationId: checkForNotifications
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/NotificationCheckResponse"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      tags:
        - babel-fee-controller
  /mosaik/boxconsolidation/:
    get:
      operationId: mainApp_1
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/MosaikApp"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      tags:
        - box-consolidation-controller
  "/mosaik/boxconsolidation/consolidate/{p2pkaddress}":
    get:
      operationId: epConsolidate
      parameters:
        - in: path
          name: p2pkaddress
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/ErgoPayResponse"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      tags:
        - box-consolidation-controller
  /mosaik/tokenburn:
    get:
      operationId: mainApp
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/MosaikApp"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      tags:
        - token-burn-controller
  "/mosaik/tokenburn/get/{uuid}":
    get:
      operationId: getBurningTransaction
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/ErgoPayResponse"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      tags:
        - token-burn-controller
  /mosaik/tokenburn/prepare:
    post:
      operationId: prepareTransaction
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties:
                type: object
              type: object
        required: true
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/FetchActionResponse"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      tags:
        - token-burn-controller
  /payment/addrequest:
    post:
      operationId: addPaymentRequest
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreatePaymentRequest"
        required: true
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/AddRequestResponse"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      summary: Creates a new payment request. Will return request id to check for transaction state and ergopay url to show the user as QR code
      tags:
        - paymentPortal
  "/payment/state/{requestId}":
    get:
      operationId: getPaymentState
      parameters:
        - in: path
          name: requestId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/PaymentRequestStateResponse"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      summary: Returns the state of a payment request. Please note that payment requests are purged after some time, so persist the state at your side when needed
      tags:
        - paymentPortal
  /peers/list:
    get:
      operationId: getPeersList
      parameters:
        - description: Set to true to show unreachable peers in the list
          in: query
          name: unreachable
          required: false
          schema:
            default: false
            type: boolean
        - description: Set to true to show peers not open to be connected
          in: query
          name: closedApi
          required: false
          schema:
            default: false
            type: boolean
        - in: query
          name: limit
          required: false
          schema:
            default: 50
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                items:
                  $ref: "#/components/schemas/NodePeer"
                type: array
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      summary: Lists known peers sorted by block height
      tags:
        - peerDetection
  /sigrsv/exchange/:
    get:
      operationId: doSigmaRsvExchange
      parameters:
        - in: query
          name: amount
          required: true
          schema:
            format: int64
            type: integer
        - in: query
          name: address
          required: true
          schema:
            type: string
        - in: query
          name: checkRate
          required: false
          schema:
            default: 0
            format: int64
            type: integer
        - in: query
          name: executionFee
          required: false
          schema:
            default: 0
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/ErgoPayResponse"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      summary: Builds ErgoPayRequest for SigRSV exchange
      tags:
        - ageUsd
  "/sigrsv/exchange/{amount}/info":
    get:
      operationId: calcSigmaRsvExchange
      parameters:
        - in: path
          name: amount
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/AgeUsdExchangeInfo"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      summary: Calculates SigRSV exchange
      tags:
        - ageUsd
  /sigrsv/price:
    get:
      operationId: getSigmaRsvPrice
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/TokenPrice"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      summary: Lists price and available volume for SigmaRSV
      tags:
        - ageUsd
  /sigusd/exchange/:
    get:
      operationId: doSigmaUsdExchange
      parameters:
        - in: query
          name: amount
          required: true
          schema:
            format: int64
            type: integer
        - in: query
          name: address
          required: true
          schema:
            type: string
        - in: query
          name: checkRate
          required: false
          schema:
            default: 0
            format: int64
            type: integer
        - in: query
          name: executionFee
          required: false
          schema:
            default: 0
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/ErgoPayResponse"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      summary: Builds ErgoPayRequest for SigUSD exchange
      tags:
        - ageUsd
  "/sigusd/exchange/{amount}/info":
    get:
      operationId: calcSigmaUsdExchange
      parameters:
        - in: path
          name: amount
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/AgeUsdExchangeInfo"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      summary: Calculates SigUSD exchange
      tags:
        - ageUsd
  /sigusd/price:
    get:
      operationId: getSigmaUsdPrice
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/TokenPrice"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      summary: Lists price and available volume for SigmaUSD
      tags:
        - ageUsd
  "/tokens/check/{tokenId}/{tokenName}":
    get:
      operationId: checkToken
      parameters:
        - in: path
          name: tokenId
          required: true
          schema:
            type: string
        - in: path
          name: tokenName
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/CheckResponse"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      summary: Check a token verification
      tags:
        - tokenVerification
  /tokens/listBlocked:
    get:
      operationId: listBlocked
      responses:
        "200":
          content:
            "*/*":
              schema:
                items:
                  type: string
                type: array
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      summary: Lists all blocked tokens
      tags:
        - tokenVerification
  /tokens/listGenuine:
    get:
      operationId: listGenuine
      responses:
        "200":
          content:
            "*/*":
              schema:
                items:
                  $ref: "#/components/schemas/GenuineToken"
                type: array
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      summary: Lists all genuine tokens known
      tags:
        - tokenVerification
  /tokens/prices/all:
    get:
      operationId: getTokenPrices
      responses:
        "200":
          content:
            "*/*":
              schema:
                items:
                  $ref: "#/components/schemas/TokenPrice"
                type: array
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      summary: Lists all token prices and available volume
      tags:
        - tokenPrices
  "/tokens/prices/{tokenId}":
    get:
      operationId: getTokenPrice
      parameters:
        - in: path
          name: tokenId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/TokenPrice"
          description: OK
        "400":
          content:
            "*/*":
              schema:
                type: string
          description: Bad Request
        "401":
          content:
            "*/*":
              schema:
                type: string
          description: Unauthorized
        "404":
          content:
            "*/*":
              schema:
                type: string
          description: Not Found
        "409":
          content:
            "*/*":
              schema:
                type: string
          description: Conflict
      summary: Lists price and available volume for a certain token
      tags:
        - tokenPrices
components:
  schemas:
    Action:
      properties:
        id:
          type: string
      type: object
    AddRequestResponse:
      properties:
        ergoPayUrl:
          type: string
        requestId:
          type: string
      required:
        - ergoPayUrl
        - requestId
      type: object
    AgeUsdExchangeInfo:
      properties:
        bankFeeAmount:
          format: int64
          type: integer
        bankFeeDescription:
          type: string
        ergAmount:
          format: int64
          type: integer
        ergAmountDescription:
          type: string
        exchangeRate:
          format: int64
          type: integer
        jayFeeAmount:
          format: int64
          type: integer
        jayFeeDescription:
          type: string
        totalAmount:
          format: int64
          type: integer
      required:
        - bankFeeAmount
        - bankFeeDescription
        - ergAmount
        - ergAmountDescription
        - exchangeRate
        - jayFeeAmount
        - jayFeeDescription
        - totalAmount
      type: object
    AgeUsdInfo:
      properties:
        reserveRatio:
          format: int64
          type: integer
        sigRsvPrice:
          format: int64
          type: integer
        sigUsdPrice:
          format: int64
          type: integer
      required:
        - reserveRatio
        - sigRsvPrice
        - sigUsdPrice
      type: object
    CheckResponse:
      properties:
        genuine:
          description: Flag with 0 unknown, 1 verified, 2 suspicious, 3 blocked (see EIP-21)
          format: int32
          type: integer
        token:
          $ref: "#/components/schemas/GenuineToken"
      required:
        - genuine
      type: object
    CreatePaymentRequest:
      properties:
        message:
          type: string
        nanoErg:
          format: int64
          type: integer
        receiverAddress:
          type: string
        senderAddress:
          type: string
        tokenId:
          type: string
        tokenRawAmount:
          format: int64
          type: integer
      required:
        - nanoErg
        - receiverAddress
      type: object
    ErgoPayResponse:
      properties:
        address:
          type: string
        addresses:
          items:
            type: string
          type: array
        message:
          type: string
        messageSeverity:
          enum:
            - NONE
            - INFORMATION
            - WARNING
            - ERROR
          type: string
        reducedTx:
          type: string
        reducedTxList:
          items:
            type: string
          type: array
        replyTo:
          type: string
      type: object
    FetchActionResponse:
      properties:
        action:
          $ref: "#/components/schemas/Action"
        appVersion:
          format: int32
          type: integer
      type: object
    GenuineToken:
      properties:
        issuer:
          type: string
        tokenId:
          type: string
        tokenName:
          type: string
        uniqueName:
          type: boolean
      required:
        - tokenId
        - tokenName
        - uniqueName
      type: object
    MosaikApp:
      properties:
        actions:
          items:
            $ref: "#/components/schemas/Action"
          type: array
        manifest:
          $ref: "#/components/schemas/MosaikManifest"
        view:
          $ref: "#/components/schemas/ViewElement"
      type: object
    MosaikManifest:
      properties:
        appDescription:
          type: string
        appName:
          type: string
        appVersion:
          format: int32
          type: integer
        cacheLifetime:
          format: int32
          type: integer
        errorReportUrl:
          type: string
        iconUrl:
          type: string
        notificationCheckUrl:
          type: string
        onAppLoadedAction:
          type: string
        onResizeAction:
          type: string
        targetCanvasDimension:
          enum:
            - COMPACT_WIDTH
            - MEDIUM_WIDTH
            - FULL_WIDTH
          type: string
        targetMosaikVersion:
          format: int32
          type: integer
      type: object
    NodePeer:
      properties:
        blockHeight:
          format: int64
          type: integer
        blockchainApi:
          type: boolean
        headerHeight:
          format: int64
          type: integer
        lastSeen:
          format: int64
          type: integer
        name:
          type: string
        openRestApi:
          type: boolean
        responseTime:
          format: int64
          type: integer
        url:
          type: string
      required:
        - blockHeight
        - blockchainApi
        - headerHeight
        - lastSeen
        - name
        - openRestApi
        - responseTime
        - url
      type: object
    NotificationCheckResponse:
      properties:
        message:
          type: string
        messageTs:
          format: int64
          type: integer
        nextCheck:
          format: int32
          type: integer
      type: object
    PaymentRequestStateResponse:
      properties:
        paymentRequestState:
          enum:
            - CREATED
            - WAITING
            - EXECUTED
            - INVALID
          type: string
        requestId:
          type: string
        txId:
          type: string
      required:
        - paymentRequestState
        - requestId
      type: object
    TokenPrice:
      properties:
        available:
          format: int64
          type: integer
        displayName:
          type: string
        lastUpdated:
          format: int64
          type: integer
        price:
          format: int64
          type: integer
        tokenId:
          type: string
        volumeLastDay:
          format: int64
          type: integer
      required:
        - available
        - displayName
        - lastUpdated
        - price
        - tokenId
        - volumeLastDay
      type: object
    ViewElement:
      properties:
        id:
          type: string
        onClickAction:
          type: string
        onLongPressAction:
          type: string
        visible:
          type: boolean
      type: object
