ERC-4626: best performing stablecoin vaults
This is a research notebook for listing and analysing ERC-4626 vaults.
In this notebook, we examine different ERC-4626 vaults across different EVM blockchains
We analyse the vault performance by its share price, as reported by ERC-4626 smart contract interface.
We separate lending vaults (risk free) and volatile vaults (with drawdown)
We do last three months and historical all-time analyses
We look quantitative finance aspects of the vaults like returns, Sharpe and Sortino numbers
Notes and disclaimers
Because of how vault metrics, share price and such are collected and interpreted, the results in this notebook contain various inaccuracies.
In this notebook, we use terms Net Asset Value (NAV) and Total Value Locked (TVL) interchangeably.
Usage
First you need the data. See ERC-4626: scanning vault data tutorial to get the data locally.
Then just run this notebook in Visual Studio Code.
For any questions, follow and contact Trading Strategy community.
Vault notes
For the context of research, here are miscellaneous comments on the vaults in this notebook:
About gTRADE (formerly Gains Network): Market making vaults for gTRADE. Deposit DAI/USDC in exchange for gDAI, an ERC-20 representing your ownership in the vault. Stakers receive fees from each trade placed on the platform in exchange for serving as the counterparty to all trades. gDAI accumulates these fees in real-time.
About Ostium Vault (ostiumLP): Ostium is a real-world asset perp protocol. Earn fractional trading and liquidation fees with $OLP by providing liquidity with staked USDC. This pool acts as the ultimate backstop for trade settlement.
About 40acres: 40acres finance is NFT lending protocol (use NFTs as collateral). The vault named “Vault” on Base is by 40acres, they just forget the name their vault in idenfiable manner.
About Revert Lend: Revert Lend borrows to Uniswap v3 market makers. Earn a variable interest by lending USDC to AMM LPs. It allows users to collateralize their Uniswap v3 liquidity provider positions, in the form of the Uniswap NFTManager NFTs, and obtain loans in a protocol-determined ERC-20 token. The protocol is specifically designed to allow Liquidity Providers to maintain control over the capital in their positions while they are collateralized. This feature facilitates uninterrupted management and optimization of LP positions, catering to the dynamic needs of liquidity providers.
About Peapods: Peapods pioneered the concept of Volatility Farming; The ability to bring together two uncorrelated assets into an LP position to farm the volatility between the assets and tokenize it as yield. protocols, or earning fees from wrapping/unwrapping.
About D2.finance and HYPE++: D2 Finance is provides Tokenized DeFi Derivatives Strategies delivering superior risk-adjusted returns, with full on-chain transparency. HYPE++ vault is an Arbitrum vault that trades on Hyperliquid through briding. HYPE++ will take advantage of the current funding rate arbitrage to provide boosted risk-adjusted returns. The hedging mechanism using so called “Ghost VC tokens” provides a risk management layer. HYPE++ identifies and shorts tokens which are overvalued in the market creating an inverse position which can offset potential market downturns, effectively reducing strategy market beta risk.
About dgnHYPE: A proprietary trading strategy “DSquared Investment Vault V0” by D Squared Capital. DSQ is a global investment firm employing a differentiated investment strategy to some of the world’s most exciting companies. We act as a transformative capital source to businesses, providing founders and companies solutions that offer value creation across ever changing markets.
Setup
Set up notebook rendering output mode
Use static image charts so this notebook is readeable on Github / ReadTheDocs
[1]:
import pandas as pd
from plotly.offline import init_notebook_mode
import plotly.io as pio
from eth_defi.research.notebook import set_large_plotly_chart_font
pd.options.display.float_format = "{:,.2f}".format
pd.options.display.max_columns = None
pd.options.display.max_rows = None
# Set up Plotly chart output as SVG
image_format = "png"
width = 1400
height = 800
# https://stackoverflow.com/a/52956402/315168
init_notebook_mode()
# https://stackoverflow.com/a/74609837/315168
assert hasattr(pio, "kaleido"), "Kaleido rendering backend missing. Run 'pip install kaleido' needed for this notebook"
pio.kaleido.scope.default_format = image_format
# https://plotly.com/python/renderers/#overriding-the-default-renderer
pio.renderers.default = image_format
current_renderer = pio.renderers[image_format]
current_renderer.width = width
current_renderer.height = height
# Set all Plotly charts to use large font sizes for better readability,
# for sharing on mobile
set_large_plotly_chart_font(line_width=5, legend_font_size=16)
pio.templates.default = "custom"