Skip to content
Dune Analytics

@hagaetc / DEX Trading Volume

DEX Trading Volume

Loading
 

About queries and results

Dune Analytics lets you explore, create, and share Ethereum analytics. You can find an endless amount of great queries and dashboards on Dune.

We have decoded Ethereum smart contract data so you can do powerful analysis with simple SQL queries and visualise the query results into beautiful graphs.

Dune Analytics is free for everyone forever. If you want extra features like private queries, export your results and more check out our Pro plan.

SQL query

1WITH prices AS (                                                                                       
2    SELECT date_trunc('day', minute) as day,                                                         
3        contract_address,                                                                              
4        AVG(price) as price                                                                                
5    FROM prices.usd                                                                                    
6    WHERE minute >= date_trunc('month', now()) - interval '9 months'
7    GROUP BY 1, 2                                                                                      
8)                                                                                                      
9select                       
10    date_trunc('month', block_time),
11    SUM(
12        CASE WHEN token_a_address = a.contract_address THEN token_a_amount * a.price -- Use token A when there's USD price for it                    
13        ELSE token_b_amount * b.price -- Else use token b                             
14        END   
15        ) AS usd_volume                                                                                
16FROM dex.trades t                                                                             
17LEFT JOIN prices a ON date_trunc('day', block_time) = a.day AND token_a_address = a.contract_address 
18LEFT JOIN prices b ON date_trunc('day', block_time) = b.day AND token_b_address = b.contract_address 
19WHERE block_time  >= date_trunc('month', now()) - interval '9 months'
20--AND block_time < date_trunc('month', Now())
21GROUP BY 1
22; 

SQL query results

Loading