select
address_name as swap_from,
count(distinct a.tx_hash) as swap_count
from optimism.core.fact_event_logs a
inner join optimism.core.dim_labels b
on a.contract_address = b.address
where a.origin_to_address = lower('0xdef1abe32c034e558cdd535791643c58a13acc10') -- 0x Contract
and a.event_inputs:from = a.origin_from_address
and event_name = 'Transfer' -- 'Swap' results in 0 rows - every swap can be treated as a transfer too.
and tx_status = 'SUCCESS'
and block_timestamp::date >= CURRENT_DATE - 30
group by swap_from
order by swap_count DESC
limit 10