the fact that Flex markets can get to 100% utilization has some pretty interesting implications for looping
take yvUSD. assume
- yvUSD yield = 5%
- lenders want 4%
- borrower loops 10x
Flex (100% util)
lenders earn 4% <--> borrowers pay 4%
borrower earns 14%
TradDeFi (80% util)
lenders earn 4% <--> borrowers pay 5%
borrower earns 5%
same loop but almost 3x yield
beyond being more profitable, Flex enables looping strategies that aren’t viable in TradDeFi
so, asset issuers with yield-bearing collateral, we’re actively reaching out, but pls don’t wait! reach out and we’ll help you launch a market
Flex brings the best of all worlds
no rate spikes for borrowers; they choose their own rate
higher yield for lenders; markets can reach 100% utilization
lenders stay fully liquid; not dependent on idle liquidity
safer operations; markets are immutable and isolated
first market is yvUSD/USDC. ~5.5% APR on yvUSD, loopers make honest work, lenders earn above market rate
early days
@_alfred_butler and myself started working on a collection of defi skills for agents
Alfred already used it to buy himself an ENS name and to swap ETH to USDC using @EnsoBuild and deposit the USDC into @yearnfi
an army of ai agents is coming to defi
incredible times ahead!
@flexmeow early supporters 🫶
the proposed token allocation is below - please take a look and confirm it matches expectations!
equally weighted groups:
1. unaudited MVP users
2. unaudited beta users
3. SQUID voters
4. early contributors
to those who stood early: you’re the kind that matters. may you choose to stand again!
script + JSON results in the first reply
one thing that may prove unexpectedly useful in @flexmeow is that markets can reach 100% utilization
traditional lending markets target ~80%, so:
- borrowers pay ~5%
- lenders earn ~4%
in Flex:
- borrowers pay 4%
- lenders earn 4%
is that ~25% more capital efficiency?
deployed the https://t.co/9jMKZsKkun unaudited beta over the weekend
new features include:
- yvWETH-2/USDC market
- auctions explorer
- docs, risks, github & X links
audited beta next
aaand we have our first settlement!
taker bot is open sourced @ https://t.co/a5cbZBFoPJ
if you are a shekels getter you can fork that repo and start participating in flex and yearn auctions - lots of money at the table!
so, auction did end up expiring with no takes. i did do a tiny manual take (without finishing the tx in a USDC/ETH profit) and that was not enough to encourage MEV bots to join
so, building a @ApeFramework (silverback) taker bot it is!
shout out to claude for the dutch ui
Flex for Dummies
--
Flex as a tutoring hall
imagine a big tutoring hall with many independent tutors
it’s a special hall where the student decides how much he wants to pay!
if a student comes in and there’s a free tutor, the lesson starts immediately
if a student comes in and there are no free tutors, he can take the tutor of the student that is paying the least, as long as he’s willing to pay more than him (even mid lesson!)
and if one of the tutors wants to leave (also even mid lesson), he can just pack up and leave
--
now in nerd-speak
Flex as a lending market
imagine a lending market with many independent lenders
it’s a special market where the borrower decides how much interest he’s willing to pay!
if a borrower comes in and there’s idle liquidity, the loan is issued immediately
if a borrower comes in and there's no idle liquidity, he can take liquidity from the borrower paying the lowest interest, as long as he’s willing to pay more (even while that loan is active!)
and if one of the lenders wants to exit (also while loans are active), he can just withdraw his liquidity
* utilized liquidity is freed by redeeming (i.e., selling) the borrower's collateral
--
why this works
capital always flows to where it is most valued
borrowers get to choose their own fixed interest rate. those who want stability pay for it, those who dont accept higher interruption risk
lenders get to earn higher returns while always keeping their capital liquid and never have to choose between yield and liquidity
usually i refrain from using analogies bc i feel they may make understanding harder vs explaining the most basic truths
talking to non-nerds though i tried using the following analogy to explain how borrowers interact with @flexmeow --
think of borrowers as people sitting in a waiting room, a new borrower comes in the room but there are no sits left -- he can just take the sit of the person that pays the least, as long as he's paying more than him
fuzzing is all the talk since the yETH hack (at least in my mind) - @claudeai just wrote the perfect foundry fuzz test for me and uncovered an edge case an entire massive test suite missed
the invariant is simple, `sum(trove debts) >= total_debt`, otherwise `total_debt` can go negative if all troves repay making it impossible to close the last trove
screenshot of the fuzz test attached and link to the test in the first comment, for your convenience
tell claude to fuzz yo code!
gm. “going full dutch 2” stream summery:
in order to support tokens with different decimals we used the magical 10^36 oracle trick. we can now spin up markets with any borrow token (e.g. crvUSD/USDC) and any collateral token (e.g. wstETH/WBTC) with ease
we also updated the auction contract to the latest version which adds a toggle to allow only governance kicks, meaning our dutch_desk contract can be sure that if an auction is active it was he who kicked it
on thursday’s stream we’ll try to work out a ui helper contract to make Claude’s life easier on the ui and finalize market parameters before sunsetting the unaudited mvp and transitioning to the unaudited beta era
keep building freedom tech!
So @johnnyonline_ giving Dutch lessons now?
Perfect, I needed something new to flex.
Also btw, highly recommend hopping into @leviathan_news streams with Johnny.
For anyone not familiar, he’s literally live-coding a way to take out loans at a fixed rate you choose with @flexmeow.
There’s some wild stuff and real alpha happening there.
i realized it may be useful for me to regularly summarize what we were working on on the vibe building
@leviathan_news stream here on rocket man's app so, on going full dutch:
as you recall redemptions are an integral part of flex, when someone wants to use already-utilized liquidity they do so through redemptions, i.e. selling borrowers' collateral for borrow tokens
question is how do we facilitate this selling? so for the mvp we hardcoded the yieldbasis tbtc pool and tbtc --> crvusd swaps went atomically through it
but that's not scaleable to more tokens and will not always provide the best execution for users
another option was to use odos or whatever and have users (via ui) pass the swap path. but this adds complexity and code we can live without ... by going full dutch
study dutch auctions (https://t.co/Muf9cUwpW5), everytime there’s a redemption we kick an auction to sell the collateral tokens for borrow tokens
auction proceeds from redemptions are airdropped to the user (lender or borrower) and auction proceeds from liquidations are airdropped to the lenders vault (+ liquidation fee, increasing their apy)
for next stream the current plan is to keep working on that and hopefully finish it. i think that's the last feature we need to finish before passing the contracts for review. also btw at the end of that stream apparently my mic died so sorry about that
lmk if im delusional but i think https://t.co/9jMKZsKkun is one of the most interesting DeFi primitives we’ve gotten
borrowers choose their own interest rate, lenders can pull liquidity at any time
ofc would not be possible without the work of @LiquityProtocol and others