Entities

One benefit of GraphQL is that it is self-documenting. The best way to view the current tables, field names and possible queries one could make is through a GraphQL client UI. We have a hosted Indexer GraphiQL Console. The tables and their fields are also documented below.

Ethereum Data

Indexer stores the raw data for Transactions and Event Logs that it finds "interesting", namely transactions that interact with the Zora Protocol, and transactions that result in a transfer of an NFT Contract it is indexing.

// Ethereum transaction data
Transaction {
  // Fields
  blockHash
  blockNumber
  blockTimestamp
  failureReason
  from
  gas
  gasPrice
  hash
  input
  network
  nonce
  status
  to
  transactionIndex
  value

  // Relationships
  eventLogs
  <event table name>Events // i.e. auctionApprovalUpdatedEvents)
  mediaMints // see MediaMint table for context
}

Aggregated Tables

Indexer keeps track of higher level, aggregated tables that represent that most up to date state of an object. At any block number, the aggregate view will mirror the view of the object on the blockchain. Token, Media, and Auction are the three aggregate tables. Read more about them below.

Token

Media

Auction

Event Tables

Protocol event tables are generally named by the format:

<contract name><exact name for the event>Event.

Currently we watch Zora's AuctionHouse events, which have the prefix Auction; Zora Media and Market events, which have prefixes Media and Market; and generic 721 events which have the prefix Token. The field names should match the specific contract event field names (exception: a struct in an event will be flattened into all the struct field names), plus there are several other useful fields that all Event tables share.

Below 👇 is an example of one Event table.

Other Tables

TokenContract is how Indexer keeps track of the contracts it wants to monitor.

TokenMetadata stores a metadata json blob and info associating it with a specific token. There may be many TokenMetadata entries with the same URI and thus same metadata.

Last updated

Was this helpful?