WITH first_interaction AS (
SELECT
from_address,
MIN(block_timestamp) AS first_interaction_date
FROM
optimism.core.fact_transactions
GROUP BY
from_address
)
SELECT
DATE_TRUNC('day', fi.first_interaction_date) AS date,
COUNT(DISTINCT fi.from_address) AS new_users
FROM
first_interaction fi
GROUP BY
1
ORDER BY
1 DESC;