SELECT
DATE_TRUNC('week', block_timestamp) AS week,
platform_name,
COUNT(DISTINCT trader_address) AS unique_traders
FROM
(
SELECT
block_timestamp,
platform_name,
seller_address AS trader_address
FROM
optimism.nft.ez_nft_sales
UNION
SELECT
block_timestamp,
platform_name,
buyer_address AS trader_address
FROM
optimism.nft.ez_nft_sales
) AS unique_traders
GROUP BY
DATE_TRUNC('week', block_timestamp),
platform_name
ORDER BY
week,
platform_name;