Skip to main content

Base Zora API

Bitquery provides comprehensive Zora data through APIs, Streams and Data Dumps. This section provides you with a set of GraphQL APIs and streams that offer insights into the Zora protocol on Base blockchain.

The below GraphQL APIs and Streams are examples of data points you can get with Bitquery for Zora on Base. If you have any questions on other data points, reach out to support.

Need zero-latency Base data? Read about our Kafka Streams and Contact us for a Trial.

You may also be interested in:

note

To query or stream data via graphQL outside the Bitquery IDE, you need to generate an API access token.

Follow the steps here to create one: How to generate Bitquery API token ➤

Get Newly Created Zora Tokens​

Every Zora coin is created by the Zora factory, 0x777777751622c0d3258f214F9DF38E35BF45baF3, which emits CoinCreatedV4. The event carries the coin address, name, symbol and metadata uri, the caller, the payoutRecipient that earns creator rewards, the platformReferrer, the currency the coin is paired with, the Uniswap v4 PoolKey and the factory version. The factory created about 530 coins in the 24 hours to 2026-10-26. The query filters on the event's SignatureHash because a filter on the event name does not match every stored row.

Run it in the IDE ➤

query ZoraCoinsCreated {
EVM(network: base) {
Events(
limit: {count: 10}
orderBy: {descending: Block_Time}
where: {LogHeader: {Address: {is: "0x777777751622c0d3258f214F9DF38E35BF45baF3"}}, Log: {Signature: {SignatureHash: {is: "2de436107c2096e039c98bbcc3c5a2560583738ce15c234557eecb4d3221aa81"}}}}
) {
Block {
Time
}
Transaction {
From
Hash
}
Arguments {
Name
Value {
... on EVM_ABI_String_Value_Arg {
string
}
... on EVM_ABI_Address_Value_Arg {
address
}
... on EVM_ABI_BigInt_Value_Arg {
bigInteger
}
}
}
}
}
}

To stream new coins as they are created, change query to subscription and remove limit and orderBy.

Latest Trades on Zora​

This query fetches the latest DEX trades on the Zora protocol (zora_v4) on Base blockchain. Try out the API here in the Bitquery IDE.

{
EVM(dataset: realtime, network: base) {
DEXTrades(
limit: { count: 20 }
orderBy: { descending: Block_Time }
where: { Trade: { Dex: { ProtocolName: { is: "zora_v4" } } } }
) {
Block {
Time
Number
}
Fee {
Burnt
BurntInUSD
EffectiveGasPrice
EffectiveGasPriceInUSD
GasRefund
MinerReward
MinerRewardInUSD
PriorityFeePerGas
PriorityFeePerGasInUSD
Savings
SavingsInUSD
SenderFee
SenderFeeInUSD
}
Receipt {
ContractAddress
Status
}
TransactionStatus {
Success
}
Log {
Signature {
Name
}
SmartContract
}
Call {
From
InternalCalls
Signature {
Name
Signature
}
To
Value
}
Transaction {
Gas
Cost
CostInUSD
GasFeeCap
GasFeeCapInUSD
GasPrice
GasPriceInUSD
GasTipCap
GasTipCapInUSD
Index
Nonce
Protected
Time
Type
Value
ValueInUSD
Hash
From
To
}
Trade {
Buy {
Amount
AmountInUSD
Buyer
Seller
Currency {
Decimals
Name
Symbol
SmartContract
}
Price
PriceInUSD
}
Sell {
Amount
AmountInUSD
Buyer
Seller
Currency {
Name
Symbol
SmartContract
}
Price
PriceInUSD
}
Dex {
ProtocolName
SmartContract
OwnerAddress
}
}
}
}
}

All Zora trades for a wallet up to a block height​

Return zora_v4 trades on Base where the wallet is Buyer or Seller on the trade, with Block.Number ≤ your chosen ceiling. Uses dataset: combined for history plus limit: 1000 and orderBy: { ascending: Block_Time } for chronological pages. The any group also matches trades in transactions the wallet sent (Transaction.From), which catches swaps routed through a contract where the wallet is neither buyer nor seller.

Run in Bitquery IDE

query ($address: String) {
EVM(dataset: combined, network: base) {
DEXTrades(
limit: { count: 1000 }
orderBy: { ascending: Block_Time }
where: {
Block: { Number: { le: "36453721" } },
any: [
{ Trade: { Buy: { Buyer: { is: $address } } } },
{ Trade: { Buy: { Seller: { is: $address } } } },
{
Transaction: {
From: { is: $address }
}
}
],
Trade: { Dex: { ProtocolName: { is: "zora_v4" } } }
}
) {
Block {
Time
Number
}
Transaction {
Hash
From
To
}
Trade {
Buy {
Amount
AmountInUSD
Buyer
Seller
Currency {
Decimals
Name
Symbol
SmartContract
}
Price
PriceInUSD
}
Sell {
Amount
AmountInUSD
Buyer
Seller
Currency {
Name
Symbol
SmartContract
}
Price
PriceInUSD
}
Dex {
ProtocolName
SmartContract
OwnerAddress
}
}
}
}
}

Variables:

{
"address": "0xa9ce7310c6d68b0e08df6de6fc79fc572f882bb1"
}

Latest Trades of a Token on Zora​

Run Query

{
EVM(dataset: realtime, network: base) {
DEXTrades(
limit: {count: 20}
orderBy: {descending: Block_Time}
where: {Trade: {Dex: {ProtocolName: {is: "zora_v4"}}, Buy: {Currency: {SmartContract: {is: "0x1111111111166b7fe7bd91427724b487980afc69"}}}}}
) {
Block {
Time
Number
}
Fee {
Burnt
BurntInUSD
EffectiveGasPrice
EffectiveGasPriceInUSD
GasRefund
MinerReward
MinerRewardInUSD
PriorityFeePerGas
PriorityFeePerGasInUSD
Savings
SavingsInUSD
SenderFee
SenderFeeInUSD
}
Receipt {
ContractAddress
Status
}
TransactionStatus {
Success
}
Log {
Signature {
Name
}
SmartContract
}
Call {
From
InternalCalls
Signature {
Name
Signature
}
To
Value
}
Transaction {
Gas
Cost
CostInUSD
GasFeeCap
GasFeeCapInUSD
GasPrice
GasPriceInUSD
GasTipCap
GasTipCapInUSD
Index
Nonce
Protected
Time
Type
Value
ValueInUSD
Hash
From
To
}
Trade {
Buy {
Amount
AmountInUSD
Buyer
Seller
Currency {
Decimals
Name
Symbol
SmartContract
}
Price
PriceInUSD
}
Sell {
Amount
AmountInUSD
Buyer
Seller
Currency {
Name
Symbol
SmartContract
}
Price
PriceInUSD
}
Dex {
ProtocolName
SmartContract
OwnerAddress
}
}
}
}
}
Build with Bitquery

Ready to run this in production?

Get an API key and run these queries in minutes, or talk to us about plans and enterprise delivery.