DeFi on Stellar
Building DeFi(Decentralized Finance) protocols on Stellar recently became possible with the introduction of the Stellar Development Foundation’s TSS(Turing Signing Server) Protocol. We won’t delve too deeply into the TSS solution in this article. Suffice to say, it enables on-ledger Turing complete smart contracts by using Stellar’s multisig capability to allow an off-chain server network to build and sign Stellar transactions. Transactions are built and signed according to terms specified in uploaded smart contracts called txFunctions. This solution results in an incredibly flexible smart contract engine that can enable any number of applications.
Script3 (the team behind OptionBlox) is excited to announce that we’ve used the Turing Signing Server engine to build YieldBlox, a Stellar-based decentralized lending protocol. We believe this will provide significant value to the Stellar ecosystem and hope to launch an open-beta shortly after TSS launches on the main-net.
Why We’re Building YieldBlox
Accessible, Efficient Yield Generation
Lending is a clear use case for DeFi. The incumbent lending industry is filled with inefficiencies and intermediaries that hemorrhage the value generated by providing assets for lending. Banks generate 8–22% APR on loans, but the individuals providing this capital (customers with saving or checking accounts) receive under 1% APR on the capital they provide. Combining decentralized ledger technology with lending improves ecosystem efficiency by removing the need for lending intermediaries, allowing decentralized loan protocols to pay 100% of the yield generated from lending to the lenders. This efficiency increase explains the success of DeFi loan protocols on Ethereum. However, Ethereum-based protocols fail at being financially inclusive due to Ethereum’s massive network fees. It costs upwards of $70 to deposit assets in a lending protocol; such a massive fee prohibits much of the globe from participating in DeFi lending protocols. YieldBlox utilizes Stellar’s efficiency to provide a DeFi lending protocol that leverages the efficiency provided by decentralized ledger technology while remaining financially inclusive.
Stellar Network Liquidity
Stellar’s network has continually struggled with DEX and payment liquidity. The size of the market is dwarfed by Ethereum’s DEXs and Liquidity Pools. A large reason for this is inefficient capital utilization. There is no on-ledger way for users who are not currently using their capital to lend to other users. YieldBlox fills this gap by allowing users to lend to each other on-ledger. DEX traders and market makers can borrow additional capital from YieldBlox, increasing DEX liquidity.
Furthermore, YieldBlox increases payment liquidity by allowing anchors and other payment businesses to settle payments instantly without depending on immediate market liquidity. An anchor could use YieldBlox to borrow and immediately pay out a user’s requested payment while waiting for the user’s incoming payment to process. Once the user’s payment is received, the anchor can use it to repay their loan. YieldBlox thus enables instant payment settlement that is not dependent on large capital reserves or market liquidity. Overall, YieldBlox improves the Stellar network’s capital utilization, which is instrumental in improving both DEX and payment liquidity.
This section contains a brief overview of the YieldBlox protocol. For more detailed information please see our whitepaper.
Users lend with YieldBlox by depositing assets in the YieldBlox pool in exchange for pool tokens. The pool tokens represent the user’s percentage of ownership in the pool. So, if a user deposits 1/10th of the pool’s balance of an asset, they will receive 1/10th of all outstanding pool tokens for that asset. There is a unique pool token for each asset the pool supports. As users make interest fee payments to the YieldBlox pool, its balances increase, increasing the amount of assets allocated to each pool token. When a lender burns their pool tokens, they receive their initially deposited capital + a proportional amount of the interest fees collected by the pool.
Users borrow with YieldBlox by locking collateral in a claimable balance (claimable by the YieldBlox pool) in their account in exchange for a loan from the YieldBlox pool. The value of the collateral must be at least 110% of the value of the loan. Users can only use YieldBlox pool tokens as collateral, so if they provide normal assets, the protocol converts them into pool tokens before locking them in the claimable balance. Since borrowers use pool tokens as collateral, they generate interest with their collateral. Borrowers can borrow for as long as they wish. However, if the value of their loan plus accrued interest exceeds 95% of the value of their collateral value, the loan can be liquidated. Loans are liquidated using a liquidation txFunction which allows a liquidator to repay a delinquent loan in exchange for the borrower’s collateral. Thus, to avoid losing their collateral, the borrower needs to commit additional collateral over the lifecycle of their loan to ensure it does not become delinquent. Borrowers repay loans by depositing the lent assets plus all accrued interest fees into the YieldBlox pool in exchange for their committed collateral.
YieldBlox calculates interest rates using a purely demand-based equation. This means the equation does not include a base interest rate constant; interest rates are based solely on the pool’s utilization ratio (assets lent out/total assets). A demand-based equation ensures that YieldBlox interest rates automatically adjust to changing market conditions. The relationship between the interest rate and the utilization ratio is exponential. An exponential relationship does a better job of incentivizing lending and disincentivizing borrowing at high utilization ratios than the more traditional linear relationships seen in other DeFi lending protocols. Furthermore, an exponential equation allows the protocol to easily tweak the rate at which interest rates increase as a function of the utilization ratio. For more information on the interest rate calculation, see our technical whitepaper.
YieldBlox uses a decentralized governance token model. The protocol can only be modified using our governance token, YBX. Users receive YBX for participating in the protocol by lending or borrowing. YBX holders can use the token to create and vote on governance proposals. For more information, see the Governance section on our docs page: docs.yieldblox.com
Script3 is very excited about YieldBlox. We hope to get a fully-functional, public-net beta up shortly after TSS launches on the public-net. After launch, we will explore adding additional features like flash loans, under-collateralized loans, and DEX margin trading. Currently, we are working on finalizing the YieldBlox txFunctions and building the web-app. Please check out our Stellar Seed Fund Submission, and feel free to reach out to us if you have questions or are interested in getting involved with the project!