Diving in to Velodrome Pools

It was Velodrome, that became the talk in the defi space in the last week. Which is an AMM on Optimism, launched on 31st of May 2022. It was dapted from Solidly, an innovation on Fantom by the legendary Andre Cronje. However the version on Fantom wasn’t a success. Thus, the speculations on Velodrome to fail were high yet it has proven otherwise so far.

Being an AMM it provides exchanges between tokens for that it has to maintain liquidity in their pools. Now, people have tons of different tokens pairs that want to swap between and the combinations are huge, so, when someone swap their tokens on an AMM there’s a high chance that the swap involve multiple liquidity pools, for example if we have 3 tokens called A, B, and C and we have two pools with A / B and B / C then when we want to swap between A to C, the platform will first swap A to B on A / B then swap B to C on B / C. In this analysis we’re going to look at how these pools are connected together in swaps on Velodrome.

Note that We’ll be using data from FlipsideCrypto from 15th of June to 31st of July 2022.

Alright.. how are they connected?

First let’s understand the definitions, a node in this graph represented by a pool in Velodrome. An edge/connection is a swap that happened between these pools, the size of a node denotes the number of pools that it’s connected. The colour represents the eccentricity, in other words the the maximum distance of one node/pool to other.

Velodrome pools connections
Velodrome pools connections

It’s quite clear that vAMM WETH/USDC pool is so connected with other pools, that indicates many swaps has either started/ended in this pool or it has connected different pools to swap tokens between them as an intermediary. We can see that the light blue coloured nodes have a maximum of 3 hops to any pool in the while the orange ones are connected in 4 hops at most. While green ones are not connected to any other pools. So, the swaps on green pools were between that particular tokens only.

Let’s look at 20 most important pools

what are the most important pools
what are the most important pools

Well, in this case eigenvector centrality means who well they are connected and also how well these connected are connected. Betweenness indicates how much these pools acted as intermediary in connecting pools for swaps. Now we can see that WETH/USDC is the most influential pool in both eigenvector centrality and betweenness centrality, it has bridged (17% of the pools). but interestingly we can see that vAMM VELO/WETH pool and vAMM VELO/sUSD pool, even having a low influential connections, it had helped bridging many of those low influential pools together (8% of the total pools).

Which pools are more connected to the bridging pools

Bridge connectors
Bridge connectors

Now these shows how well the pools are connected to “bridging pools”. We saw that vAMM WETH/USDC was the bringing 17% of the pools however vAMM WBTC/USDC pool is the pool that connects to most of these bridges although it didn’t have a high betweenness centrality, in fact it wasn’t even in the top 20, which means WBTC/USDC pool was not a good intermediary but it has connected with most of the intermediaries for swapping.

Conclusion

The sudden spike in the popularity on Velodrome in recent week was due to various reasons. The positivity around Eth merge which pushes a positive sentiment on L2 projects which may have pushed users to consume more DeFi apps on L2. As an AMM the liquidity pools are pretty important for project like Velodrome. We saw that WETH/USDC pool was the most connected pool in swapping. Which may again suggests that people who come to Optimism with WETH from mainnet, use these pools to swap their tokens in to other tokens like OP, VELO etc. While the pools like VELO/WETH and VELO/sUSD seems to have their connections with pools with “low activity” or “unpopular” tokens.

Methodology

For this analysis I used ShroomDK from FlipsideCrypto as a tool to retrieve data. The results had 280K+ rows. I query for transactions on Velodrome router contract (0xa132dab612db5cb9fc9ac426a0cc215a3423f9c9) Then used Python for data processing and analysis.

with data_ as (select tx_hash, 
  ifnull(address_name, contract_address) as contract_address, 
  block_timestamp,
  origin_from_address,
  event_index,
  event_inputs:amount0In as amount0in,
  event_inputs:amount0Out as amount0out,
  event_inputs:amount1In as amount1in,
  event_inputs:amount1Out as amount1out,
  concat_ws('$', event_index, contract_address, amount0in, amount0out, amount1in, amount1out) as raw
  from optimism.core.fact_event_logs left join optimism.core.dim_labels on contract_address=address
  where origin_to_address='0xa132dab612db5cb9fc9ac426a0cc215a3423f9c9' 
  and event_name ='Swap' --and origin_function_signature='0xf41766d8'
)
select * from (
  SELECT DISTINCT tx_hash,
  min(block_timestamp) time,
  min(origin_from_address) from_address,
  ARRAYAGG(raw) fld
FROM data_
  group by tx_hash
Subscribe to joker
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.