openapi: 3.1.0
info:
title: Data AVAX Supply Primary Network Transactions API
description: The Data API provides web3 application developers with multi-chain data related to Avalanche's primary network, Avalanche subnets, and Ethereum. With Data API, you can easily build products that leverage real-time and historical transaction and transfer history, native and token balances, and various types of token metadata. The API is in Beta and may be subject to change.</br></br>If you have feedback or feature requests for the API, please submit them <a href="https://portal.productboard.com/dndv9ahlkdfye4opdm8ksafi/tabs/4-glacier-api">here</a>. Bug reports can be submitted <a href="https://docs.google.com/forms/d/e/1FAIpQLSeJQrcp7QoNiqozMDKrVJGX5wpU827d3cVTgF8qa7t_J1Pb-g/viewform">here</a>, and any potential security issues can be reported <a href="https://immunefi.com/bounty/avalabs">here</a>.
version: 1.0.0
contact: {}
servers:
- url: https://data-api.avax.network
security:
- apiKey: []
- {}
tags:
- name: Primary Network Transactions
description: Find information about transactions on Avalanche's Primary Network Chains - the P-Chain, the X-Chain, and the C-Chain.
paths:
/v1/networks/{network}/blockchains/{blockchainId}/transactions/{txHash}:
get:
operationId: getTxByHash
x-execution-weight: medium
x-speakeasy-group: data.primaryNetwork.transactions
x-speakeasy-name-override: get
summary: Get transaction
description: Gets the details of a single transaction on one of the Primary Network chains.
parameters:
- name: blockchainId
required: true
in: path
description: A primary network blockchain id or alias.
example: p-chain
schema:
$ref: '#/components/schemas/BlockchainId'
- name: network
required: true
in: path
description: Either mainnet or testnet/fuji.
example: mainnet
schema:
$ref: '#/components/schemas/Network'
- name: txHash
required: true
in: path
description: A primary network (P or X chain) transaction hash.
example: 3P91K6nuDFvDodcRuJTsgdf9SvYe5pMiKk38HppsoeAiEztCP
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/PChainTransaction'
- $ref: '#/components/schemas/XChainNonLinearTransaction'
- $ref: '#/components/schemas/XChainLinearTransaction'
- $ref: '#/components/schemas/CChainExportTransaction'
- $ref: '#/components/schemas/CChainImportTransaction'
'400':
description: "Bad requests generally mean the client has passed invalid \n or malformed parameters. Error messages in the response could help in \n evaluating the error."
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
'401':
description: "When a client attempts to access resources that require \n authorization credentials but the client lacks proper authentication \n in the request, the server responds with 401."
content:
application/json:
schema:
$ref: '#/components/schemas/Unauthorized'
'403':
description: "When a client attempts to access resources with valid\n credentials but doesn't have the privilege to perform that action, \n the server responds with 403."
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden'
'404':
description: "The error is mostly returned when the client requests\n with either mistyped URL, or the passed resource is moved or deleted, \n or the resource doesn't exist."
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
'429':
description: "This error is returned when the client has sent too many,\n and has hit the rate limit."
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequests'
'500':
description: "The error is a generic server side error that is \n returned for any uncaught and unexpected issues on the server side. \n This should be very rare, and you may reach out to us if the problem \n persists for a longer duration."
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
'502':
description: "This is an internal error indicating invalid response \n received by the client-facing proxy or gateway from the upstream server."
content:
application/json:
schema:
$ref: '#/components/schemas/BadGateway'
'503':
description: "The error is returned for certain routes on a particular\n Subnet. This indicates an internal problem with our Subnet node, and may \n not necessarily mean the Subnet is down or affected."
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceUnavailable'
tags:
- Primary Network Transactions
/v1/networks/{network}/blockchains/{blockchainId}/transactions:
get:
operationId: listLatestPrimaryNetworkTransactions
x-speakeasy-group: data.primaryNetwork.transactions
x-speakeasy-name-override: listLatest
x-speakeasy-pagination:
type: cursor
inputs:
- name: pageToken
in: parameters
type: cursor
outputs:
nextCursor: $.nextPageToken
x-execution-weight: xl
summary: List latest transactions
description: 'Lists the latest transactions on one of the Primary Network chains.
Transactions are filterable by addresses, txTypes, and timestamps. When querying for latest transactions without an address parameter, filtering by txTypes and timestamps is not supported. An address filter must be provided to utilize txTypes and timestamp filters.
For P-Chain, you can fetch all L1 validators related transactions like ConvertSubnetToL1Tx, IncreaseL1ValidatorBalanceTx etc. using the unique L1 validation ID. These transactions are further filterable by txTypes and timestamps as well.
Given that each transaction may return a large number of UTXO objects, bounded only by the maximum transaction size, the query may return less transactions than the provided page size. The result will contain less results than the page size if the number of utxos contained in the resulting transactions reach a performance threshold.'
parameters:
- name: addresses
required: false
in: query
description: A comma separated list of X-Chain or P-Chain wallet addresses, starting with "avax"/"fuji", "P-avax"/"P-fuji" or "X-avax"/"X-fuji". Also accepts EVM formatted addresses starting with "0x" for C-Chain-related atomic transaction lookups.
example: avax1h2ccj9f5ay5acl6tyn9mwmw32p8wref8vl8ctg
schema:
type: string
- name: l1ValidationId
required: false
in: query
schema:
type: string
- name: txTypes
required: false
in: query
example:
- AddValidatorTx
description: Query param for filtering items based on transaction types.
schema:
type: array
items:
$ref: '#/components/schemas/PrimaryNetworkTxType'
- name: startTimestamp
required: false
in: query
description: Query param for retrieving items after a specific timestamp.
example: 1689541049
schema:
minimum: 0
type: integer
- name: endTimestamp
required: false
in: query
description: Query param for retrieving items before a specific timestamp.
example: 1689800249
schema:
minimum: 0
type: integer
- name: pageToken
required: false
in: query
description: A page token, received from a previous list call. Provide this to retrieve the subsequent page.
schema:
type: string
- name: pageSize
required: false
in: query
description: The maximum number of items to return. The minimum page size is 1. The maximum pageSize is 100.
schema:
type: integer
default: 10
minimum: 1
maximum: 100
example: '10'
- name: blockchainId
required: true
in: path
description: A primary network blockchain id or alias.
example: p-chain
schema:
$ref: '#/components/schemas/BlockchainId'
- name: network
required: true
in: path
description: Either mainnet or testnet/fuji.
example: mainnet
schema:
$ref: '#/components/schemas/Network'
- name: sortOrder
required: false
in: query
example: asc
description: The order by which to sort results. Use "asc" for ascending order, "desc" for descending order. Sorted by timestamp or the `sortBy` query parameter, if provided.
schema:
$ref: '#/components/schemas/SortOrder'
responses:
'200':
description: Successful response
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ListPChainTransactionsResponse'
- $ref: '#/components/schemas/ListXChainTransactionsResponse'
- $ref: '#/components/schemas/ListCChainAtomicTransactionsResponse'
'400':
description: "Bad requests generally mean the client has passed invalid \n or malformed parameters. Error messages in the response could help in \n evaluating the error."
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
'401':
description: "When a client attempts to access resources that require \n authorization credentials but the client lacks proper authentication \n in the request, the server responds with 401."
content:
application/json:
schema:
$ref: '#/components/schemas/Unauthorized'
'403':
description: "When a client attempts to access resources with valid\n credentials but doesn't have the privilege to perform that action, \n the server responds with 403."
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden'
'404':
description: "The error is mostly returned when the client requests\n with either mistyped URL, or the passed resource is moved or deleted, \n or the resource doesn't exist."
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
'429':
description: "This error is returned when the client has sent too many,\n and has hit the rate limit."
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequests'
'500':
description: "The error is a generic server side error that is \n returned for any uncaught and unexpected issues on the server side. \n This should be very rare, and you may reach out to us if the problem \n persists for a longer duration."
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
'502':
description: "This is an internal error indicating invalid response \n received by the client-facing proxy or gateway from the upstream server."
content:
application/json:
schema:
$ref: '#/components/schemas/BadGateway'
'503':
description: "The error is returned for certain routes on a particular\n Subnet. This indicates an internal problem with our Subnet node, and may \n not necessarily mean the Subnet is down or affected."
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceUnavailable'
tags:
- Primary Network Transactions
/v1/networks/{network}/blockchains/{blockchainId}/transactions:listStaking:
get:
operationId: listActivePrimaryNetworkStakingTransactions
x-speakeasy-group: data.primaryNetwork.transactions
x-speakeasy-name-override: listActiveStakingTransactions
x-speakeasy-pagination:
type: cursor
inputs:
- name: pageToken
in: parameters
type: cursor
outputs:
nextCursor: $.nextPageToken
x-execution-weight: xl
summary: List staking transactions
description: Lists active staking transactions on the P-Chain for the supplied addresses.
parameters:
- name: addresses
required: false
in: query
description: A comma separated list of X-Chain or P-Chain wallet addresses, starting with "avax"/"fuji", "P-avax"/"P-fuji" or "X-avax"/"X-fuji".
example: avax1h2ccj9f5ay5acl6tyn9mwmw32p8wref8vl8ctg
schema:
type: string
- name: txTypes
required: false
in: query
example:
- AddValidatorTx
description: Query param for filtering items based on transaction types.
schema:
type: array
items:
$ref: '#/components/schemas/PrimaryNetworkTxType'
- name: startTimestamp
required: false
in: query
description: Query param for retrieving items after a specific timestamp.
example: 1689541049
schema:
minimum: 0
type: integer
- name: endTimestamp
required: false
in: query
description: Query param for retrieving items before a specific timestamp.
example: 1689800249
schema:
minimum: 0
type: integer
- name: pageToken
required: false
in: query
description: A page token, received from a previous list call. Provide this to retrieve the subsequent page.
schema:
type: string
- name: pageSize
required: false
in: query
description: The maximum number of items to return. The minimum page size is 1. The maximum pageSize is 100.
schema:
type: integer
default: 10
minimum: 1
maximum: 100
example: '10'
- name: blockchainId
required: true
in: path
description: A primary network blockchain id or alias.
example: p-chain
schema:
$ref: '#/components/schemas/PChainId'
- name: network
required: true
in: path
description: Either mainnet or testnet/fuji.
example: mainnet
schema:
$ref: '#/components/schemas/Network'
- name: sortOrder
required: false
in: query
example: asc
description: The order by which to sort results. Use "asc" for ascending order, "desc" for descending order. Sorted by timestamp or the `sortBy` query parameter, if provided.
schema:
$ref: '#/components/schemas/SortOrder'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/ListPChainTransactionsResponse'
'400':
description: "Bad requests generally mean the client has passed invalid \n or malformed parameters. Error messages in the response could help in \n evaluating the error."
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
'401':
description: "When a client attempts to access resources that require \n authorization credentials but the client lacks proper authentication \n in the request, the server responds with 401."
content:
application/json:
schema:
$ref: '#/components/schemas/Unauthorized'
'403':
description: "When a client attempts to access resources with valid\n credentials but doesn't have the privilege to perform that action, \n the server responds with 403."
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden'
'404':
description: "The error is mostly returned when the client requests\n with either mistyped URL, or the passed resource is moved or deleted, \n or the resource doesn't exist."
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
'429':
description: "This error is returned when the client has sent too many,\n and has hit the rate limit."
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequests'
'500':
description: "The error is a generic server side error that is \n returned for any uncaught and unexpected issues on the server side. \n This should be very rare, and you may reach out to us if the problem \n persists for a longer duration."
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
'502':
description: "This is an internal error indicating invalid response \n received by the client-facing proxy or gateway from the upstream server."
content:
application/json:
schema:
$ref: '#/components/schemas/BadGateway'
'503':
description: "The error is returned for certain routes on a particular\n Subnet. This indicates an internal problem with our Subnet node, and may \n not necessarily mean the Subnet is down or affected."
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceUnavailable'
tags:
- Primary Network Transactions
/v1/networks/{network}/blockchains/{blockchainId}/assets/{assetId}/transactions:
get:
operationId: listAssetTransactions
x-speakeasy-group: data.primaryNetwork.transactions
x-speakeasy-pagination:
type: cursor
inputs:
- name: pageToken
in: parameters
type: cursor
outputs:
nextCursor: $.nextPageToken
x-execution-weight: xl
summary: List asset transactions
description: Lists asset transactions corresponding to the given asset id on the X-Chain.
parameters:
- name: txTypes
required: false
in: query
example:
- AddValidatorTx
description: Query param for filtering items based on transaction types.
schema:
type: array
items:
$ref: '#/components/schemas/PrimaryNetworkTxType'
- name: startTimestamp
required: false
in: query
description: Query param for retrieving items after a specific timestamp.
example: 1689541049
schema:
minimum: 0
type: integer
- name: endTimestamp
required: false
in: query
description: Query param for retrieving items before a specific timestamp.
example: 1689800249
schema:
minimum: 0
type: integer
- name: pageToken
required: false
in: query
description: A page token, received from a previous list call. Provide this to retrieve the subsequent page.
schema:
type: string
- name: pageSize
required: false
in: query
description: The maximum number of items to return. The minimum page size is 1. The maximum pageSize is 100.
schema:
type: integer
default: 10
minimum: 1
maximum: 100
example: '10'
- name: blockchainId
required: true
in: path
description: A primary network blockchain id or alias.
example: x-chain
schema:
$ref: '#/components/schemas/XChainId'
- name: network
required: true
in: path
description: Either mainnet or testnet/fuji.
example: mainnet
schema:
$ref: '#/components/schemas/Network'
- name: assetId
required: true
in: path
description: Asset ID for any asset on X-Chain
example: th5aLdWLi32yS9ED6uLGoMMubqHjzMsXhKWwzP6yZTYQKYzof
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/ListXChainTransactionsResponse'
'400':
description: "Bad requests generally mean the client has passed invalid \n or malformed parameters. Error messages in the response could help in \n evaluating the error."
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
'401':
description: "When a client attempts to access resources that require \n authorization credentials but the client lacks proper authentication \n in the request, the server responds with 401."
content:
application/json:
schema:
$ref: '#/components/schemas/Unauthorized'
'403':
description: "When a client attempts to access resources with valid\n credentials but doesn't have the privilege to perform that action, \n the server responds with 403."
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden'
'404':
description: "The error is mostly returned when the client requests\n with either mistyped URL, or the passed resource is moved or deleted, \n or the resource doesn't exist."
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
'429':
description: "This error is returned when the client has sent too many,\n and has hit the rate limit."
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequests'
'500':
description: "The error is a generic server side error that is \n returned for any uncaught and unexpected issues on the server side. \n This should be very rare, and you may reach out to us if the problem \n persists for a longer duration."
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
'502':
description: "This is an internal error indicating invalid response \n received by the client-facing proxy or gateway from the upstream server."
content:
application/json:
schema:
$ref: '#/components/schemas/BadGateway'
'503':
description: "The error is returned for certain routes on a particular\n Subnet. This indicates an internal problem with our Subnet node, and may \n not necessarily mean the Subnet is down or affected."
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceUnavailable'
tags:
- Primary Network Transactions
components:
schemas:
Forbidden:
type: object
properties:
message:
description: The error message describing the reason for the exception
oneOf:
- type: string
- type: array
items:
type: string
statusCode:
type: number
description: The HTTP status code of the response
examples:
- 403
error:
type: string
description: The type of error
examples:
- Forbidden
required:
- message
- statusCode
- error
UtxoType:
type: string
description: Indicates whether the UTXO is staked or transferable
enum:
- STAKE
- TRANSFER
BlockchainId:
type: string
enum:
- 11111111111111111111111111111111LpoYY
- 2oYMBNV4eNHyqk2fjjV5nVQLDbtmNJzq5s3qs3Lo6ftnC6FByM
- 2JVSBoinj9C2J33VntvzYtVJNZdN2NKiwwKjcumHUWEb5DbBrm
- 2q9e4r6Mu3U68nU1fYjgbR6JvwrRx36CohpAX5UQxse55x1Q5
- yH8D7ThNJkxmtkuv2jgBa4P1Rn3Qpr4pPr7QYNfcdoS6k6HWp
- p-chain
- x-chain
- c-chain
ListCChainAtomicTransactionsResponse:
type: object
properties:
nextPageToken:
type: string
description: A token, which can be sent as `pageToken` to retrieve the next page. If this field is omitted or empty, there are no subsequent pages.
transactions:
type: array
items:
anyOf:
- $ref: '#/components/schemas/CChainExportTransaction'
- $ref: '#/components/schemas/CChainImportTransaction'
chainInfo:
$ref: '#/components/schemas/PrimaryNetworkChainInfo'
required:
- transactions
- chainInfo
PrimaryNetworkAssetType:
type: string
description: Type of asset like SECP256K1 or NFT.
enum:
- secp256k1
- nft
PChainUtxo:
type: object
properties:
addresses:
description: Addresses that are eligible to sign the consumption of this output.
examples:
- - avax1qm2a25eytsrj235hxg6jc0mwk99tss64eqevsw
type: array
items:
type: string
asset:
$ref: '#/components/schemas/AssetAmount'
consumedOnChainId:
type: string
description: Blockchain ID on which this output is consumed on.
examples:
- 2oYMBNV4eNHyqk2fjjV5nVQLDbtmNJzq5s3qs3Lo6ftnC6FByM
consumingTxHash:
type: string
description: Transaction ID that consumed this output.
examples:
- 3j9JpF1aGuQtLLbo3YkvvKkWrCZViXZjdeJQWUSEY5hcqUn2c
createdOnChainId:
type: string
description: Blockchain ID on which this output is created on.
examples:
- 2oYMBNV4eNHyqk2fjjV5nVQLDbtmNJzq5s3qs3Lo6ftnC6FByM
utxoId:
type: string
description: UTXO ID for this output.
examples:
- 68vLva9kfKUsX88ZPM8jdbf8qHUZRoZSFH6NdpAVTspkfrXDC
utxoBytes:
type: string
description: The bytes of the UTXO
amount:
type: string
deprecated: true
assetId:
type: string
deprecated: true
blockNumber:
type: string
blockTimestamp:
type: number
consumingBlockNumber:
type: string
description: Block height in which the transaction consuming this UTXO was included
consumingBlockTimestamp:
type: number
description: Timestamp in seconds at which this UTXO is used in a consuming transaction
platformLocktime:
type: number
description: Timestamp in seconds after which this UTXO can be consumed
outputIndex:
type: number
description: The index of the UTXO in the transaction
rewardType:
$ref: '#/components/schemas/RewardType'
stakeableLocktime:
type: number
description: Timestamp in seconds before which a UTXO can only be used for staking transactions. After stakeable locktime, a UTXO can be used for anything
staked:
type: boolean
threshold:
type: number
description: The minimum number of signatures required to spend this UTXO
txHash:
type: string
description: The hash of the transaction that created this UTXO
utxoEndTimestamp:
type: number
description: Timestamp in seconds after which the staked UTXO will be unlocked.
utxoStartTimestamp:
type: number
description: Timestamp in seconds at which the staked UTXO was locked.
utxoType:
$ref: '#/components/schemas/UtxoType'
required:
- addresses
- asset
- consumedOnChainId
- createdOnChainId
- utxoId
- amount
- assetId
- blockNumber
- blockTimestamp
- outputIndex
- txHash
- utxoType
PrimaryNetworkChainName:
type: string
enum:
- p-chain
- x-chain
- c-chain
BlockchainInfo:
type: object
properties:
chainName:
type: string
vmId:
type: string
genesisData:
description: The genesis data of the blockchain. Present for CreateChainTx. EVM based chains will return the genesis data as an object. Non-EVM based chains will return the genesis data as an encoded string. The encoding depends on the VM
oneOf:
- $ref: '#/components/schemas/EvmGenesisDto'
- type: string
example: '{"chainId": 43114}'
examples:
config:
chainId: 43114
required:
- chainName
- vmId
Network:
type: string
enum:
- mainnet
- fuji
- testnet
PrimaryNetworkTxType:
type: string
enum:
- AddValidatorTx
- AddSubnetValidatorTx
- AddDelegatorTx
- CreateChainTx
- CreateSubnetTx
- ImportTx
- ExportTx
- AdvanceTimeTx
- RewardValidatorTx
- RemoveSubnetValidatorTx
- TransformSubnetTx
- AddPermissionlessValidatorTx
- AddPermissionlessDelegatorTx
- BaseTx
- TransferSubnetOwnershipTx
- ConvertSubnetToL1Tx
- RegisterL1ValidatorTx
- SetL1ValidatorWeightTx
- DisableL1ValidatorTx
- IncreaseL1ValidatorBalanceTx
- UNKNOWN
- CreateAssetTx
- OperationTx
ListXChainTransactionsResponse:
type: object
properties:
nextPageToken:
type: string
description: A token, which can be sent as `pageToken` to retrieve the next page. If this field is omitted or empty, there are no subsequent pages.
transactions:
type: array
items:
anyOf:
- $ref: '#/components/schemas/XChainNonLinearTransaction'
- $ref: '#/components/schemas/XChainLinearTransaction'
chainInfo:
$ref: '#/components/schemas/PrimaryNetworkChainInfo'
required:
- transactions
- chainInfo
InternalServerError:
type: object
properties:
message:
description: The error message describing the reason for the exception
oneOf:
- type: string
- type: array
items:
type: string
statusCode:
type: number
description: The HTTP status code of the response
examples:
- 500
error:
type: string
description: The type of error
examples:
- Internal Server Error
required:
- message
- statusCode
- error
EvmGenesisConfigDto:
type: object
properties:
berlinBlock:
type: number
description: Berlin block number
example: 0
byzantiumBlock:
type: number
description: Byzantium block number
example: 0
chainId:
type: number
description: Chain ID
example: 43114
constantinopleBlock:
type: number
description: Constantinople block number
example: 0
eip150Block:
type: number
description: EIP-150 block number
example: 0
eip150Hash:
type: string
description: EIP-150 hash
example: '0x2086799aeebeae135c2
# --- truncated at 32 KB (71 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/avalanche/refs/heads/main/openapi/avalanche-primary-network-transactions-api-openapi.yml