Blockchain Coverage

Project and protocol coverage is available at each chain’s respective NFT trades page.

EVM ChainsNon-EVM Chains
apechain ↗
arbitrum
b3 ↗
base
berachain ↗
ethereum
polygon
zora
solana
bitcoin

Sample Query

NFT Volume Across Blockchains.

select

    date(block_timestamp) as date,

    chain,

    sum(usd_amount) as usd_volume

from crosschain.nfts.trades

where block_timestamp >= current_timestamp - interval '90 days'

group by all

https://app.allium.so/s/RcBZ6MVm

Table Columns

Column NameDescription
chainThe blockchain where the NFT trade was executed
marketplaceMarketplace of the nft trade, e.g. opensea
protocolThe protocol of the marketplace determined by the smart contract used, e.g. wyvern or seaport
order_match_typeType of sales. Registered as BUY for direct purchase and ACCEPT_BID for bids accepted.
trade_typeType of trade. SINGLE_TRADE for single token sales or BUNDLE_TRADE when more than 1 token is sold in a transaction.
buyer_addressAddress of the buyer.
seller_addressAddress of the seller.
token_standardType of token traded in the transaction. null for BTC.
token_addressToken contract of the NFT in the trade. null for BTC, collection_mint for SOL
token_nameName of the token traded. collection_name for SOL & BTC
token_symbolSymbol of the token traded. collection_symbol for SOL, null for BTC
token_idToken ID of the NFT traded. token_mint for SOL, inscription_id for BTC
item_quantityQuantity of the item traded. For ERC721 tokens, the value is null. While for ERC1155 tokens, the value can be more than 1.
currency_addressToken address of the currency used for this trade. currency_mint for SOL
currency_symbolToken symbol of the currency used for the trade.
raw_priceRaw price of the NFT trade (unnormalised)
pricePrice of the NFT (normalised)
usd_priceUSD value of the trade. The USD value of the trade is calculated by multiplying the hourly exchange rate of the currency (e.g. ETH) with the price oracle data source from exchanges
agg_feesSum of the fees paid by the NFT buyer and the seller.
buyer_feesFees paid by the NFT buyer. It might be “unimplemented” if we haven’t parse the fees for that protocol yet. Otherwise, it will be a json with 9 columns. “creator” fees are the ones paid to the nft creator (royalties); “platform” fees are paid to the marketplace; “total” fees are the sum of both fees Use this syntax to access a specific fee:buyer_fees[‘usd_total’]::double. And don’t worry about the unimplemented ones, they will become null
seller_feesFees paid by the NFT seller
aggregator_nameName of the aggregator use for the trade. Will be empty is the trade did not involve the use of aggregators.
aggregator_addressContract address of the aggregator used for the trade.
extra_fieldsExtra fields such as fee details
transaction_hashTransaction hash for this trade. txn_id for SOL
block_timestampThe timestamp of the block that the corresponding transaction of this trade.
block_numberThe block number that the corresponding transaction of this trade belongs to. block_slot for SOL
block_hashThe block hash that the corresponding transaction of this trade belongs to.
unique_idUnique id generated for this trade.