ankr · Arazzo Workflow

Ankr NFT Collection Audit

Version 1.0.0

Pull a collection's holders and then its transfer history.

1 workflow 1 source API 1 provider
View Spec View on GitHub ArazzoWorkflows

Provider

ankr

Workflows

nft-collection-audit
List an NFT contract's holders, then its transfer history.
Lists the current holders of an NFT contract and then retrieves the transfer history for the same contract over the supplied block window.
2 steps inputs: blockchain, contractAddress, fromBlock, pageSize, toBlock outputs: holders, transfers
1
getHolders
ankrGetNFTHolders
Retrieve the current holders of the NFT contract.
2
getTransfers
ankrGetNftTransfers
Retrieve the transfer history for the same NFT contract over the supplied block window.

Source API Descriptions

Arazzo Workflow Specification

ankr-nft-collection-audit-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Ankr NFT Collection Audit
  summary: Pull a collection's holders and then its transfer history.
  description: >-
    Audits an NFT contract by first listing the current holders with
    ankr_getNFTHolders, then pulling the contract's transfer history with
    ankr_getNftTransfers over a block window so a caller can correlate who holds
    the collection now with how it changed hands. Each step is written out inline
    as a JSON-RPC call so the flow can be read and executed without opening the
    underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: advancedApi
  url: ../openapi/ankr-advanced-api-openapi.yml
  type: openapi
workflows:
- workflowId: nft-collection-audit
  summary: List an NFT contract's holders, then its transfer history.
  description: >-
    Lists the current holders of an NFT contract and then retrieves the transfer
    history for the same contract over the supplied block window.
  inputs:
    type: object
    required:
    - blockchain
    - contractAddress
    properties:
      blockchain:
        type: string
        description: The chain the NFT contract lives on.
      contractAddress:
        type: string
        description: The NFT contract address to audit.
      fromBlock:
        type: integer
        description: First block of the transfer history window.
      toBlock:
        type: integer
        description: Last block of the transfer history window.
      pageSize:
        type: integer
        description: Maximum number of holders/transfers to return per page.
  steps:
  - stepId: getHolders
    description: >-
      Retrieve the current holders of the NFT contract.
    operationId: ankrGetNFTHolders
    requestBody:
      contentType: application/json
      payload:
        jsonrpc: "2.0"
        id: 1
        method: ankr_getNFTHolders
        params:
          blockchain: $inputs.blockchain
          contractAddress: $inputs.contractAddress
          pageSize: $inputs.pageSize
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      holders: $response.body#/result
  - stepId: getTransfers
    description: >-
      Retrieve the transfer history for the same NFT contract over the supplied
      block window.
    operationId: ankrGetNftTransfers
    requestBody:
      contentType: application/json
      payload:
        jsonrpc: "2.0"
        id: 1
        method: ankr_getNftTransfers
        params:
          blockchain: $inputs.blockchain
          contractAddress: $inputs.contractAddress
          fromBlock: $inputs.fromBlock
          toBlock: $inputs.toBlock
          pageSize: $inputs.pageSize
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      transfers: $response.body#/result
  outputs:
    holders: $steps.getHolders.outputs.holders
    transfers: $steps.getTransfers.outputs.transfers