npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@zoralabs/zdk

v2.4.0

Published

ZDK: ZORA Developer Kit

Downloads

5,619

Readme

ZDK 2.0

If you're looking for 1.0 branch use v1-archive

Getting started

yarn add @zoralabs/zdk
import { ZDK, ZDKChain, ZDKNetwork } from '@zoralabs/zdk';

// assuming you set API_ENDPOINT to https://api.zora.co/graphql
const API_ENDPOINT = process.env.API_ENDPOINT;

const zdk = new ZDK({
  endpoint: API_ENDPOINT,
  networks: [
    {
      chain: ZDKChain.Mainnet,
      network: ZDKNetwork.Ethereum,
    },
  ],
  apiKey: API_KEY // optional!
);

ZDK

ZDK Main Interface class

Kind: global class

Examples Here

zdk.tokens(where, filter, pagination, networks, sort, includeFullDetails, includeSalesDetails) ⇒

Gets data on a group of tokens based on query parameters.

Returns: Promise of response from tokens of type TokensQuery

| Param | Description | | --- | --- | | where | Arguments to filter tokens by, required. | | where.collectionAddresses | List of collection addresses to filter by | | where.ownerAddresses | List of owner addresses to filter by | | where.tokens: | Tuple of token and id to filter by an exact match as a list | | filter | Filter query parameters after the where query | | pagination | Settings for pagination | | networks | Networks to query on | | sort | Sorting information for tokens | | includeFullDetails | include entire token details (full uris, history etc.) | | includeSalesDetails | include full token sale details for the last 10 sales |

zdk.token(args) ⇒ Promise.<TokenQuery>

Gets data on a single NFT give a contract address and tokenId.

Returns: Promise.<TokenQuery> - Token graphql response

| Param | Type | Description | | --- | --- | --- | | args | | arguemnts for query object | | args.token | | Token parameters | | args.token.address | string | address of the token (req'd) | | args.token.tokenId | string | string ID of the token (req'd) | | args.network | | the network to use to retrieve the token | | args.network.chain | Chain | Chain to use (default ETHEREUM) | | args.network.network | Network | Network on the given chain to use (default MAINNET) | | args.includeFullDetails | bool | should full details be added to the response |

zdk.events(where, filter, pagination, networks, sort) ⇒

Gets all the events associated with a collection, token, or owner address e.g. Transfers, Mints, Sales, Approvals

Returns: Promise.<EventsQuery> - Events graphql response

| Param | Description | Type | | --- | --- | --- | | where | Arguments to filter tokens by, required. | | where.collectionAddresses | List of collection addresses to filter by | | where.tokens: | Tuple of token and id to filter by an exact match as a list | | filter | Filter query parameters after the where query | | filter.bidderAddresses | A string array of addresses that have bid on this NFT | | filter.eventTypes | An array of EventTypes | | filter.recipientAddresses | A string array of addresses that have received this NFT | | filter.sellerAddresses | A string array of addresses that have sold this NFT | | filter.senderAddresses | A string array of addresses that have sent this NFT | | filter.timeFilter | An input of type TimeFilter for time partitioned event responses. | | pagination | Settings for pagination | | pagination.after | A string specifying which record to begin pagination | | pagination.limit | An int setting the number of event records per page | | networks | Network info to query on as an array of enums | | networks.chain | Chain to query on (currently only MAINNET) | | networks.network | Network to query on (currently only ETHEREUM) | | sort | Sorting information for tokens | | sort.direction | An enum value specifying the direction of results | ASC, DESC | sort.sortKey | An enum value specifying the value to sort results by | ChainTokenPrice, Created, NativePrice, None, TimeSaleEnding

zdk.markets(where, filter, pagination, networks, sort, includeFullDetails) ⇒

Gets NFTs that are active on the Zora markets e.g. Buy Now, Offers, Auctions

Returns: Promise.<MarketsQuery> - Markets graphql response

| Param | Description | Type | | --- | --- | --- | | where | Arguments to filter tokens by, required. | | where.collectionAddresses | List of collection addresses to filter by | | where.tokens: | Tuple of token and id to filter by an exact match as a list | | filter | Filter query parameters after the where query | | filter.marketQueryFilter | Arguments for filtering market info expectations | | marketQueryFilter.bidderAddresses | A string array of addresses that have bid for this NFT | | marketQueryFilter.marketType | An enum specifying the version of Zora the order is made on | V1Ask, V1BidShare, V1Offer, V2Auction, V3Ask | marketQueryFilter.statuses | An enum specifying status of orders being returned | Active, Canceled, Completed | filter.priceFilter | Arguments for filtering price ranges | | priceFilter.currencyAddress | A string specifying the currency being used for the market transaction to be returned | | priceFilter.maximumChainTokenPrice | A string specifying the maximum price of the native chain token (ETH, MATIC, etc) to return | | priceFilter.maximumNativePrice | A string specifying the minimum price of the native chain token (ETH in our case) to return | | priceFilter.minimumChainTokenPrice | A string specifying the minimum price of the native chain token (ETH, MATIC, etc) to return | | priceFilter.minimumNativePrice | A string specifying the minimum price of the native chain token (ETH in our case) to return | | sort | Sorting information for tokens | | sort.sortDirection | An enum value specifying the direction of results | ASC, DESC | sort.sortKey | An enum value specifying the value to sort results by | ChainTokenPrice, Created, NativePrice, None, TimeSaleEnding | networks | Argument for chain to query as an array of enums | | networks.chain | Chain to query on (currently only MAINNET) | | networks.network | Network to query on (currently only ETHEREUM) | | includeFullDetails | include entire token details (full uris, history etc.) |

zdk.mints(where, filter, pagination, networks, sort, includeFullDetails, includeMarkets) ⇒

Gets historic minting data for any NFT or any group of NFTs.

Returns: Promise.<MintsQuery> - Mints graphql response

| Param | Description | Type | | --- | --- | --- | | where | Arguments to filter tokens by, required. | | where.collectionAddresses | List of collection addresses to filter by | | where.minterAddresses: | List of minter addresses to filter by | | where.recipientAddresses | List of receiver addresses to filter by | | where.tokens: | Tuple of token and id to filter by an exact match as a list | | filter | Filter query parameters after the where query | | filter.timeFilter | An input of type TimeFilter for time partitioned event responses. | | timeFilter.endDate | A date string specifying when to stop collecting mint data| | timeFilter.lookbackHours | A string specifying how many hours to look back from an end date | | timeFilter.startDate | A date string specifying when to start collecting mint data | | filter.priceFilter | Arguments for filtering price ranges | | priceFilter.currencyAddress | A string specifying the currency being used for the market transaction to be returned | | priceFilter.maximumChainTokenPrice | A string specifying the maximum price of the native chain token (ETH, MATIC, etc) to return | | priceFilter.maximumNativePrice | A string specifying the minimum price of the native chain token (ETH in our case) to return | | priceFilter.minimumChainTokenPrice | A string specifying the minimum price of the native chain token (ETH, MATIC, etc) to return | | priceFilter.minimumNativePrice | A string specifying the minimum price of the native chain token (ETH in our case) to return | | pagination | Settings for pagination | | pagination.after | A string specifying which record to begin pagination | | pagination.limit | An int setting the number of event records per page | | sort | Sorting information for tokens | | sort.sortDirection | An enum value specifying the direction of results | ASC, DESC | sort.sortKey | An enum value specifying the value to sort results by | ChainTokenPrice, Created, NativePrice, None, TimeSaleEnding | networks | Argument for chain to query as an array of enums | | networks.chain | Chain to query on (currently only MAINNET) | | networks.network | Network to query on (currently only ETHEREUM) | | includeFullDetails | include entire token details (full uris, history etc.) | | includeMarkets | include entire market details for these contracts |

zdk.sales(where, filter, pagination, networks, sort, includeFullDetails) ⇒

Gets sales data for any NFT or collection across multiple marketplaces e.g. Zora, OpenSea, LooksRare, Foundation, etc.

Returns: Promise.<SalesQuery> - Sales graphql response

| Param | Description | Type | | --- | --- | --- | | where | Arguments to filter tokens by, required. | | where.buyerAddresses: | List of minter addresses to filter by | | where.collectionAddresses | List of collection addresses to filter by | | where.sellerAddresses | List of receiver addresses to filter by | | where.tokens: | Tuple of token and id to filter by an exact match as a list | | filter.timeFilter | An input of type TimeFilter for time partitioned event responses. | | timeFilter.endDate | A date string specifying when to stop collecting mint data| | timeFilter.lookbackHours | A string specifying how many hours to look back from an end date | | timeFilter.startDate | A date string specifying when to start collecting mint data | | filter.priceFilter | Arguments for filtering price ranges | | priceFilter.currencyAddress | A string specifying the currency being used for the market transaction to be returned | | priceFilter.maximumChainTokenPrice | A string specifying the maximum price of the native chain token (ETH, MATIC, etc) to return | | priceFilter.maximumNativePrice | A string specifying the minimum price of the native chain token (ETH in our case) to return | | priceFilter.minimumChainTokenPrice | A string specifying the minimum price of the native chain token (ETH, MATIC, etc) to return | | priceFilter.minimumNativePrice | A string specifying the minimum price of the native chain token (ETH in our case) to return | | sort | Sorting information for tokens | | sort.sortDirection | An enum value specifying the direction of results | ASC, DESC | sort.sortKey | An enum value specifying the value to sort results by | ChainTokenPrice, Created, NativePrice, None, TimeSaleEnding | networks | Argument for chain to query as an array of enums | | networks.chain | Chain to query on (currently only MAINNET) | | networks.network | Network to query on (currently only ETHEREUM) | | includeFullDetails | include entire token details (full uris, history etc.) | | includeMarkets | include entire market details for these contracts |

zdk.collections(where, pagination, networks, sort, includeFullDetails) ⇒

Gets data for a group of NFT collections.

Returns: Promise.<CollectionsQuery> - Collections graphql response

| Param | Description | Type | | --- | --- | --- | | where | Arguments to filter tokens by, required. | | where.collectionAddresses | List of collection addresses to filter by | | pagination | Settings for pagination | | pagination.after | A string specifying which record to begin pagination | | pagination.limit | An int setting the number of event records per page | | networks | Argument for chain to query as an array of enums | | networks.chain | Chain to query on (currently only MAINNET) | | networks.network | Network to query on (currently only ETHEREUM) | | sort | Sorting information for tokens | | sort.sortDirection | An enum value specifying the direction of results | ASC, DESC | sort.sortKey | An enum value specifying the value to sort results by | ChainTokenPrice, Created, NativePrice, None, TimeSaleEnding | includeFullDetails | include entire token details (full uris, history etc.) |

zdk.collectionStatsAggregate(collectionAddress, network) ⇒

Gets statistics for a specific collection such as the total supply, number of owners and sales volume.

Returns: Promise.<CollectionStatsAggregateQuery> - Collection stats graphql response

| Param | Description | Type | | --- | --- | --- | | collectionAddresses | List of collection addresses to filter by | | network | Argument for chain to query as an array of enums | | network.chain | Chain to query on (currently only MAINNET) | | network.network | Network to query on (currently only ETHEREUM) |

zdk.collection(address, network) ⇒

Gets data for a specific NFT collection based on an address.

Returns: Promise.<CollectionQuery> - Collection graphql response

| Param | Description | Type | | --- | --- | --- | | address | String of collection address to filter by | | network | Argument for chain to query as an array of enums | | network.chain | Chain to query on (currently only MAINNET) | | network.network | Network to query on (currently only ETHEREUM) |

zdk.ownersByCount(where, pagination, networks) ⇒

Gets the number of NFTs held be certain owner addresses e.g. Top holders of a collection.

Returns: Promise.<OwnersByCountQuery> - Owners by count graphql response

| Param | Description | Type | | --- | --- | --- | | where | Arguments to filter tokens by, required. | | where.attributes | An array of the CollectionAttributes | | attributes.traitType | A string to set the trait type to return by | | attributes.value | A string of a trait's possible value(s) to return by | | where.collectionAddresses | List of collection addresses to filter by | | pagination | Settings for pagination | | pagination.after | A string specifying which record to begin pagination | | pagination.limit | An int setting the number of event records per page | | networks | Argument for chain to query as an array of enums | | network.chains | Chain to query on (currently only MAINNET) | | network.networks | Network to query on (currently only ETHEREUM) |

zdk.aggregateAttributes(where, networks) ⇒

Gets statistics on all the attributes for a collection.

Returns: Promise.<AggregateAttributesQuery> - Aggregate attributes graphql response

| Param | Description | Type | | --- | --- | --- | | where | Arguments to filter tokens by, required. | | where.collectionAddresses | List of collection addresses to filter by | | where.ownerAddresses | List of owner addresses to filter by | | where.tokens: | Tuple of token and id to filter by an exact match as a list | | tokens.address | A string for the contract address to return a token for | | tokens.tokenId | A string for the tokenId to return a token for | | networks | Argument for chain to query as an array of enums | | network.chain | Chain to query on (currently only MAINNET) | | network.network | Network to query on (currently only ETHEREUM) |

zdk.salesVolume(where, networks, timeFilter) ⇒

Gets the total sales volume for a collection across all marketplaces.

Returns: Promise.<SalesVolumeQuery> - Sales volume graphql response

| Param | Description | Type | | --- | --- | --- | | where | Arguments to filter tokens by, required. | | where.attributes | An array of the CollectionAttributes | | attributes.traitType | A string to set the trait type to return by | | attributes.value | A string of a trait's possible value(s) to return by | | where.collectionAddresses | List of collection addresses to filter by | | networks | Argument for chain to query as an array of enums | | network.chains | Chain to query on (currently only MAINNET) | | network.networks | Network to query on (currently only ETHEREUM) | | timeFilter | Network to query on (currently only ETHEREUM) | | timeFilter.endDate | A string array of addresses that have bid for this NFT | | timeFilter.lookbackHours | An enum specifying the version of Zora the order is made on | V1Ask, V1BidShare, V1Offer, V2Auction, V3Ask | timeFilter.startDate | An enum specifying status of orders being returned | Active, Canceled, Completed

zdk.ownerCount(where, networks) ⇒

Gets the number of NFTs held be certain owner addresses e.g. Top holders of a collection.

Returns: Promise.<OwnerCountQuery> - Owner count graphql response

| Param | Description | Type | | --- | --- | --- | | where | Arguments to filter tokens by, required. | | where.attributes | An array of the CollectionAttributes | | attributes.traitType | A string to set the trait type to return by | | attributes.value | A string of a trait's possible value(s) to return by | | where.collectionAddresses | List of collection addresses to filter by | | networks | Argument for chain to query as an array of enums | | network.chains | Chain to query on (currently only MAINNET) | | network.networks | Network to query on (currently only ETHEREUM) |

zdk.floorPrice(where, networks) ⇒

Gets data on the cheapest available NFT across all Zora marketplaces.

Returns: Promise.<FloorPriceQuery> - Floor price graphql response

| Param | Description | Type | | --- | --- | --- | | where | Arguments to filter tokens by, required. | | where.attributes | An array of the CollectionAttributes | | attributes.traitType | A string to set the trait type to return by | | attributes.value | A string of a trait's possible value(s) to return by | | where.collectionAddresses | List of collection addresses to filter by | | networks | Argument for chain to query as an array of enums | | network.chains | Chain to query on (currently only MAINNET) | | network.networks | Network to query on (currently only ETHEREUM) |

zdk.nftCount(where, networks) ⇒

Gets data on the total supply of NFTs in a collection.

Returns: Promise.<NftCountQuery> - NFT count graphql response

| Param | Description | Type | | --- | --- | --- | | where | Arguments to filter tokens by, required. | | where.attributes | An array of the CollectionAttributes | | attributes.traitType | A string to set the trait type to return by | | attributes.value | A string of a trait's possible value(s) to return by | | where.collectionAddresses | List of collection addresses to filter by | | where.ownerAddresses | List of owner addresses to filter by | | networks | Argument for chain to query as an array of enums | | network.chains | Chain to query on (currently only MAINNET) | | network.networks | Network to query on (currently only ETHEREUM) |

zdk.search(pagination, query, filter) ⇒

Searchs for an NFT or collection based on a string input.

Returns: Promise.<SearchQuery> - Search query graphql response

| Param | Description | Type | | --- | --- | --- | | pagination | Settings for pagination | | pagination.after | A string specifying which record to begin pagination | | pagination.limit | An int setting the number of event records per page | | query | A text string to query with | | filter | Parameters for setting query filter | | filter.collectionAddresses | An array of string addresses to query with | | filter.entityType | An enum specifying the entity type being queried | COLLECTION, TOKEN