Wormhole Guardian API
The Guardian API from Wormhole — 8 operation(s) for guardian.
The Guardian API from Wormhole — 8 operation(s) for guardian.
swagger: '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'
host: api.wormholescan.io
basePath: /
schemes:
- https
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
schema:
$ref: '#/definitions/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
schema:
$ref: '#/definitions/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:
- type: integer
description: id of the blockchain
name: chain_id
in: path
required: true
- type: string
description: address of the emitter
name: emitter
in: path
required: true
- type: integer
description: sequence of the vaa
name: seq
in: path
required: true
responses:
'200':
description: OK
schema:
$ref: '#/definitions/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
schema:
type: array
items:
$ref: '#/definitions/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
schema:
$ref: '#/definitions/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
schema:
$ref: '#/definitions/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:
- type: integer
description: id of the blockchain
name: chain_id
in: path
required: true
- type: string
description: address of the emitter
name: emitter
in: path
required: true
- type: integer
description: sequence of the VAA
name: seq
in: path
required: true
responses:
'200':
description: OK
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:
- type: integer
description: id of the blockchain
name: chain_id
in: path
required: true
- type: string
description: address of the emitter
name: emitter
in: path
required: true
- type: integer
description: sequence of the VAA
name: seq
in: path
required: true
responses:
'200':
description: OK
schema:
type: object
properties:
vaaBytes:
type: array
items:
type: integer
'400':
description: Bad Request
'500':
description: Internal Server Error
definitions:
governor.AvailableNotionalResponse:
type: object
properties:
entries:
type: array
items:
$ref: '#/definitions/governor.AvailableNotionalItemResponse'
github_com_wormhole-foundation_wormhole-explorer_api_routes_guardian_guardian.GuardianSet:
type: object
properties:
addresses:
type: array
items:
type: string
index:
type: integer
governor.AvailableNotionalItemResponse:
type: object
properties:
bigTransactionSize:
type: string
chainId:
$ref: '#/definitions/vaa.ChainID'
notionalLimit:
type: string
remainingAvailableNotional:
type: string
heartbeats.HeartbeatsResponse:
type: object
properties:
entries:
type: array
items:
$ref: '#/definitions/heartbeats.HeartbeatResponse'
governor.EnqueuedVaaItemResponse:
type: object
properties:
emitterAddress:
type: string
emitterChain:
$ref: '#/definitions/vaa.ChainID'
notionalValue:
type: string
releaseTime:
type: integer
sequence:
type: integer
txHash:
type: string
heartbeats.HeartbeatNetworkResponse:
type: object
properties:
contractAddress:
type: string
errorCount:
type: string
height:
type: string
id:
type: integer
governor.TokenList:
type: object
properties:
originAddress:
type: string
originChainId:
$ref: '#/definitions/vaa.ChainID'
price:
type: number
governor.EnqueuedVaaResponse:
type: object
properties:
entries:
type: array
items:
$ref: '#/definitions/governor.EnqueuedVaaItemResponse'
heartbeats.HeartbeatResponse:
type: object
properties:
p2pNodeAddr:
type: string
rawHeartbeat:
$ref: '#/definitions/heartbeats.RawHeartbeat'
verifiedGuardianAddr:
type: string
guardian.GuardianSetResponse:
type: object
properties:
guardianSet:
$ref: '#/definitions/github_com_wormhole-foundation_wormhole-explorer_api_routes_guardian_guardian.GuardianSet'
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
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: '#/definitions/heartbeats.HeartbeatNetworkResponse'
nodeName:
type: string
timestamp:
type: string
version:
type: string