Title
YO Protocol integration
Author
Oscar, Head of Product at YO
@stechastic on Telegram
o@yolabs.xyz
Simple Summary
YO protocol is a multichain yield optimizer, allowing users to farm yield from the best DeFi protocols on any chain from one single vault. YO is the last vault you’ll ever need. Our flagship vaults: yoETH, yoUSD and yoBTC live on Base chain and anyone can mint to start earning yield from a basket of DeFi protocols in 3 chains or redeem to cash out.
Motivation
-
What unique value does your liquidity source bring?
yoVaults aren’t widely traded on DEXs, making large swaps difficult or impossible. By integrating YO protocol as a liquidity source, users with size will be able to enter/exit YO via CoW Swap without problems. -
How will it improve settlement quality?
yoVaults have thin liquidity onchain. Currently a swap of $20k results in a price impact of over 35%. Furthermore, each yoVault needs its own liquidity pool onchain so bootstrapping liquidity for 3 vaults takes considerable time. An integration with a solver that can mint/redeem instead of swapping will result in a significant improvement in UX for users who default to CoWswap for the best price execution. -
What trading pairs/assets are supported?
Three pairs on Base chain
- yoETH <> WETH
- yoUSD <> USDC
- yoBTC <> cbBTC
- Current trading volumes and liquidity depth
Across all three vaults, roughhly $500k in daily volume. For swaps/mints into YO there is no cap on liquidity. For redemptions/swaps out, there is a max of 5% of the vault TVL for the redemption to be atomic.
Technical Specification
Price Discovery
-
How can solvers obtain price information?
Solvers can call our custom onchain oracle contracts or call theconvertToAssets()
function from each of the vault contracts (same response either way). -
API endpoints or on-chain methods
- Custom oracle:
- function to query:
getRate()
- response is scaled to 18 decimals standardized
- oracle contracts:
- yoETH:
0xB0027C1C870573d5626Df1f049a12E39d3e613e9
- yoBTC:
0x47fc979C519fA6c07D4dB6ab7B7573e20d94C5F9
- yoUSD:
0x8Cb017261719799f8b5A3762Ebe2b0e214F9a735
- yoETH:
- function to query:
- Vault contracts
- function to query:
convertToAssets()
with a parameter of 1 share to convert, scaled to the number of decimals used by the vault token - vault contracts:
- yoETH:
0x3A43AEC53490CB9Fa922847385D82fe25d0E9De7
(18 decimals) - yoBTC:
0xbCbc8cb4D1e8ED048a6276a5E94A3e952660BcbC
(8 decimals) - yoUSD:
0x0000000f2eB9f69274678c76222B35eEc7588a65
(6 decimals)
- yoETH:
- function to query:
- Response formats and data structures
- Custom oracle:
- response is
uint256
- response is
- Vault contracts
- response is
uint256
- response is
- Rate limits and performance characteristics
None, data can be queried onchain directly
Settlement Interface
-
Smart contract addresses
- yoETH:
0x3A43AEC53490CB9Fa922847385D82fe25d0E9De7
(18 decimals) - yoBTC:
0xbCbc8cb4D1e8ED048a6276a5E94A3e952660BcbC
(8 decimals) - yoUSD:
0x0000000f2eB9f69274678c76222B35eEc7588a65
(6 decimals)
- yoETH:
-
Function signatures
Same signature for all three vault contracts:deposit (0x6e553f65)
requestRedeem (0x7d41c86e)
-
Parameter specifications
- deposit:
- assets (uint256)
- receiver (address)
- requestRedeem
- shares (uint256)
- receiver (address)
- owner (address)
- deposit:
-
Gas cost estimates
- deposit: 120,000 gas units
- requestRedeem: 120,000 gas units
-
Example transactions (on Base)
- deposit: 0x99bcc95a2cd61da3695c2d8177c37acc434dc8a8105b27ee17f26b7e815da59f
- requestRedeem: 0xe151feb1c79837e79cbde89503b16d128df7f252b4980e7674073745d52feb88
Integration Incentives
- Are you offering integration grants? Not at the moment
Additional Information
-
Security audits
Three audits by Hunter Security, Offbeat Security and Spearbit. Available here Security Audits | YO Protocol Documentation -
Known limitations
Redemptions beyond the available liquidity in the vault are subject to a 24 hr SLA. When simulating the transaction, the eventrequestRedeem()
includes a boolean flag to indicate if the redemption is instant or not
Contact Information
-
Development team contacts
k@yolabs.xyz, o@yolabs.xyz -
Technical support channels
Via email or the author’s telegram -
Response time expectations
Mid-july if possible