basePath: /v1
definitions:
  address.AddressOverview:
    properties:
      vaas:
        items:
          $ref: '#/definitions/vaa.VaaDoc'
        type: array
    type: object
  github_com_wormhole-foundation_wormhole-explorer_api_routes_guardian_guardian.GuardianSet:
    properties:
      addresses:
        items:
          type: string
        type: array
      index:
        type: integer
    type: object
  github_com_wormhole-foundation_wormhole-explorer_api_routes_wormscan_transactions.TransactionOverview:
    properties:
      destinationAddress:
        type: string
      destinationChain:
        $ref: '#/definitions/vaa.ChainID'
      id:
        type: string
      originChain:
        $ref: '#/definitions/vaa.ChainID'
      status:
        $ref: '#/definitions/transactions.TxStatus'
      symbol:
        type: string
      timestamp:
        type: string
      tokenAmount:
        type: string
      txHash:
        type: string
      usdAmount:
        type: string
    type: object
  governor.AvailableNotionalItemResponse:
    properties:
      bigTransactionSize:
        type: string
      chainId:
        $ref: '#/definitions/vaa.ChainID'
      notionalLimit:
        type: string
      remainingAvailableNotional:
        type: string
    type: object
  governor.AvailableNotionalResponse:
    properties:
      entries:
        items:
          $ref: '#/definitions/governor.AvailableNotionalItemResponse'
        type: array
    type: object
  governor.Emitter:
    properties:
      emitterAddress:
        type: string
      enqueuedVaas:
        type: integer
      totalEnqueuedVaas:
        type: integer
    type: object
  governor.EnqueuedVaa:
    properties:
      chainId:
        $ref: '#/definitions/vaa.ChainID'
      emitterAddress:
        type: string
      notionalValue:
        type: integer
      sequence:
        type: string
      txHash:
        type: string
    type: object
  governor.EnqueuedVaaDetail:
    properties:
      chainId:
        $ref: '#/definitions/vaa.ChainID'
      emitterAddress:
        type: string
      notionalValue:
        type: integer
      releaseTime:
        type: integer
      sequence:
        type: string
      txHash:
        type: string
    type: object
  governor.EnqueuedVaaItemResponse:
    properties:
      emitterAddress:
        type: string
      emitterChain:
        $ref: '#/definitions/vaa.ChainID'
      notionalValue:
        type: string
      releaseTime:
        type: integer
      sequence:
        type: integer
      txHash:
        type: string
    type: object
  governor.EnqueuedVaaResponse:
    properties:
      entries:
        items:
          $ref: '#/definitions/governor.EnqueuedVaaItemResponse'
        type: array
    type: object
  governor.EnqueuedVaas:
    properties:
      chainId:
        $ref: '#/definitions/vaa.ChainID'
      enqueuedVaas:
        items:
          $ref: '#/definitions/governor.EnqueuedVaa'
        type: array
    type: object
  governor.GovConfig:
    properties:
      chains:
        items:
          $ref: '#/definitions/governor.GovConfigChains'
        type: array
      counter:
        type: integer
      createdAt:
        type: string
      id:
        type: string
      nodeName:
        type: string
      tokens:
        items:
          $ref: '#/definitions/governor.GovConfigfTokens'
        type: array
      updatedAt:
        type: string
    type: object
  governor.GovConfigChains:
    properties:
      bigTransactionSize:
        type: integer
      chainId:
        $ref: '#/definitions/vaa.ChainID'
      notionalLimit:
        type: integer
    type: object
  governor.GovConfigfTokens:
    properties:
      originAddress:
        type: string
      originChainId:
        type: integer
      price:
        type: number
    type: object
  governor.GovStatus:
    properties:
      chains:
        items:
          $ref: '#/definitions/governor.GovStatusChains'
        type: array
      createdAt:
        type: string
      id:
        type: string
      nodeName:
        type: string
      updatedAt:
        type: string
    type: object
  governor.GovStatusChainEmitter:
    properties:
      emitterAddress:
        type: string
      enqueuedVaas: {}
      totalEnqueuedVaas:
        type: integer
    type: object
  governor.GovStatusChains:
    properties:
      chainId:
        $ref: '#/definitions/vaa.ChainID'
      emitters:
        items:
          $ref: '#/definitions/governor.GovStatusChainEmitter'
        type: array
      remainingAvailableNotional:
        type: integer
    type: object
  governor.GovernorLimit:
    properties:
      availableNotional:
        type: integer
      chainId:
        $ref: '#/definitions/vaa.ChainID'
      maxTransactionSize:
        type: integer
      notionalLimit:
        type: integer
    type: object
  governor.MaxNotionalAvailableRecord:
    properties:
      availableNotional:
        type: integer
      chainId:
        $ref: '#/definitions/vaa.ChainID'
      createdAt:
        type: string
      emitters:
        items:
          $ref: '#/definitions/governor.Emitter'
        type: array
      id:
        type: string
      nodeName:
        type: string
      updatedAt:
        type: string
    type: object
  governor.NotionalAvailable:
    properties:
      availableNotional:
        type: integer
      chainId:
        $ref: '#/definitions/vaa.ChainID'
    type: object
  governor.NotionalAvailableDetail:
    properties:
      availableNotional:
        type: integer
      chainId:
        $ref: '#/definitions/vaa.ChainID'
      createdAt:
        type: string
      id:
        type: string
      nodeName:
        type: string
      updatedAt:
        type: string
    type: object
  governor.NotionalLimitDetail:
    properties:
      chainId:
        $ref: '#/definitions/vaa.ChainID'
      createdAt:
        type: string
      id:
        type: string
      maxTransactionSize:
        type: integer
      nodeName:
        type: string
      notionalLimit:
        type: integer
      updatedAt:
        type: string
    type: object
  governor.TokenList:
    properties:
      originAddress:
        type: string
      originChainId:
        $ref: '#/definitions/vaa.ChainID'
      price:
        type: number
    type: object
  guardian.GuardianSetResponse:
    properties:
      guardianSet:
        $ref: '#/definitions/github_com_wormhole-foundation_wormhole-explorer_api_routes_guardian_guardian.GuardianSet'
    type: object
  heartbeats.HeartbeatNetworkResponse:
    properties:
      contractAddress:
        type: string
      errorCount:
        type: string
      height:
        type: string
      id:
        type: integer
    type: object
  heartbeats.HeartbeatResponse:
    properties:
      p2pNodeAddr:
        type: string
      rawHeartbeat:
        $ref: '#/definitions/heartbeats.RawHeartbeat'
      verifiedGuardianAddr:
        type: string
    type: object
  heartbeats.HeartbeatsResponse:
    properties:
      entries:
        items:
          $ref: '#/definitions/heartbeats.HeartbeatResponse'
        type: array
    type: object
  heartbeats.RawHeartbeat:
    properties:
      bootTimestamp:
        type: string
      counter:
        type: string
      features:
        items:
          type: string
        type: array
      guardianAddr:
        type: string
      networks:
        items:
          $ref: '#/definitions/heartbeats.HeartbeatNetworkResponse'
        type: array
      nodeName:
        type: string
      timestamp:
        type: string
      version:
        type: string
    type: object
  infrastructure.VersionResponse:
    properties:
      branch:
        type: string
      build:
        type: string
      build_date:
        type: string
      machine:
        type: string
      user:
        type: string
    type: object
  observations.ObservationDoc:
    properties:
      emitterAddr:
        type: string
      emitterChain:
        $ref: '#/definitions/vaa.ChainID'
      guardianAddr:
        type: string
      hash:
        items:
          type: integer
        type: array
      id:
        type: string
      indexedAt:
        type: string
      sequence:
        type: string
      signature:
        items:
          type: integer
        type: array
      txHash:
        items:
          type: integer
        type: array
      updatedAt:
        type: string
    type: object
  response.Response-address_AddressOverview:
    properties:
      data:
        $ref: '#/definitions/address.AddressOverview'
      pagination:
        $ref: '#/definitions/response.ResponsePagination'
    type: object
  response.Response-array_governor_EnqueuedVaaDetail:
    properties:
      data:
        items:
          $ref: '#/definitions/governor.EnqueuedVaaDetail'
        type: array
      pagination:
        $ref: '#/definitions/response.ResponsePagination'
    type: object
  response.Response-array_governor_EnqueuedVaas:
    properties:
      data:
        items:
          $ref: '#/definitions/governor.EnqueuedVaas'
        type: array
      pagination:
        $ref: '#/definitions/response.ResponsePagination'
    type: object
  response.Response-array_governor_GovStatus:
    properties:
      data:
        items:
          $ref: '#/definitions/governor.GovStatus'
        type: array
      pagination:
        $ref: '#/definitions/response.ResponsePagination'
    type: object
  response.Response-array_governor_GovernorLimit:
    properties:
      data:
        items:
          $ref: '#/definitions/governor.GovernorLimit'
        type: array
      pagination:
        $ref: '#/definitions/response.ResponsePagination'
    type: object
  response.Response-array_governor_NotionalAvailable:
    properties:
      data:
        items:
          $ref: '#/definitions/governor.NotionalAvailable'
        type: array
      pagination:
        $ref: '#/definitions/response.ResponsePagination'
    type: object
  response.Response-array_governor_NotionalAvailableDetail:
    properties:
      data:
        items:
          $ref: '#/definitions/governor.NotionalAvailableDetail'
        type: array
      pagination:
        $ref: '#/definitions/response.ResponsePagination'
    type: object
  response.Response-array_governor_NotionalLimitDetail:
    properties:
      data:
        items:
          $ref: '#/definitions/governor.NotionalLimitDetail'
        type: array
      pagination:
        $ref: '#/definitions/response.ResponsePagination'
    type: object
  response.Response-array_vaa_VaaDoc:
    properties:
      data:
        items:
          $ref: '#/definitions/vaa.VaaDoc'
        type: array
      pagination:
        $ref: '#/definitions/response.ResponsePagination'
    type: object
  response.Response-array_vaa_VaaStats:
    properties:
      data:
        items:
          $ref: '#/definitions/vaa.VaaStats'
        type: array
      pagination:
        $ref: '#/definitions/response.ResponsePagination'
    type: object
  response.Response-governor_GovConfig:
    properties:
      data:
        $ref: '#/definitions/governor.GovConfig'
      pagination:
        $ref: '#/definitions/response.ResponsePagination'
    type: object
  response.Response-governor_GovStatus:
    properties:
      data:
        $ref: '#/definitions/governor.GovStatus'
      pagination:
        $ref: '#/definitions/response.ResponsePagination'
    type: object
  response.Response-governor_MaxNotionalAvailableRecord:
    properties:
      data:
        $ref: '#/definitions/governor.MaxNotionalAvailableRecord'
      pagination:
        $ref: '#/definitions/response.ResponsePagination'
    type: object
  response.ResponsePagination:
    properties:
      next:
        type: string
    type: object
  transactions.AssetWithVolume:
    properties:
      emitterChain:
        $ref: '#/definitions/vaa.ChainID'
      symbol:
        type: string
      tokenAddress:
        type: string
      tokenChain:
        $ref: '#/definitions/vaa.ChainID'
      volume:
        type: string
    type: object
  transactions.ChainActivity:
    properties:
      txs:
        items:
          $ref: '#/definitions/transactions.Tx'
        type: array
    type: object
  transactions.ChainPair:
    properties:
      destinationChain:
        $ref: '#/definitions/vaa.ChainID'
      emitterChain:
        $ref: '#/definitions/vaa.ChainID'
      numberOfTransfers:
        type: string
    type: object
  transactions.Destination:
    properties:
      chain:
        type: integer
      percentage:
        type: number
      volume:
        type: number
    type: object
  transactions.ListTransactionsResponse:
    properties:
      transactions:
        items:
          $ref: '#/definitions/github_com_wormhole-foundation_wormhole-explorer_api_routes_wormscan_transactions.TransactionOverview'
        type: array
    type: object
  transactions.ScorecardsResponse:
    properties:
      24h_messages:
        description: Number of VAAs emitted in the last 24 hours (includes Pyth messages).
        type: string
      24h_tx_count:
        description: Number of VAAs emitted in the last 24 hours (does not include
          Pyth messages).
        type: string
      24h_volume:
        description: Volume transferred through the token bridge in the last 24 hours,
          in USD.
        type: string
      total_tx_count:
        description: Number of VAAs emitted since the creation of the network (does
          not include Pyth messages)
        type: string
      total_volume:
        type: string
      tvl:
        description: Total value locked in USD.
        type: string
    type: object
  transactions.Token:
    properties:
      coingeckoId:
        type: string
      decimals:
        type: integer
      symbol:
        type: string
    type: object
  transactions.TopAssetsResponse:
    properties:
      assets:
        items:
          $ref: '#/definitions/transactions.AssetWithVolume'
        type: array
    type: object
  transactions.TopChainPairsResponse:
    properties:
      chainPairs:
        items:
          $ref: '#/definitions/transactions.ChainPair'
        type: array
    type: object
  transactions.TransactionCountResult:
    properties:
      count:
        type: integer
      time:
        type: string
    type: object
  transactions.Tx:
    properties:
      chain:
        type: integer
      destinations:
        items:
          $ref: '#/definitions/transactions.Destination'
        type: array
      percentage:
        type: number
      volume:
        type: number
    type: object
  transactions.TxStatus:
    enum:
    - ongoing
    - completed
    type: string
    x-enum-varnames:
    - TxStatusOngoing
    - TxStatusCompleted
  vaa.ChainID:
    enum:
    - 0
    - 1
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 8
    - 9
    - 10
    - 11
    - 12
    - 13
    - 14
    - 15
    - 16
    - 17
    - 18
    - 19
    - 21
    - 22
    - 23
    - 24
    - 26
    - 28
    - 29
    - 30
    - 32
    - 3104
    - 10002
    type: integer
    x-enum-varnames:
    - ChainIDUnset
    - ChainIDSolana
    - ChainIDEthereum
    - ChainIDTerra
    - ChainIDBSC
    - ChainIDPolygon
    - ChainIDAvalanche
    - ChainIDOasis
    - ChainIDAlgorand
    - ChainIDAurora
    - ChainIDFantom
    - ChainIDKarura
    - ChainIDAcala
    - ChainIDKlaytn
    - ChainIDCelo
    - ChainIDNear
    - ChainIDMoonbeam
    - ChainIDNeon
    - ChainIDTerra2
    - ChainIDInjective
    - ChainIDSui
    - ChainIDAptos
    - ChainIDArbitrum
    - ChainIDOptimism
    - ChainIDPythNet
    - ChainIDXpla
    - ChainIDBtc
    - ChainIDBase
    - ChainIDSei
    - ChainIDWormchain
    - ChainIDSepolia
  vaa.VaaDoc:
    properties:
      appId:
        description: AppId is an extension field - it is not present in the guardian
          API.
        type: string
      emitterAddr:
        type: string
      emitterChain:
        $ref: '#/definitions/vaa.ChainID'
      guardianSetIndex:
        type: integer
      id:
        type: string
      indexedAt:
        type: string
      nativeTxHash:
        description: NativeTxHash is an extension field - it is not present in the
          guardian API.
        type: string
      payload:
        additionalProperties: true
        description: Payload is an extension field - it is not present in the guardian
          API.
        type: object
      timestamp:
        type: string
      txHash:
        description: TxHash is an extension field - it is not present in the guardian
          API.
        type: string
      updatedAt:
        type: string
      vaa:
        items:
          type: integer
        type: array
      version:
        type: integer
    type: object
  vaa.VaaStats:
    properties:
      chainId:
        $ref: '#/definitions/vaa.ChainID'
      count:
        type: integer
    type: object
