Wormhole Guardian API

The Guardian API from Wormhole — 8 operation(s) for guardian.

Operations 8

GET /v1/governor/available_notional_by_chain #
GET /v1/governor/enqueued_vaas #
GET /v1/governor/is_vaa_enqueued/:chain_id/:emitter/:seq #
GET /v1/governor/token_list #
GET /v1/guardianset/current #
GET /v1/heartbeats #
GET /v1/signed_batch_vaa/:chain_id/:emitter/sequence/:seq #
GET /v1/signed_vaa/:chain_id/:emitter/:seq #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/wormhole-guardian-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

wormhole-guardian-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: 'Wormhole Guardian API

    This is the API for the Wormhole Guardian and Explorer.

    The API has two namespaces: wormholescan and guardian.

    wormholescan 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.'
  title: Wormholescan Guardian API
  termsOfService: https://wormhole.com/
  contact:
    name: API Support
    url: https://discord.com/invite/wormholecrypto
    email: info@wormhole.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  version: '1.0'
servers:
- url: https://api.wormholescan.io/
tags:
- name: Guardian
paths:
  /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.'
      tags:
      - Guardian
      operationId: governor-available-notional-by-chain
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/governor.AvailableNotionalResponse'
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
  /v1/governor/enqueued_vaas:
    get:
      description: Get enqueued VAAs
      tags:
      - Guardian
      operationId: guardians-enqueued-vaas
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/governor.EnqueuedVaaResponse'
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
  /v1/governor/is_vaa_enqueued/:chain_id/:emitter/:seq:
    get:
      description: Check if vaa is enqueued
      tags:
      - Guardian
      operationId: guardians-is-vaa-enqueued
      parameters:
      - description: id of the blockchain
        name: chain_id
        in: path
        required: true
        schema:
          type: integer
      - description: address of the emitter
        name: emitter
        in: path
        required: true
        schema:
          type: string
      - description: sequence of the vaa
        name: seq
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/governor.EnqueuedVaaResponse'
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
  /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.'
      tags:
      - Guardian
      operationId: guardians-token-list
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/governor.TokenList'
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
  /v1/guardianset/current:
    get:
      description: Get current guardian set.
      tags:
      - Guardian
      operationId: guardian-set
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/guardian.GuardianSetResponse'
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
  /v1/heartbeats:
    get:
      description: Get heartbeats for guardians
      tags:
      - Guardian
      operationId: guardians-hearbeats
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/heartbeats.HeartbeatsResponse'
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
  /v1/signed_batch_vaa/:chain_id/:emitter/sequence/:seq:
    get:
      description: get a batch of VAA []byte from a chainID, emitter address and sequence.
      tags:
      - Guardian
      operationId: guardians-find-signed-batch-vaa
      parameters:
      - description: id of the blockchain
        name: chain_id
        in: path
        required: true
        schema:
          type: integer
      - description: address of the emitter
        name: emitter
        in: path
        required: true
        schema:
          type: string
      - description: sequence of the VAA
        name: seq
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  vaaBytes:
                    type: array
                    items:
                      type: integer
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
  /v1/signed_vaa/:chain_id/:emitter/:seq:
    get:
      description: get a VAA []byte from a chainID, emitter address and sequence.
      tags:
      - Guardian
      operationId: guardians-find-signed-vaa
      parameters:
      - description: id of the blockchain
        name: chain_id
        in: path
        required: true
        schema:
          type: integer
      - description: address of the emitter
        name: emitter
        in: path
        required: true
        schema:
          type: string
      - description: sequence of the VAA
        name: seq
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  vaaBytes:
                    type: array
                    items:
                      type: integer
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
components:
  schemas:
    github_com_wormhole-foundation_wormhole-explorer_api_routes_guardian_guardian.GuardianSet:
      type: object
      properties:
        addresses:
          type: array
          items:
            type: string
        index:
          type: integer
    heartbeats.HeartbeatsResponse:
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/heartbeats.HeartbeatResponse'
    vaa.ChainID:
      type: integer
      enum:
      - 0
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 8
      - 10
      - 13
      - 14
      - 15
      - 16
      - 18
      - 19
      - 20
      - 21
      - 22
      - 23
      - 24
      - 25
      - 26
      - 29
      - 30
      - 31
      - 32
      - 33
      - 34
      - 35
      - 37
      - 38
      - 39
      - 40
      - 41
      - 42
      - 44
      - 45
      - 46
      - 47
      - 48
      - 49
      - 50
      - 51
      - 52
      - 53
      - 54
      - 55
      - 56
      - 57
      - 58
      - 59
      - 60
      - 61
      - 62
      - 63
      - 64
      - 65
      - 66
      - 67
      - 68
      - 69
      - 3104
      - 4000
      - 4001
      - 4002
      - 4003
      - 4004
      - 4005
      - 4006
      - 4007
      - 4008
      - 4009
      - 10002
      - 10003
      - 10004
      - 10005
      - 10006
      - 10007
      - 10009
      - 65000
      x-enum-varnames:
      - ChainIDUnset
      - ChainIDSolana
      - ChainIDEthereum
      - ChainIDTerra
      - ChainIDBSC
      - ChainIDPolygon
      - ChainIDAvalanche
      - ChainIDAlgorand
      - ChainIDFantom
      - ChainIDKlaytn
      - ChainIDCelo
      - ChainIDNear
      - ChainIDMoonbeam
      - ChainIDTerra2
      - ChainIDInjective
      - ChainIDOsmosis
      - ChainIDSui
      - ChainIDAptos
      - ChainIDArbitrum
      - ChainIDOptimism
      - ChainIDGnosis
      - ChainIDPythNet
      - ChainIDBtc
      - ChainIDBase
      - ChainIDFileCoin
      - ChainIDSei
      - ChainIDRootstock
      - ChainIDScroll
      - ChainIDMantle
      - ChainIDXLayer
      - ChainIDLinea
      - ChainIDBerachain
      - ChainIDSeiEVM
      - ChainIDEclipse
      - ChainIDBOB
      - ChainIDUnichain
      - ChainIDWorldchain
      - ChainIDInk
      - ChainIDHyperEVM
      - ChainIDMonad
      - ChainIDMovement
      - ChainIDMezo
      - ChainIDFogo
      - ChainIDSonic
      - ChainIDConverge
      - ChainIDCodex
      - ChainIDPlume
      - ChainIDAztec
      - ChainIDXRPLEVM
      - ChainIDPlasma
      - ChainIDCreditCoin
      - ChainIDStacks
      - ChainIDStellar
      - ChainIDTON
      - ChainIDMoca
      - ChainIDMegaETH
      - ChainIDDogecoin
      - ChainIDXRPL
      - ChainIDZeroGravity
      - ChainIDTempo
      - ChainIDNexus
      - ChainIDWormchain
      - ChainIDCosmoshub
      - ChainIDEvmos
      - ChainIDKujira
      - ChainIDNeutron
      - ChainIDCelestia
      - ChainIDStargaze
      - ChainIDSeda
      - ChainIDDymension
      - ChainIDProvenance
      - ChainIDNoble
      - ChainIDSepolia
      - ChainIDArbitrumSepolia
      - ChainIDBaseSepolia
      - ChainIDOptimismSepolia
      - ChainIDHolesky
      - ChainIDPolygonSepolia
      - ChainIDMonadTestnet
      - ChainIDHyperCore
    governor.EnqueuedVaaResponse:
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/governor.EnqueuedVaaItemResponse'
    guardian.GuardianSetResponse:
      type: object
      properties:
        guardianSet:
          $ref: '#/components/schemas/github_com_wormhole-foundation_wormhole-explorer_api_routes_guardian_guardian.GuardianSet'
    governor.TokenList:
      type: object
      properties:
        originAddress:
          type: string
        originChainId:
          $ref: '#/components/schemas/vaa.ChainID'
        price:
          type: number
    governor.AvailableNotionalResponse:
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/governor.AvailableNotionalItemResponse'
    heartbeats.HeartbeatNetworkResponse:
      type: object
      properties:
        contractAddress:
          type: string
        errorCount:
          type: string
        height:
          type: string
        id:
          type: integer
    governor.EnqueuedVaaItemResponse:
      type: object
      properties:
        emitterAddress:
          type: string
        emitterChain:
          $ref: '#/components/schemas/vaa.ChainID'
        notionalValue:
          type: string
        releaseTime:
          type: integer
        sequence:
          type: integer
        txHash:
          type: string
    heartbeats.HeartbeatResponse:
      type: object
      properties:
        p2pNodeAddr:
          type: string
        rawHeartbeat:
          $ref: '#/components/schemas/heartbeats.RawHeartbeat'
        verifiedGuardianAddr:
          type: string
    governor.AvailableNotionalItemResponse:
      type: object
      properties:
        bigTransactionSize:
          type: string
        chainId:
          $ref: '#/components/schemas/vaa.ChainID'
        notionalLimit:
          type: string
        remainingAvailableNotional:
          type: string
    heartbeats.RawHeartbeat:
      type: object
      properties:
        bootTimestamp:
          type: string
        counter:
          type: string
        features:
          type: array
          items:
            type: string
        guardianAddr:
          type: string
        networks:
          type: array
          items:
            $ref: '#/components/schemas/heartbeats.HeartbeatNetworkResponse'
        nodeName:
          type: string
        timestamp:
          type: string
        version:
          type: string