with users_address as
(
select from_address as address, block_timestamp as date
from optimism.core.fact_transactions
where from_address != '0x0000000000000000000000000000000000000000'
union
select to_address as address, block_timestamp as date
from optimism.core.fact_transactions
where to_address != '0x0000000000000000000000000000000000000000'
)
select address as wallets, count(address) as no_of_txns
from users_address
where date between CURRENT_DATE - 30 and CURRENT_DATE
group by wallets
order by no_of_txns desc
limit 30