with nfts as (
select
address,
address_name
from polygon.core.dim_labels
where label_type = 'nft'
),
sales as (
select
logs.event_inputs:from as trader,
sum(event_inputs:value)/pow(10, 18) as matic
from polygon.core.fact_event_logs as logs
inner join nfts on logs.contract_address = nfts.address
where logs.event_name = 'Transfer'
and logs.event_inputs:value is not null
group by event_inputs:from
),
buys as (
select
logs.event_inputs:to as trader,
sum(event_inputs:value)/pow(10, 18) as matic
from polygon.core.fact_event_logs as logs
inner join nfts on logs.contract_address = nfts.address
where logs.event_name = 'Transfer'
and logs.event_inputs:value is not null
group by event_inputs:to
),
profit as (
select
sales.trader as trader,
sales.matic - buys.matic as profit_matic
from sales
inner join buys on sales.trader = buys.trader