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