Merge pull request #16 from blockworks-foundation/how-it-works

How it works
This commit is contained in:
saml33 2024-03-08 12:05:33 +11:00 committed by GitHub
commit 83b07af3c3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 174 additions and 14 deletions

View File

@ -6,6 +6,7 @@ import TransactionHistory from './TransactionHistory'
import mangoStore, { ActiveTab } from '@store/mangoStore'
import { useCallback, useEffect } from 'react'
import { BOOST_ACCOUNT_PREFIX } from 'utils/constants'
import HowItWorks from './HowItWorks'
const set = mangoStore.getState().set
@ -47,6 +48,7 @@ const HomePage = () => {
/>
</div>
<TabContent activeTab={activeTab} setActiveTab={setActiveTab} />
<HowItWorks />
</>
)
}

154
components/HowItWorks.tsx Normal file
View File

@ -0,0 +1,154 @@
const HowItWorks = () => {
return (
<div className="mt-6 rounded-lg border-2 border-th-fgd-1 bg-th-bkg-1 p-6">
<h2 className="mb-1">Before you jump in</h2>
<p className="mb-6 leading-relaxed">
Boost! is high risk. Make sure you understand how it works before
risking any funds.
</p>
<h3 className="mb-1">The basics of JLP</h3>
<p className="mb-3 leading-relaxed">
JLP is the liquidity provider token for Jupiter Perps. It represents a
pool of assets that traders borrow from to open leveraged perp positions
on the Jupiter platform.
</p>
<p className="mb-6 leading-relaxed">
Liquidity providers can deposit assets like BTC or SOL into the pool and
receive JLP in return. To incentivize this liquidity, JLP earns 70% of
all perp trading fees. This is automatically accrued in the price of JLP
over time and is represented as an APR.
</p>
<h3 className="mb-1">The basics of boosting JLP</h3>
<p className="mb-3 leading-relaxed">
Boost! offers a simple way to add leverage to your JLP position. It
works by borrowing USDC against your deposited JLP and then swapping the
borrowed USDC to JLP. This leaves you with more JLP than you deposited
and a borrowed amount of USDC.
</p>
<p className="mb-6 leading-relaxed">
The idea is to increase your return by harvesting more of the native
yield of JLP. So... borrow USDC to buy JLP to get more exposure to the
JLP yield. As long as your borrow costs are less than the extra JLP
yield you make a profit.
</p>
<h3 className="mb-1">Is boosting JLP always profitable?</h3>
<p className="mb-3 leading-relaxed">
No. For one, there is a real risk of liquidation. If the price of JLP
drops below your liquidation threshold you will lose some or all of your
JLP.
</p>
<p className="mb-3 leading-relaxed">
There are also fees and costs for borrowing USDC that will affect your
positions profitability.
</p>
<h4 className="mb-1">USDC Borrow Rate</h4>
<p className="mb-3 leading-relaxed">
This variable APR can change significantly and frequently depending on
the ratio or USDC deposits and borrows. It is charged continuosly on the
balance of your USDC borrow and paid to USDC depositors (lenders) on
Boost!.
</p>
<h4 className="mb-1">USDC Loan Origination Fee</h4>
<p className="mb-3 leading-relaxed">
This is a one-time, 50 basis points (0.5%) fee applied to the balance of
your USDC borrow and paid to Mango DAO.
</p>
<h4 className="mb-1">JLP Collateral Fee</h4>
<p className="mb-3 leading-relaxed">
This is charged on your JLP collateral once every two days as insurance
for JLP suffering a catastrophic failure resulting in bad debt. It will
reduce the size of your JLP position over time. The fee accrues to Mango
DAO.
</p>
<p className="mb-3 leading-relaxed">
The collateral fee is a dynamic formula that uses a fixed Annual
Percentage Rate (APR) of 41%. This rate is then multiplied by the ratio
of your USDC liabilities (the amount you&apos;ve borrowed) against your
&quot;weighted&quot; JLP deposits (the value of your position adjusted
by a factor between 0 and 1). The JLP weight is currently set at 0.9.
</p>
<p className="mb-3 leading-relaxed">
The key aspect of this fee is its dynamism; it scales with your
position&apos;s proximity to the liquidation price. Positions closer to
liquidation are subjected to a higher fee, reflecting increased risk,
while positions further from liquidation incur a lower fee.
Consequently, the more leverage you take on the more collateral fees
you&apos;ll pay.
</p>
<h4 className="mb-1">Position Entry Costs</h4>
<p className="mb-3 leading-relaxed">
When boosting JLP the USDC you borrow gets swapped via Jupiter to more
JLP. This can incur some slippage resulting in an entry price worse than
expected.
</p>
<p className="mb-6 leading-relaxed">
So, for boosting JLP to be profitable the extra yield needs to be
greater than these costs. It can also take some time for your position
to be in profit because of the upfront fees paid to borrow USDC.
</p>
<h3 className="mb-1">Boosting USDC</h3>
<p className="mb-6 leading-relaxed">
Boosting USDC is simply supplying it to the lending pool. Your USDC
balance will be lent to JLP boosters and will continously earn the
variable interest rate. There are no fees associated with lending USDC.
</p>
{/* <p className="mb-3 leading-relaxed">
There are no fees associated with lending USDC but there are risks. If
there was a catastrophic failure in JLP or Boost! you could lose all of
your funds.
</p> */}
<h3 className="mb-1">Risks</h3>
<p className="mb-3 leading-relaxed">
The following risks are non-exhaustive.
</p>
<h4 className="mb-1">JLP</h4>
<p className="mb-3 leading-relaxed">
JLP&apos;s value relies on complex market dynamics and smart contract
code. This exposes it to multiple potential failure points that could
result in total loss of funds.
</p>
<p className="mb-3 leading-relaxed">
If JLP were to have a large depegging event it could leave Boost! with
bad debt. JLP boosters would lose due to JLP losing value and USDC
depositors would lose if the JLP was unable to be liquidated in time.
</p>
<h4 className="mb-1">Oracles</h4>
<p className="mb-3 leading-relaxed">
Boost! uses 3rd party oracle providers for pricing data. It is possible
that bad data from these oracle services could result in liquidations
and/or total loss of funds.
</p>
<h4 className="mb-1">Liquidity</h4>
<p className="mb-3 leading-relaxed">
Opening and closing positions on Boost! relies on swapping between JLP
and USDC without significant price impact. During an extreme market
event there could be issues liquidating positions effectively. This
could affect the liquidity available to open/close positions.
</p>
<h4 className="mb-1">Boost! Code</h4>
<p className="mb-3 leading-relaxed">
Boost! is an integration with the Mango v4 contracts. These are audited
by{' '}
<a href="https://osec.io/" rel="noopener noreferrer" target="_blank">
OtterSec
</a>{' '}
on every release. It is still possible for exploitable vulnerabilities
to exist that could result in total loss of funds.
</p>
<h4 className="mb-1">Boost! UI</h4>
<p className="mb-3 leading-relaxed">
As the Boost! UI changes fairly regularly it&apos;s possible for errors
to be introduced that could temporaily affect your ability to enter or
exit positions.
</p>
<h4 className="mb-1">Solana Network and RPCs</h4>
<p className="mb-3 leading-relaxed">
Boost! relies on the Solana Network and external RPCs to function. If
these services are down access to your funds on Boost! will be affected.
If this coincides with a market event you could lose funds.
</p>
</div>
)
}
export default HowItWorks

