Ava Labs Primary Network Blocks API

Find information about blocks on Avalanche's Primary Network Chains - the P-Chain, the X-Chain, and the C-Chain.

OpenAPI Specification

ava-labs-primary-network-blocks-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Data AVAX Supply Primary Network Blocks 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://glacier-api.avax.network
security:
- apiKey: []
- {}
tags:
- name: Primary Network Blocks
  description: Find information about blocks on Avalanche's Primary Network Chains - the P-Chain, the X-Chain, and the C-Chain.
paths:
  /v1/networks/{network}/blockchains/{blockchainId}/blocks/{blockId}:
    get:
      operationId: getBlockById
      x-speakeasy-group: data.primaryNetwork.blocks
      x-speakeasy-name-override: get
      x-execution-weight: xl
      summary: Get block
      description: Gets a block by block height or block hash 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: blockId
        required: true
        in: path
        description: A block identifier which is either a block number or the block hash.
        example: 5615di9ytxujackzaXNrVuWQy5y8Yrt8chPCscMr5Ku9YxJ1S
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPrimaryNetworkBlockResponse'
        '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 Blocks
      x-codeSamples:
      - lang: javascript
        label: JavaScript
        source: "import { Avalanche } from \"@avalanche-sdk/chainkit\";\n\nconst avalanche = new Avalanche({\n  network: \"mainnet\",\n});\n\nasync function run() {\n  const result = await avalanche.data.primaryNetwork.blocks.get({\n    blockchainId: \"p-chain\",\n    blockId: \"5615di9ytxujackzaXNrVuWQy5y8Yrt8chPCscMr5Ku9YxJ1S\",\n  });\n\n  console.log(result);\n}\n\nrun();"
  /v1/networks/{network}/blockchains/{blockchainId}/nodes/{nodeId}/blocks:
    get:
      operationId: listPrimaryNetworkBlocksByNodeId
      x-execution-weight: medium
      x-speakeasy-group: data.primaryNetwork.blocks
      x-speakeasy-name-override: listByNodeId
      x-speakeasy-pagination:
        type: cursor
        inputs:
        - name: pageToken
          in: parameters
          type: cursor
        outputs:
          nextCursor: $.nextPageToken
      summary: List blocks proposed by node
      description: Lists the latest blocks proposed by a given NodeID on one of the Primary Network chains.
      parameters:
      - 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: nodeId
        required: true
        in: path
        description: A primary network (P or X chain) nodeId.
        example: NodeID-111111111111111111116DBWJs
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPrimaryNetworkBlocksResponse'
        '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 Blocks
      x-codeSamples:
      - lang: javascript
        label: JavaScript
        source: "import { Avalanche } from \"@avalanche-sdk/chainkit\";\n\nconst avalanche = new Avalanche({\n  network: \"mainnet\",\n});\n\nasync function run() {\n  const result = await avalanche.data.primaryNetwork.blocks.listByNodeId({\n    startTimestamp: 1689541049,\n    endTimestamp: 1689800249,\n    pageSize: 10,\n    blockchainId: \"p-chain\",\n    nodeId: \"NodeID-111111111111111111116DBWJs\",\n  });\n\n  for await (const page of result) {\n    console.log(page);\n  }\n}\n\nrun();"
  /v1/networks/{network}/blockchains/{blockchainId}/blocks:
    get:
      operationId: listLatestPrimaryNetworkBlocks
      x-execution-weight: medium
      x-speakeasy-group: data.primaryNetwork.blocks
      x-speakeasy-name-override: listLatest
      x-speakeasy-pagination:
        type: cursor
        inputs:
        - name: pageToken
          in: parameters
          type: cursor
        outputs:
          nextCursor: $.nextPageToken
      summary: List latest blocks
      description: Lists latest blocks on one of the Primary Network chains.
      parameters:
      - 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'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPrimaryNetworkBlocksResponse'
        '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 Blocks
      x-codeSamples:
      - lang: javascript
        label: JavaScript
        source: "import { Avalanche } from \"@avalanche-sdk/chainkit\";\n\nconst avalanche = new Avalanche({\n  network: \"mainnet\",\n});\n\nasync function run() {\n  const result = await avalanche.data.primaryNetwork.blocks.listLatest({\n    startTimestamp: 1689541049,\n    endTimestamp: 1689800249,\n    pageSize: 10,\n    blockchainId: \"p-chain\",\n  });\n\n  for await (const page of result) {\n    console.log(page);\n  }\n}\n\nrun();"
