• Stars
    star
    107
  • Rank 321,838 (Top 7 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created almost 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

More Repositories

1

v3

Solidity
370
star
2

zora-721-contracts

Zora drops contracts (powers create.zora.co)
Solidity
189
star
3

nft-editions

Contracts to lazy-mint editioned ERC721s
Solidity
164
star
4

core

A protocol to create, share and exchange universally accessible and valuable media on the internet.
TypeScript
161
star
5

auction-house

TypeScript
154
star
6

nft-hooks

NFT Data Fetching Hooks with Zora contract data
TypeScript
135
star
7

create-auction-house

Starter repo for creating your own auction house with Zora's protocol
TypeScript
121
star
8

nouns-protocol

Solidity
108
star
9

zora-docs

JavaScript
107
star
10

offchain

NFT Metadata made easy
Python
107
star
11

zorb

Zorb zelated zings
TypeScript
107
star
12

nft-components

NFT Rendering Components
TypeScript
100
star
13

nouns-builder

Nouns Builder
TypeScript
89
star
14

lanyard

Decentralized allowlists for web3
TypeScript
78
star
15

zora-protocol

Monorepo for Zora Protocol (contracts & sdks)
Solidity
77
star
16

mint-page-template

TypeScript
71
star
17

nft-metadata

generic nft metadata parsers
TypeScript
65
star
18

faucets

TypeScript
57
star
19

nouns-marketplace

⌐◨-◨
TypeScript
49
star
20

foundry-script-examples

Solidity
44
star
21

doge-nft

DOGE NFT
SCSS
32
star
22

media-metadata-schemas

A repository of known JSON metadata schemas for the Zora media protocol.
TypeScript
29
star
23

themis

The legal terms of service for people's tokenized work
29
star
24

zora-v1-subgraph

TypeScript
27
star
25

mintpool

A mempool of things you can bring onchain
Rust
21
star
26

zora-token-factory-deprecated-

A token factory that enables any person or community to tokenize any good or endeavour.
JavaScript
21
star
27

nft-cli

NFT CLI library
TypeScript
17
star
28

protocol-rewards

Solidity
16
star
29

nouns-builder-bot

TypeScript
15
star
30

recovery-protocol

Solidity
15
star
31

simple-wallet-provider

Simple Wallet Provider
TypeScript
15
star
32

smol-safe

smol safe ui
TypeScript
15
star
33

chains-cli

Cli for chain configuration
TypeScript
14
star
34

zora-drops-extensions

Extensions for ZORA Drops
Solidity
11
star
35

nouns-ar-glasses-ios

Nouns AR Glasses for iOS
Swift
11
star
36

nouns-connect

Connect your Nouns DAOs to DApps
TypeScript
10
star
37

thegrandexchange

welp here goes nothing
TypeScript
9
star
38

json-extension-registry

Store arbitrary JSON data associated with a contract
Solidity
8
star
39

zorb-zenerator

JavaScript
8
star
40

zora-drop-frontend

Frontend template iteration for drop site using Zora drops contract factory.
JavaScript
7
star
41

rent-a-vote

Solidity
7
star
42

zora-crypto-list

A list of resources to help get started in crypto.
6
star
43

rug-house

Rug Store Auction House!
TypeScript
6
star
44

cryptomedia

What is Cryptomedia?
HTML
6
star
45

cli

TypeScript
5
star
46

hollyplus-minting-contract

Simple royalty-enabled IPFS minting contract for holly plus
TypeScript
5
star
47

manage-auction-hooks

Hooks to manage auction state for auction houses, integrates with simple-wallet-hooks
TypeScript
4
star
48

first-lol

TypeScript
3
star
49

mad-realities-auction

TypeScript
3
star
50

matthew-ball-minting-contract

On-chain metadata with contentURI implementation for Matthew Ball's Metaverse Essays
HTML
2
star
51

zora-zine-reader

POC for zora zine reader
TypeScript
1
star
52

uniswap-v2-interface

TypeScript
1
star
53

zora-creator-subgraph

TypeScript
1
star
54

frontend-exercise-one

ZORA Frontend Exercise #1
TypeScript
1
star