Wormhole Guardian API
The Guardian API from Wormhole — 8 operation(s) for guardian.
The Guardian API from Wormhole — 8 operation(s) for guardian.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/wormhole-guardian-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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