wormhole-explorer/api/docs/swagger.yaml

1880 lines
49 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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"