Getting Started

Querying the Indexer

To query against the Indexer's GraphQL API simply make a POST request the indexer query url.

https://indexer-prod-mainnet.zora.co/v1/graphql

If you are making an unauthenticated request, make sure to include X-Hasura-Role: anonymous in the header of the request.

Fetching a Zora NFT

To fetch the rich information from Zora NFTs, use the Media table. The example query fetches the last 100 NFTs minted on the Zora Media contract.

Media(order_by: { tokenId: desc}, limit: 100){
tokenId
creator
creatorBidShare
owner
contentURI
metadataURI
contentHash
metadataHash
metadata {
json
}
}

Fetching any NFT

You can directly query for any NFT by querying the Token table. The example query fetches the first 100 tokenIds for the Blitmap collection. You can check to see which NFT contracts are supported by querying the TokenContract table.

Token(where: { address: { _eq: "0x8d04a8c79cEB0889Bdd12acdF3Fa9D207eD3Ff63"}}, order_by: { tokenId: asc} limit: 100){
tokenId
address
minter
owner
metadata {
json
}
}

Fetching a Zora Auction

You can query for a Zora Auction by using the Auction table. The example query fetches the auctions that have had their reserve price met, but have not been finalized (listed in order of auctionId).

Auction(where: { lastBidder: { _is_null: false}, _not: {endedEvent: {}} }, order_by: { auctionId: desc}, limit:10) {
tokenContract
tokenId
tokenOwner
auctionCurrency
reservePrice
curator
curatorFee
approved
expiresAt
winner
lastBidder
lastBidAmount
}