Sushi Pairs on Avalanche and BSC

    Loading...
    db_img
    db_img
    db_img

    The expected final result of this SushiSwap bounty is to Create a document that includes all addresses for all Swap pairs and Kashi pairs on BSC and Avalanche for sushi, plus the addresses of the two tokens belonging to each pair.

    This paper aims to illustrate methods and workarounds used to reach that goal, and also, we will have some analysis on pools.

    Method:

    Due to the fact that the databases of BSC and Avalanche is not complete on velocity, the On-Chain approach would not work.

    To acquire SushiSwap pools specifications, Sushi Analytics API was used.

    BSC API:

    AVALANCHE API:

    These APIs generate Pools specifications in JSON format. These JSON outputs were then extracted and structured to the desired state with Power Query in Microsoft Excel.  

    To acquire SushiSwap Kashi Pairs, the HTML sources of Kashi Markets of BSC and Avalanche were used. The Kashi addresses, Assets, and collaterals were extracted from the page's HTML source. Other required information was acquired by combining extracted pools data and cross-checking addresses on each blockchain explorer.

    BSC Kashi Markets page:

    Avalanche Kashi Markets page:

    The Final Result can be accessed from this link:

    BSC/Avalanche – Pools/Kashis

    Pool Analysis:

    With the API that Sushi is provided, I saw an opportunity to have a dashboard of Sushi pools analysis. So, I created a dashboard using Microsoft Power BI.

    The dashboard can be accessed from this link:

    Sushi Pools Analysis with Power BI

    This dashboard has 3 pages: Pools specifications, Pools Liquidity Analysis, and pools transactions analysis

    db_img
    db_img
    db_img

    This is the first page of the dashboard:

    Introducing elements of the dashboard:

    Page1:

    1. Selecting the chain from available chains to see their Sushi pools.
    2. Showing selected Blockchain and number of available pools
    3. Selecting pools by searching pool name and choosing them
    4. This table shows pool name, pool address, T1 Symbol, T2 Symbol, liquidity and APY of all pools in the selected blockchain.
    5. This opens Menu to navigate through other pages
    6. Shows last refresh time in UTC.
    7. When any of pools are selected in 4th element, these two buttons become active and contain a link to show pool specifications on the blockchain explorer and Sushi Analytics.
    8. More details about the pool
    9. View Tokens of the selected pool on the blockchain explorer.
    db_img

    In page two, we have Pools liquidity Analysis:

    We can see that BSC with the liquidity of about $1.37M has 0.19% of liquidity among available chains in the dashboard. Avalanche with total liquidity of $10.8M has 1.52% of all liquidities.

    db_img
    db_img
    db_img
    db_img
    db_img
    db_img
    db_img
    db_img
    db_img
    db_img

    Top 3 charts in this page of dashboard have Drill down Feature. By clicking on the specified icon and then each chain, we can see that parameter for every single pool in that chain

    By hovering over each bar, we can see additional info:

    For example, Liquidity of BSC decreased by $1,370 in the past 24 hours which means 0.91% of the liquidity decreased.

    So here, after click on drill down icon and then Avalanche chain and Scrolling down, We can see lowest liquidity changes.

    For example, this pool has $1,621 liquidity and in past 24 hours decreased $30 (1.86%)

    After click on drill down icon and then Avalanche chain, we can see liquidity change for each pool in avalanche in the past 24 hours.

    By Clicking on this Icon, we can go back to Chains.

    By clicking on this Icon all pools of all chains will show.

    • We see that the highest amount of liquidity change is in Arbitrum - WETH/USDC pool.

    Top 100 Pools chart shows top 100 sushiswap pools sorted by liquidity amount.

    This chart shows that about 95% of pools on BSC have liquidity amount of less than $1000. This percentage for Avalanche is 85.29%.

    The 3rd page of the dashboard is Transaction Analysis, The charts are like Liquidity amount and liquidity change charts of the previous page.

    db_img

    We can see that in the past 24 hours, WBNB/ICE pool has the highest transaction number increase in BSC chain. with 370 increase in transactions, it reaches to 384 transactions which means 2642% increase.

    db_img

    Data Insights from the dashboard (as of this writing) - Among Ethereum, Arbitrum, Gnosis, Avalanche, Moonriver, Celo, BSC, FUSE, and Moonbeam:

    • BSC has 1618 Pools and Avalanche has 306 pools on Sushi.
    • Ethereum has the highest liquidity amount with about $595M (83.16% of Liquidities among reviewed chains)
    • In the past 24 hours, BSC was the only chain that had a decrease in its liquidity. that was mostly because WBNB/META pool that had lost about $38,000 (99.96%) of its liquidation.
    • In the past 24 hours, Avalanche and BSC transactions increased by 162% and 26.5%.
    • In the past 24 hours ,Avalanche and BSC transactions volume increased by $1,227,214(162%) and $212,000(48%).

    Conclusion

    • Despite that BSC has the 2nd highest number of pools, it has only 0.19% of liquidities of Sushi pools of reviewed chains.
    • We can conclude that Sushi is not a popular platform among swappers on BSC chain.
    • 3 chains with the most liquidities are: -Ethereum -Arbitrum -Gnosis
    Counts = "Chain: " & SELECTEDVALUE(Dim_Chains[chain]) & " - Total Sushiswap Pools: " & Count(Fact_Pools[apy])
    
    Pool Spec = IF(HASONEVALUE(Fact_Pools[Pool Name]),
    
    "Pool Specifications:"  & UNICHAR(10) &
    "Pool tokens: " & SELECTEDVALUE(Fact_Pools[Pool Name]) & UNICHAR(10) &
    "Token names: " & SELECTEDVALUE(Fact_Pools[T1 Name]) & " / " & SELECTEDVALUE(Fact_Pools[T2 Name]) & UNICHAR(10) &
    "Pool Address: " & SELECTEDVALUE(Fact_Pools[Pool Address]) & UNICHAR(10) &
    "Liquidity: " & Format(SELECTEDVALUE(Fact_Pools[liquidity]),"currency") & UNICHAR(10) &
    "Liquidity 24h change: " & FORMAT([LiquidityChangePercent],"percent") & UNICHAR(10) &
    "Volume 24h: " & Format(SELECTEDVALUE(Fact_Pools[volume1d]),"currency") & UNICHAR(10) &
    "Volume 24h change: " & Format([VolChange],"percent")  & UNICHAR(10) &
    "Transactions (24h): " & SELECTEDVALUE(Fact_Pools[tx1d])  & UNICHAR(10) &
    "Fees (24h): " & Format(SELECTEDVALUE(Fact_Pools[fees1d]),"Currency")  & UNICHAR(10) &
    "APY: " & Format(SELECTEDVALUE(Fact_Pools[apy]),"percent")
    ,"...")
    
    PoolScan = IF(HASONEVALUE(Fact_Pools[Pool Name]),
    SELECTEDVALUE(Dim_Chains[Scanurl]) & SELECTEDVALUE(Fact_Pools[Pool Address]),"")
    
    SushiAnalyticsButton = IF(HASONEVALUE(Fact_Pools[Pool Name]),
    "View On Sushi Analytics","...")
    
    SushiAnalyticsURL = "https://app.sushi.com/analytics/pools/" & SELECTEDVALUE(Fact_Pools[Pool Address]) & "?chainId=" & SELECTEDVALUE(Dim_Chains[chainid])
    
    Token1 = IF(HASONEVALUE(Fact_Pools[Pool Name]),
    "Token 1>>  Symbol: " & SELECTEDVALUE(Fact_Pools[T1 Symbol]) & " | Name: " & SELECTEDVALUE(Fact_Pools[T1 Name]) 
    & " | Address: " & SELECTEDVALUE(Fact_Pools[Token 1 Address])
    & " | Decimals: " & SELECTEDVALUE(Fact_Pools[T1 Decimals])
    ,"...")
    
    Token1Button = IF(HASONEVALUE(Fact_Pools[Pool Name]),
    "View On " & SELECTEDVALUE(Dim_Chains[Scanner]),"...")
    
    Token1Scan = IF(HASONEVALUE(Fact_Pools[Pool Name]),
    SELECTEDVALUE(Dim_Chains[Scanurl]) & SELECTEDVALUE(Fact_Pools[Token 1 Address]),"")
    
    Token2 = IF(HASONEVALUE(Fact_Pools[Pool Name]),
    "Token 2>>  Symbol: " & SELECTEDVALUE(Fact_Pools[T2 Symbol]) & " | Name: " & SELECTEDVALUE(Fact_Pools[T2 Name]) 
    & " | Address: " & SELECTEDVALUE(Fact_Pools[Token 2 Address])
    & " | Decimals: " & SELECTEDVALUE(Fact_Pools[T2 Decimals])
    ,"...")
    
    Token2Scan = IF(HASONEVALUE(Fact_Pools[Pool Name]),
    SELECTEDVALUE(Dim_Chains[Scanurl]) & SELECTEDVALUE(Fact_Pools[Token 2 Address]),"")
    
    Count_lowliquidity = Calculate(Count(Fact_Pools[Pool Name]),(Fact_Pools[liquidity] < 1000) )
    
    Liquidity Change percent in past 24 hours = SUM(Fact_Pools[liquidity1dChangePercent])/100
    
    LiquidityChangePercent = IF(
        (SUM(Fact_Pools[liquidity])-SUM(Fact_Pools[liquidity1dChange]))=0,1,
        (SUM(Fact_Pools[liquidity1dChange])/(SUM(Fact_Pools[liquidity])-SUM(Fact_Pools[liquidity1dChange]))))
    
    Low Liquidity pools = Calculate(Count(Fact_Pools[Pool Name]),(Fact_Pools[liquidity] < 100) ) / Count(Fact_Pools[Pool Name])
    
    txchange = SUM('Fact_Pools'[tx1d]) - SUM('Fact_Pools'[tx2dm])
    
    TXcountChange = IF(SUM(Fact_Pools[tx2dm])=0,0,
    (SUM('Fact_Pools'[tx1d]) - SUM(Fact_Pools[tx2dm])) / SUM(Fact_Pools[tx2dm])
    )
    
    VolChange = IF(
        OR(
            (SUM(Fact_Pools[volume1d])-SUM(Fact_Pools[volume1dChange]))=0,(SUM(Fact_Pools[volume1d])
    

    DAX codes:

    db_img
    db_img
    db_img
    db_img

    POWER BI codes used:

    Queries:

    Data Model:

    Measures:

    db_img
    db_img

    This Power BI dashboard can be updated on a minimum frequency of 6 hours. but auto-update is suspended for now until after the review.

    Contact Me:

    Twitter @MetaCrypto_Geek