View File

@ -7,9 +7,9 @@ const FAQS = [
answer: (
<p>
Boost! allows you to increase your position size by borrowing USDC and
swapping it for JLP. This means you earn more yield
from JLP due to a larger position size. As long
as this yield exceeds the rate of the USDC borrow and collateral fees, you earn a premium.
swapping it for JLP. This means you earn more yield from JLP due to a
larger position size. As long as this yield exceeds the rate of the USDC
borrow and collateral fees, you earn a premium.
</p>
),
},
@ -17,8 +17,10 @@ const FAQS = [
question: 'How does unboosting work?',
answer: (
<p>
Unboosting works by selling some of your JLP token to repay your USDC borrow
and withdrawing to your wallet. If the JLP token price increases enough to cover your borrow fee and collateral fee, you will earn a higher APY over time.
Unboosting works by selling some of your JLP token to repay your USDC
borrow and withdrawing to your wallet. If the JLP token price increases
enough to cover your borrow fee and collateral fee, you will earn a
higher APY over time.
</p>
),
},
@ -50,7 +52,7 @@ const FAQS = [
<p>
Opening and closing positions on Boost! relies on swapping between the
staking tokens and USDC without significant price impact. During an
extreme market event there could be issues liquidating position
extreme market event there could be issues liquidating positions
effectively. This could affect the liquidity available to open/close
positions.
</p>
@ -63,9 +65,10 @@ const FAQS = [
</p>
<h4>Yield Duration</h4>
<p>
When you borrow USDC to open a position on Boost! you&apos;ll be paying
an initial loan origination fee, interest on the borrowed amount, and a collateral fee instantaneously. This means you
could open a position and close it before earning any additional yeild,
When you borrow USDC to open a position on Boost! you&apos;ll be
paying an initial loan origination fee, interest on the borrowed
amount, and a collateral fee instantaneously. This means you could
open a position and close it before earning any additional yeild,
whilst paying interest and collateral fees to borrow USDC.
</p>
</>
@ -75,11 +78,12 @@ const FAQS = [
question: 'Where does the yield come from?',
answer: (
<p>
The price of JLP vs USDC. JLP is a liquidity pool provider token composed of assets, trading fees and traders profits and losses. Boost!
increases the position size of your staking token by borrowing USDC. This
means you earn more of the staking reward every epoch. It&apos;s
important to account for the cost of borrowing USDC. This is displayed in
the UI.
The price of JLP vs USDC. JLP is a liquidity pool provider token
composed of assets, trading fees and traders profits and losses. Boost!
increases the position size of your staking token by borrowing USDC.
This means you earn more of the staking reward every epoch. It&apos;s
important to account for the cost of borrowing USDC. This is displayed
in the UI.
</p>
),
},