Avascan is the most complete, fast and privacy-focused explorer for the Avalanche network. With Avascan API developers can build apps and tools. You can start queries by accessing the GraphQL Avascan API Playground.
Note: currently queries only show results for X-Chain. P-Chain and C-Chain are not indexed yet.
Avalanche is the 'internet of blockchains', and as such, you can browse and extract info about a given blockchain. Currently, there are only three permissionless blockchains nicknamed P-Chain, X-Chain and C-Chain. There are also permissioned blockchains, and both permissionless and permissioned will likely increase in number when the mainnet is launched. You can browse blockchains with a simple query: you will get the number of blockchains in the Avalanche network.
query {blockchains {count}}
You can also get more specific information about a single blockchain.
query {blockchains(limit: 5, offset: 0) {countresults {idnamesubnetvm
query {blockchains(id: "2oYMBNV4eNHyqk2fjjV5nVQLDbtmNJzq5s3qs3Lo6ftnC6FByM") {countresults {idnamesubnetvmID}}}
If you want more info on a specific blockchain, query its transactions. Do it by passing the assetID
and you can order it by any attribute, desc
or asc
. You need to specify the attributes you want to get in the result response, as shown below:
query {transactions(assetID: "3ofDwYQKgBvsZQTBXJnqdvcns4aGikwSnGie2kc6xWJM7MAGb"limit: 10offset: 0orderBy: { acceptedAt: "desc" }) {countresults {... on XBaseTransaction {inputs {output {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}credentials {addresspublicKeysignature}}outputs {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}idchainIDtypeacceptedAtinputs {output {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}credentials {addresspublicKeysignature}}outputs {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}}... on XCreateAssetTransaction {inputs {output {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}credentials {addresspublicKeysignature}}outputs {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}idchainIDtypeacceptedAt}... on XExportTransaction {inputs {output {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}credentials {addresspublicKeysignature}}outputs {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}idchainIDtypeacceptedAt}... on XImportTransaction {inputs {output {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}credentials {addresspublicKeysignature}}outputs {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}idchainIDtypeacceptedAt}}}}
Note: ordering by certain variables may not be available yet.
You can also filter the transactions to obtain the ones that are specific to a certain asset filtering by assetID
:
query {transactions(assetID: "3ofDwYQKgBvsZQTBXJnqdvcns4aGikwSnGie2kc6xWJM7MAGb"limit: 10offset: 0orderBy: { acceptedAt: "desc" }) {countresults {... on XBaseTransaction {inputs {output {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}credentials {addresspublicKeysignature}}outputs {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}idchainIDtypeacceptedAtinputs {output {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}credentials {addresspublicKeysignature}}outputs {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}}... on XCreateAssetTransaction {inputs {output {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}credentials {addresspublicKeysignature}}outputs {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}idchainIDtypeacceptedAt}... on XExportTransaction {inputs {output {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}credentials {addresspublicKeysignature}}outputs {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}idchainIDtypeacceptedAt}... on XImportTransaction {inputs {output {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}credentials {addresspublicKeysignature}}outputs {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}idchainIDtypeacceptedAt}}}}
Or you can filter by address
:
query {transactions(address: "X-avax149ssfat0569urv3xgppnz08ffrch5yjkzfs3xz"limit: 10offset: 0orderBy: { acceptedAt: "desc" }) {countresults {... on XBaseTransaction {inputs {output {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}credentials {addresspublicKeysignature}}outputs {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}idchainIDtypeacceptedAtinputs {output {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}credentials {addresspublicKeysignature}}outputs {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}}... on XCreateAssetTransaction {inputs {output {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}credentials {addresspublicKeysignature}}outputs {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}idchainIDtypeacceptedAt}... on XExportTransaction {inputs {output {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}credentials {addresspublicKeysignature}}outputs {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}idchainIDtypeacceptedAt}... on XImportTransaction {inputs {output {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}credentials {addresspublicKeysignature}}outputs {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}idchainIDtypeacceptedAt}}}}
Get a series of UTXO-related info for a specific address by including a redeemingTransactionID
that shows if the output related to that address has already been spent.
query {outputs: outputs(address: "X-avax149ssfat0569urv3xgppnz08ffrch5yjkzfs3xz") {countresults {... on XOutput {idtransactionIDoutputIndexassetIDoutputTypeamountlocktimethresholdaddressesredeemingTransactionIDtype}}}}
Get a complete list of validators, both active and pending. You can order the result by startTime
, endTime
, weight
, address
, subnet
or id
.
query {validators(status: "active"limit: 10offset: 0orderBy: { endTime: "asc" }) {countresults {idweightbeneficiary {addresses}startTimeendTimesubnetstatusdelegatedWeightsdelegationssubnets {weightstartTimeendTimesubnetstatusdelegatedWeightsdelegations}}}}
query {transactions(chainID: "p-chain"limit: 10type: "P_ADD_DEFAULT_SUBNET_DELEGATOR"offset: 0orderBy: { acceptedAt: "desc" }) {countresults {... on PAddDefaultSubnetDelegator {idchainIDtypeacceptedAtweightfromnodeIDbeneficiary {addresses}startTimeendTime}}}}
The Avascan API Platform is still under heavy development, and many more endpoints will become available soon.
​Join our Discord chat to stay updated and connect with the team, ask for new features or give feedback.