Replies: 0 comments 5 replies
-
As discussed on the phone last week, it is not possible to implement this feature without modifying V2 Core: https://github.com/sablier-labs/v2-core/issues/643 The only exception is the monthly-stream-creation automation via Gelato, but we have sufficient user validation that that approach is not worth pursuing:
|
Beta Was this translation helpful? Give feedback.
-
Some preliminary thoughts:
1. Chosen sources of yield that are going to be used will likely be Pareto-distributed, meaning the number of people who chose to use aUSDC or the DSR as the backend yield plugin are going to outnumber the ones who'd prefer to use some niche curve pool by a fair bit Maybe we could create a kind of intermediary product where when a user wants to access USDC yield on a stream, they can click a 'yield' slider and then choose from a handful of whitelisted sources (Aave, Maker, etc) and then all the function calls are handled on the backend so their USDC is deposited into the relevant contract and such. Furthermore, we could continue to use just USDC as the token that the user sees - reason being if you're getting paid in USDC its already enough of a hassle going from on chain USDC to money in a bank account without having to add another step (converting cUSDC/aUSDC back to USDC) to the mix as well. Please let me know if what i'm suggesting here is along the lines of what is likely to be feasible, I'll be the first to admit my ignorance on how stuff is progressing behind the scenes. |
Beta Was this translation helpful? Give feedback.
-
We've gotten a lot of feedback regarding streaming with yield-enhanced tokens aTokens from Aave, cTokens from Compound.
With normal, exchange-rate ERC20s (e.g. Yearn's system) this should be pretty straight forward. X goes in, X goes out - with the Xi tokens being more valuable than the Xo (they can be redeemed for more $).
With rebasing tokens this becomes an accounting problem - keeping track of balances. Unfortunately both Aave and Compound V3 use this system for their share tokens (e.g. aUSDC or cUSDCV3).
Topic 1 - Support this type of assets
While the v2-core itself will only support regular assets, wrapping these rebasing tokens in an ERC4626 vault and streaming the minted shares (ERC20 compliant, exchange-rate) will in theory add support for streaming e.g.
Wrapped aUSDC
.As per this 4626 Alliance page there already are a bunch of adapters written for popular tokens. If we can get some that are already audited, that's even better!
Topic 2 - Improving UX with wrap/unwrap
While 4626 solves the compatibility problem, there's still a UX problem at hand: the wrapping and unwrapping mechanisms. Normally, a sender would have to go to etherscan or a dedicated UI to wrap their
aUSDC
inaUSDC4626
, create a stream with the new asset, while the recipient would have to perform the inverse actions: withdraw and unwrap.For the sender, we could introduce a new method in the target contract which does the wrapping and stream creation, similar to how the protocol periphery already handles ETH to wETH. For the recipient though, the solution isn't this straightforward.
Topic 3 - Bonus: Creating special logic for yield/interest
Some users have been asking for a different yield split (e.g. instead of the recipient getting the yield, it would be the sender who gets it). With some custom logic and state management this could be achieved using a special kind of wrapping.
Initial thoughts on this:
Beta Was this translation helpful? Give feedback.
All reactions