components:
  schemas:
    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
    PrimaryNetworkChainInfo:
      type: object
      properties:
        chainName:
          $ref: '#/components/schemas/PrimaryNetworkChainName'
        network:
          $ref: '#/components/schemas/Network'
      required:
      - chainName
      - network
    TooManyRequests:
      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:
          - 429
        error:
          type: string
          description: The type of error
          examples:
          - Too Many Requests
      required:
      - message
      - statusCode
      - error
    BadRequest:
      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:
          - 400
        error:
          type: string
          description: The type of error
          examples:
          - Bad Request
      required:
      - message
      - statusCode
      - error
    ListPrimaryNetworkBlocksResponse:
      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.
        blocks:
          type: array
          items:
            $ref: '#/components/schemas/PrimaryNetworkBlock'
        chainInfo:
          $ref: '#/components/schemas/PrimaryNetworkChainInfo'
      required:
      - blocks
      - chainInfo
    ServiceUnavailable:
      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:
          - 503
        error:
          type: string
          description: The type of error
          examples:
          - Service Unavailable
      required:
      - message
      - statusCode
      - error
    PrimaryNetworkChainName:
      type: string
      enum:
      - p-chain
      - x-chain
      - c-chain
    NotFound:
      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:
          - 404
        error:
          type: string
          description: The type of error
          examples:
          - Not Found
      required:
      - message
      - statusCode
      - error
    ProposerDetails:
      type: object
      properties:
        proposerId:
          type: string
        proposerParentId:
          type: string
        proposerNodeId:
          type: string
        proposerPChainHeight:
          type: number
        proposerTimestamp:
          type: number
    BlockchainId:
      type: string
      enum:
      - 11111111111111111111111111111111LpoYY
      - 2oYMBNV4eNHyqk2fjjV5nVQLDbtmNJzq5s3qs3Lo6ftnC6FByM
      - 2JVSBoinj9C2J33VntvzYtVJNZdN2NKiwwKjcumHUWEb5DbBrm
      - 2q9e4r6Mu3U68nU1fYjgbR6JvwrRx36CohpAX5UQxse55x1Q5
      - yH8D7ThNJkxmtkuv2jgBa4P1Rn3Qpr4pPr7QYNfcdoS6k6HWp
      - p-chain
      - x-chain
      - c-chain
    BadGateway:
      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:
          - 502
        error:
          type: string
          description: The type of error
          examples:
          - Bad Gateway
      required:
      - message
      - statusCode
      - error
    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
    PrimaryNetworkBlock:
      type: object
      properties:
        blockNumber:
          type: string
        blockHash:
          type: string
        parentHash:
          type: string
        blockTimestamp:
          type: number
        blockType:
          type: string
        txCount:
          type: number
        transactions:
          type: array
          items:
            type: string
        blockSizeBytes:
          type: number
        l1ValidatorsAccruedFees:
          type: number
        activeL1Validators:
          type: number
        currentSupply:
          type: string
        proposerDetails:
          $ref: '#/components/schemas/ProposerDetails'
      required:
      - blockNumber
      - blockHash
      - parentHash
      - blockTimestamp
      - blockType
      - txCount
      - transactions
      - blockSizeBytes
    Unauthorized:
      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:
          - 401
        error:
          type: string
          description: The type of error
          examples:
          - Unauthorized
      required:
      - message
      - statusCode
      - error
    GetPrimaryNetworkBlockResponse:
      type: object
      properties:
        blockNumber:
          type: string
        blockHash:
          type: string
        parentHash:
          type: string
        blockTimestamp:
          type: number
        blockType:
          type: string
        txCount:
          type: number
        transactions:
          type: array
          items:
            type: string
        blockSizeBytes:
          type: number
        l1ValidatorsAccruedFees:
          type: number
        activeL1Validators:
          type: number
        currentSupply:
          type: string
        proposerDetails:
          $ref: '#/components/schemas/ProposerDetails'
      required:
      - blockNumber
      - blockHash
      - parentHash
      - blockTimestamp
      - blockType
      - txCount
      - transactions
      - blockSizeBytes
    Network:
      type: string
      enum:
      - mainnet
      - fuji
      - testnet
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-glacier-api-key
      description: Api keys provide higher access to rate limits. To obtain an api key, sign up for an account at https://avacloud.io/.
x-speakeasy-retries:
  strategy: backoff
  backoff:
    initialInterval: 500
    maxInterval: 60000
    maxElapsedTime: 120000
    exponent: 1.5
  statusCodes:
  - 5XX
  retryConnectionErrors: true
x-speakeasy-globals:
  parameters:
  - $ref: '#/components/parameters/GlobalParamChainId'
  - $ref: '#/components/parameters/GlobalParamNetwork'
x-execution-weight-values:
  free: 1
  large: 50
  medium: 20
  none: 0
  small: 10
  xl: 100
  xxl: 200
x-rpc-method-execution-weights:
  eth_accounts: free
  eth_blockNumber: small
  eth_call: small
  eth_coinbase: small
  eth_chainId: free
  eth_gasPrice: small
  eth_getBalance: small
  eth_getBlockByHash: small
  eth_getBlockByNumber: small
  eth_getBlockTransactionCountByNumber: medium
  eth_getCode: medium
  eth_getLogs: xxl
  eth_getStorageAt: medium
  eth_getTransactionByBlockNumberAndIndex: medium
  eth_getTransactionByHash: small
  eth_getTransactionCount: small
  eth_getTransactionReceipt: small
  eth_signTransaction: medium
  eth_sendTransaction: medium
  eth_sign: medium
  eth_sendRawTransaction: small
  eth_syncing: free
  net_listening: free
  net_peerCount: medium
  net_version: free
  web3_clientVersion: small
  web3_sha3: small
  eth_newPendingTransactionFilter: medium
  eth_maxPriorityFeePerGas: small
  eth_baseFee: small
  rpc_modules: free
  eth_getChainConfig: small
  eth_feeConfig: small
  eth_getActivePrecompilesAt: small
x-speakeasy-webhooks:
  security:
    type: signature
    headerName: x-signature
    signatureTextEncoding: base64
    algorithm: hmac-sha256