{
  "v": 1,
  "requestId": "8fa35aa8-2241-4816-b0f9-af7a40e2f008",
  "chainId": 1,
  "window": {
    "toBlock": 26026606,
    "fromBlock": 26019450,
    "toBlockHash": "0x0f84a14c7c0235b5fd3df3fcd212ccd2543e9b97193c9def105a0d3ed83a5fb2"
  },
  "answerType": "uint256",
  "answer": "821473402172661870",
  "figure": "821473402172661870",
  "definitions": {
    "sale": "an OrderFulfilled event emitted by Seaport 1.5 (0x00000000000000adc04c56bf30ac9d3c0aaf14dc) or Seaport 1.6 (0x0000000000000068f116a894984e2db1123eb395) on Ethereum mainnet whose offer and consideration items together contain exactly one ERC-721 item (itemType 2) of the collection and no other NFT; bundles and ERC-1155 fills are excluded",
    "price": "for a listing fill (the single offer item is the NFT), the sum of every consideration amount paid in native ETH (itemType 0) or WETH 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 (itemType 1), fees included, and only if every consideration item is ETH or WETH; for a bid fill (the single offer item is ETH or WETH), the offer amount; fills paid in any other token are excluded",
    "source": "the chain itself: eth_getLogs for the OrderFulfilled topic on both Seaport contracts over exactly the pinned blocks, decoded with the Seaport ABI",
    "average": "the arithmetic mean, rounded down to an integer number of wei, of the price of every qualifying sale in the pinned block window; 0 only if there was no qualifying sale",
    "denomination": "Wei. Native ETH and WETH amounts are combined at 1:1; no fiat conversion.",
    "window": "Both endpoint blocks are included. Use canonical, non-removed logs; deduplicate by block number and log index.",
    "counting": "Each qualifying OrderFulfilled log counts once, even if a transaction contains multiple fills. Require one offer item and exactly one NFT item across both arrays, itemType 2, collection address as pinned, amount 1. No marketplace attribution beyond the two pinned Seaport emitters.",
    "bidPayments": "For bids, all consideration items other than the single collection ERC-721 must be native ETH or WETH; exclude other payment tokens. Use the gross offer amount without adding or subtracting consideration fees."
  },
  "recipe": {
    "kind": "panel",
    "source": "https://ethereum-rpc.publicnode.com"
  },
  "notes": "Computed from public Ethereum JSON-RPC, not an indexer. The brief pins evidence=panel and the catalogue therefore requires the panel recipe. The catalogue has no executable recipe for a filtered average of dynamic Seaport item arrays; the following complete reproduction procedure accompanies the required source recipe.\nConfirm eth_chainId=0x1 and eth_getBlockByNumber(0x18d226e,false).hash equals window.toBlockHash. Both also matched on https://rpc.flashbots.net/fast and https://rpc.mevblocker.io/fast. All log data came from https://ethereum-rpc.publicnode.com.\nFetch eth_getLogs over inclusive blocks 26019450..26026606, using address=[0x00000000000000adc04c56bf30ac9d3c0aaf14dc,0x0000000000000068f116a894984e2db1123eb395] and topics=[0x9d9af8e38d66c62e2c12f0225249fd9d721c54b83f48d9352c97c6cacdcb6f31]. This topic is keccak256 of OrderFulfilled(bytes32,address,address,address,(uint8,address,uint256,uint256)[],(uint8,address,uint256,uint256,address)[]). Use consecutive nonoverlapping ranges of 500 blocks (last range ends at the pinned closing block), halve on refusal, and split any response reaching the provider log cap. Discard removed logs and deduplicate by blockNumber:logIndex.\nABI: offerer and zone are indexed. Data head words 0..3 are orderHash, recipient, offer byte offset, consideration byte offset. At each offset the first word is array length; offer tuples have four words (itemType,token,identifier,amount), consideration tuples five (itemType,token,identifier,amount,recipient). Decode all uint256 amounts with arbitrary-precision integers. Addresses are the low 20 bytes of their words.\nLet O and C be those arrays, N all items in O+C with itemType>=2, and M(i) mean i.itemType==0 or (i.itemType==1 and i.token==0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2). Keep only len(O)==1, len(N)==1, N[0].itemType==2, N[0].token==0x387c41b0b2f1128de44db1bcf8baad085f26392c, N[0].amount==1. If O[0] is that NFT and every C item satisfies M, price=sum(C.amount). Otherwise, if M(O[0]) and each C item is that NFT or satisfies M, price=O[0].amount. Otherwise exclude. Add each retained price once; return floor(total/count), or 0 if count=0.\nRan the supplied scan.mjs logic in a scratch copy with only a raw-log cache added for local ABI decoding, using --chunk 500 --concurrency 3 and the exact source, address list, event signature, range and pin above. The complete scan returned 12241 logs in 15 chunks. Decoding yielded 139 sales (91 listings, 48 bids), total 114184802902000000000 wei. Integer division 114184802902000000000/139 gives 821473402172661870 wei. No external dependencies or scratch files are needed to reproduce the procedure."
}