info:
  contact:
    email: info@wormhole.com
    name: API Support
    url: http://wormhole.com/support
  description: |-
    Wormhole Guardian API
    This is the API for the Wormhole Guardian and Explorer.
    The API has two namespaces: wormscan and guardian.
    wormscan is the namespace for the explorer and the new endpoints. The prefix is /api/v1.
    guardian is the legacy namespace backguard compatible with guardian node API. The prefix is /v1.
    This API is public and does not require authentication although some endpoints are rate limited.
    Check each endpoint documentation for more information.
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  termsOfService: https://wormhole.com/
  title: Wormhole Guardian API
  version: "1.0"
paths:
  /api/v1/address/{address}:
    get:
      description: Lookup an address
      operationId: find-address-by-id
      parameters:
      - description: address
        in: path
        name: address
        required: true
        type: string
      - description: Page number. Starts at 0.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response-address_AddressOverview'
        "400":
          description: Bad Request
        "404":
          description: Not Found
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/global-tx/{chain_id}/{emitter}/{seq}:
    get:
      description: |-
        Find a global transaction by VAA ID
        Global transactions is a logical association of two transactions that are related to each other by a unique VAA ID.
        The first transaction is created on the origin chain when the VAA is emitted.
        The second transaction is created on the destination chain when the VAA is redeemed.
        If the response only contains an origin tx the VAA was not redeemed.
      operationId: find-global-transaction-by-id
      parameters:
      - description: id of the blockchain
        in: path
        name: chain_id
        required: true
        type: integer
      - description: address of the emitter
        in: path
        name: emitter
        required: true
        type: string
      - description: sequence of the VAA
        in: path
        name: seq
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/transactions.Tx'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/governor/config:
    get:
      description: Returns governor configuration for all guardians.
      operationId: governor-config
      parameters:
      - description: Page number.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response-governor_GovConfig'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/governor/config/:guardian_address:
    get:
      description: Returns governor configuration for a given guardian.
      operationId: governor-config-by-guardian-address
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response-governor_GovConfig'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/governor/enqueued_vaas/:
    get:
      description: Returns enqueued VAAs for each blockchain.
      operationId: governor-enqueued-vaas
      parameters:
      - description: Page number.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      - description: Sort results in ascending or descending order.
        enum:
        - ASC
        - DESC
        in: query
        name: sortOrder
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response-array_governor_EnqueuedVaas'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/governor/enqueued_vaas/:chain:
    get:
      description: Returns all enqueued VAAs for a given blockchain.
      operationId: guardians-enqueued-vaas-by-chain
      parameters:
      - description: Page number.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      - description: Sort results in ascending or descending order.
        enum:
        - ASC
        - DESC
        in: query
        name: sortOrder
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response-array_governor_EnqueuedVaaDetail'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/governor/limit:
    get:
      description: Returns the governor limit for all blockchains.
      operationId: governor-notional-limit
      parameters:
      - description: Page number.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response-array_governor_GovernorLimit'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/governor/notional/available:
    get:
      description: Returns the amount of notional value available for each blockchain.
      operationId: governor-notional-available
      parameters:
      - description: Page number.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      - description: Sort results in ascending or descending order.
        enum:
        - ASC
        - DESC
        in: query
        name: sortOrder
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response-array_governor_NotionalAvailable'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/governor/notional/available/:chain:
    get:
      description: Returns the amount of notional value available for a given blockchain.
      operationId: governor-notional-available-by-chain
      parameters:
      - description: Page number.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response-array_governor_NotionalAvailableDetail'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/governor/notional/limit:
    get:
      description: Returns the detailed notional limit for all blockchains.
      operationId: governor-notional-limit-detail
      parameters:
      - description: Page number.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response-array_governor_NotionalLimitDetail'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/governor/notional/limit/:chain:
    get:
      description: Returns the detailed notional limit available for a given blockchain.
      operationId: governor-notional-limit-detail-by-chain
      parameters:
      - description: Page number.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response-array_governor_NotionalLimitDetail'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/governor/notional/max_available/:chain:
    get:
      description: Returns the maximum amount of notional value available for a given
        blockchain.
      operationId: governor-max-notional-available-by-chain
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response-governor_MaxNotionalAvailableRecord'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/governor/status:
    get:
      description: Returns the governor status for all guardians.
      operationId: governor-status
      parameters:
      - description: Page number.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response-array_governor_GovStatus'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/governor/status/:guardian_address:
    get:
      description: Returns the governor status for a given guardian.
      operationId: governor-status-by-guardian-address
      parameters:
      - description: Page number.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response-governor_GovStatus'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/health:
    get:
      description: Health check
      operationId: health-check
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - type: object
            - properties:
                status:
                  type: string
              type: object
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/last-txs:
    get:
      description: Returns the number of transactions by a defined time span and sample
        rate.
      operationId: get-last-transactions
      parameters:
      - description: 'Time Span, default: 1d, supported values: [1d, 1w, 1mo]. 1mo
          ​​is 30 days.'
        in: query
        name: timeSpan
        type: string
      - description: 'Sample Rate, default: 1h, supported values: [1h, 1d]. Valid
          configurations with timeSpan: 1d/1h, 1w/1d, 1mo/1d'
        in: query
        name: sampleRate
        type: string
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/transactions.TransactionCountResult'
            type: array
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/observations:
    get:
      description: Returns all observations, sorted in descending timestamp order.
      operationId: find-observations
      parameters:
      - description: Page number.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      - description: Sort results in ascending or descending order.
        enum:
        - ASC
        - DESC
        in: query
        name: sortOrder
        type: string
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/observations.ObservationDoc'
            type: array
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/observations/:chain:
    get:
      description: Returns all observations for a given blockchain, sorted in descending
        timestamp order.
      operationId: find-observations-by-chain
      parameters:
      - description: Page number.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      - description: Sort results in ascending or descending order.
        enum:
        - ASC
        - DESC
        in: query
        name: sortOrder
        type: string
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/observations.ObservationDoc'
            type: array
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/observations/:chain/:emitter:
    get:
      description: Returns all observations for a specific emitter address, sorted
        in descending timestamp order.
      operationId: find-observations-by-emitter
      parameters:
      - description: Page number.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      - description: Sort results in ascending or descending order.
        enum:
        - ASC
        - DESC
        in: query
        name: sortOrder
        type: string
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/observations.ObservationDoc'
            type: array
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/observations/:chain/:emitter/:sequence:
    get:
      description: Find observations identified by emitter chain, emitter address
        and sequence.
      operationId: find-observations-by-sequence
      parameters:
      - description: Page number.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      - description: Sort results in ascending or descending order.
        enum:
        - ASC
        - DESC
        in: query
        name: sortOrder
        type: string
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/observations.ObservationDoc'
            type: array
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/observations/:chain/:emitter/:sequence/:signer/:hash:
    get:
      description: Find a specific observation.
      operationId: find-observations-by-id
      parameters:
      - description: Page number.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      - description: Sort results in ascending or descending order.
        enum:
        - ASC
        - DESC
        in: query
        name: sortOrder
        type: string
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/observations.ObservationDoc'
            type: array
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/ready:
    get:
      description: Ready check
      operationId: ready-check
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - type: object
            - properties:
                ready:
                  type: string
              type: object
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/scorecards:
    get:
      description: |-
        Returns a list of KPIs for Wormhole.
        TVL is total value locked by token bridge contracts in USD.
        Volume is the all-time total volume transferred through the token bridge in USD.
        24h volume is the volume transferred through the token bridge in the last 24 hours, in USD.
        Total Tx count is the number of transaction bridging assets since the creation of the network (does not include Pyth or other messages).
        24h tx count is the number of transaction bridging assets in the last 24 hours (does not include Pyth or other messages).
        Total messages is the number of VAAs emitted since the creation of the network (includes Pyth messages).
      operationId: get-scorecards
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/transactions.ScorecardsResponse'
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/token/{chain_id}/{token_address}:
    get:
      description: Returns a token symbol, coingecko id and address by chain and token
        address.
      operationId: get-token-by-chain-and-address
      parameters:
      - description: id of the blockchain
        in: path
        name: chain_id
        required: true
        type: integer
      - description: token address
        in: path
        name: token_address
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/transactions.Token'
        "400":
          description: Bad Request
        "404":
          description: Not Found
      tags:
      - Wormscan
  /api/v1/top-assets-by-volume:
    get:
      description: |-
        Returns a list of emitter_chain and asset pairs with ordered by volume.
        The volume is calculated using the notional price of the symbol at the day the VAA was emitted.
      operationId: get-top-assets-by-volume
      parameters:
      - description: 'Time span, supported values: 7d, 15d, 30d.'
        in: query
        name: timeSpan
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/transactions.TopAssetsResponse'
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/top-chain-pairs-by-num-transfers:
    get:
      description: Returns a list of the emitter_chain and destination_chain pair
        ordered by transfer count.
      operationId: get-top-chain-pairs-by-num-transfers
      parameters:
      - description: 'Time span, supported values: 7d, 15d, 30d.'
        in: query
        name: timeSpan
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/transactions.TopChainPairsResponse'
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/transactions/:
    get:
      description: Returns transactions. Output is paginated.
      operationId: list-transactions
      parameters:
      - description: Page number. Starts at 0.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/transactions.ListTransactionsResponse'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/vaas/:
    get:
      description: Returns all VAAs. Output is paginated and can also be be sorted.
      operationId: find-all-vaas
      parameters:
      - description: Page number.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      - description: Sort results in ascending or descending order.
        enum:
        - ASC
        - DESC
        in: query
        name: sortOrder
        type: string
      - description: Transaction hash of the VAA
        in: query
        name: txHash
        type: string
      - description: include the parsed contents of the VAA, if available
        in: query
        name: parsedPayload
        type: boolean
      - description: filter by application ID
        in: query
        name: appId
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response-array_vaa_VaaDoc'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/vaas/{chain_id}:
    get:
      description: Returns all the VAAs generated in specific blockchain.
      operationId: find-vaas-by-chain
      parameters:
      - description: id of the blockchain
        in: path
        name: chain_id
        required: true
        type: integer
      - description: Page number.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      - description: Sort results in ascending or descending order.
        enum:
        - ASC
        - DESC
        in: query
        name: sortOrder
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response-array_vaa_VaaDoc'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/vaas/{chain_id}/{emitter}:
    get:
      description: Returns all all the VAAs generated by a specific emitter address.
      operationId: find-vaas-by-emitter
      parameters:
      - description: id of the blockchain
        in: path
        name: chain_id
        required: true
        type: integer
      - description: address of the emitter
        in: path
        name: emitter
        required: true
        type: string
      - description: Page number.
        in: query
        name: page
        type: integer
      - description: Number of elements per page.
        in: query
        name: pageSize
        type: integer
      - description: Sort results in ascending or descending order.
        enum:
        - ASC
        - DESC
        in: query
        name: sortOrder
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response-array_vaa_VaaDoc'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/vaas/{chain_id}/{emitter}/{seq}:
    get:
      description: Find a VAA by ID.
      operationId: find-vaa-by-id
      parameters:
      - description: id of the blockchain
        in: path
        name: chain_id
        required: true
        type: integer
      - description: address of the emitter
        in: path
        name: emitter
        required: true
        type: string
      - description: sequence of the VAA
        in: path
        name: seq
        required: true
        type: integer
      - description: include the parsed contents of the VAA, if available
        in: query
        name: parsedPayload
        type: boolean
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response-array_vaa_VaaDoc'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/vaas/vaa-counts:
    get:
      description: Returns the total number of VAAs emitted for each blockchain.
      operationId: get-vaa-counts
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response-array_vaa_VaaStats'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/version:
    get:
      description: Get version/release information.
      operationId: get-version
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/infrastructure.VersionResponse'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /api/v1/x-chain-activity:
    get:
      description: |-
        Returns a list of chain pairs by origin chain and destination chain.
        The list could be rendered by volume or transaction count.
        The volume is calculated using the notional price of the symbol at the day the VAA was emitted.
      operationId: x-chain-activity
      parameters:
      - description: 'Star time (format: ISO-8601).'
        in: query
        name: start_time
        type: string
      - description: 'End time (format: ISO-8601).'
        in: query
        name: end_time
        type: string
      - description: Renders the results using volume or tx count (default is volume).
        in: query
        name: by
        type: string
      - description: List of apps separated by comma (default is all apps).
        in: query
        name: apps
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/transactions.ChainActivity'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /swagger.json:
    get:
      description: Returns the swagger specification for this API.
      operationId: swagger
      responses:
        "200":
          description: OK
          schema:
            type: object
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Wormscan
  /v1/governor/available_notional_by_chain:
    get:
      description: |-
        Get available notional by chainID
        Since from the wormhole-explorer point of view it is not a node, but has the information of all nodes,
        in order to build the endpoints it was assumed:
        There are N number of remainingAvailableNotional values in the GovernorConfig collection. N = number of guardians
        for a chainID. The smallest remainingAvailableNotional value for a chainID is used for the endpoint response.
      operationId: governor-available-notional-by-chain
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/governor.AvailableNotionalResponse'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Guardian
  /v1/governor/enqueued_vaas:
    get:
      description: Get enqueued VAAs
      operationId: guardians-enqueued-vaas
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/governor.EnqueuedVaaResponse'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Guardian
  /v1/governor/is_vaa_enqueued/{chain_id}/{emitter}/{seq}:
    get:
      description: Check if vaa is enqueued
      operationId: guardians-is-vaa-enqueued
      parameters:
      - description: id of the blockchain
        in: path
        name: chain_id
        required: true
        type: integer
      - description: address of the emitter
        in: path
        name: emitter
        required: true
        type: string
      - description: sequence of the vaa
        in: path
        name: seq
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/governor.EnqueuedVaaResponse'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Guardian
  /v1/governor/token_list:
    get:
      description: |-
        Get token list
        Since from the wormhole-explorer point of view it is not a node, but has the information of all nodes,
        in order to build the endpoints it was assumed:
        For tokens with the same originChainId and originAddress and different price values for each node,
        the price that has most occurrences in all the nodes for an originChainId and originAddress is returned.
      operationId: guardians-token-list
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/governor.TokenList'
            type: array
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Guardian
  /v1/guardianset/current:
    get:
      description: Get current guardian set.
      operationId: guardian-set
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/guardian.GuardianSetResponse'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Guardian
  /v1/heartbeats:
    get:
      description: Get heartbeats for guardians
      operationId: guardians-hearbeats
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/heartbeats.HeartbeatsResponse'
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Guardian
  /v1/signed_batch_vaa/{chain_id}/{emitter}/sequence/{seq}:
    get:
      description: get a batch of VAA []byte from a chainID, emitter address and sequence.
      operationId: guardians-find-signed-batch-vaa
      parameters:
      - description: id of the blockchain
        in: path
        name: chain_id
        required: true
        type: integer
      - description: address of the emitter
        in: path
        name: emitter
        required: true
        type: string
      - description: sequence of the VAA
        in: path
        name: seq
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - type: object
            - properties:
                vaaBytes:
                  items:
                    type: integer
                  type: array
              type: object
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Guardian
  /v1/signed_vaa/{chain_id}/{emitter}/{seq}:
    get:
      description: get a VAA []byte from a chainID, emitter address and sequence.
      operationId: guardians-find-signed-vaa
      parameters:
      - description: id of the blockchain
        in: path
        name: chain_id
        required: true
        type: integer
      - description: address of the emitter
        in: path
        name: emitter
        required: true
        type: string
      - description: sequence of the VAA
        in: path
        name: seq
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - type: object
            - properties:
                vaaBytes:
                  items:
                    type: integer
                  type: array
              type: object
        "400":
          description: Bad Request
        "500":
          description: Internal Server Error
      tags:
      - Guardian
swagger: "2.0"
