styling and boost references

This commit is contained in:
saml33 2024-07-10 15:15:53 +10:00
parent 89fec2c0e0
commit 8e0cdd0ab8
14 changed files with 231 additions and 348 deletions

View File

@ -399,7 +399,7 @@ function EditLeverageForm({
{({ open }) => (
<>
<Disclosure.Button
className={`w-full rounded-xl border-2 border-th-bkg-3 px-4 py-3 text-left focus:outline-none ${
className={`w-full rounded-lg border-2 border-th-bkg-3 px-4 py-3 text-left focus:outline-none ${
open ? 'rounded-b-none border-b-0' : ''
}`}
>

View File

@ -3,7 +3,7 @@ const HowItWorks = () => {
<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
This product is high risk. Make sure you understand how it works before
risking any funds.
</p>
<h3 className="mb-1">The basics of JLP</h3>
@ -18,12 +18,12 @@ const HowItWorks = () => {
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>
<h3 className="mb-1">The basics of adding leverage to 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.
This product 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
@ -31,7 +31,7 @@ const HowItWorks = () => {
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>
<h3 className="mb-1">Is adding leverage to 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
@ -46,7 +46,7 @@ const HowItWorks = () => {
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!.
yield.fans
</p>
<h4 className="mb-1">USDC Loan Origination Fee</h4>
<p className="mb-3 leading-relaxed">
@ -77,26 +77,22 @@ const HowItWorks = () => {
</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.
When adding leverage to 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
So, for leveraging 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>
<h3 className="mb-1">Depositing 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.
Depositing USDC is simply supplying it to the lending pool. Your USDC
balance will be lent to users leveraging JLP 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.
@ -108,44 +104,45 @@ const HowItWorks = () => {
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.
If JLP were to have a large depegging event it could leave the product
with bad debt. Users leveraging JLP 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.
This product 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.
Opening and closing positions 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>
<h4 className="mb-1">Code</h4>
<p className="mb-3 leading-relaxed">
Boost! is an integration with the Mango v4 contracts. These are audited
by{' '}
This product 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>
<h4 className="mb-1">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.
As the 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.
This product relies on the Solana Network and external RPCs to function.
If these services are down access to your funds will be affected. If
this coincides with a market event you could lose funds.
</p>
</div>
)

View File

@ -27,12 +27,13 @@ const NavTabs = <T extends Values>({
key={`${value}` + i}
onClick={() => onChange(value)}
>
{count ? <div className="mr-1.5 h-5 w-5" /> : null}
{names ? names[i] : value}
{count ? (
<div
className={`ml-2 rounded ${
className={`ml-1.5 h-5 w-5 rounded-full text-xs ${
value === activeValue ? 'bg-th-bkg-1' : 'bg-th-bkg-3'
} px-1.5 py-0.5 `}
}`}
>
<span className="text-sm text-th-fgd-2">{count}</span>
</div>

View File

@ -28,6 +28,7 @@ import { useWallet } from '@solana/wallet-adapter-react'
import UnstakeForm from './UnstakeForm'
import StakeForm from './StakeForm'
import DespositForm from './DepositForm'
import { useTheme } from 'next-themes'
const set = mangoStore.getState().set
@ -144,6 +145,7 @@ const PositionItem = ({
borrowBank: Bank | undefined
}) => {
const { connected } = useWallet()
const { theme } = useTheme()
const { jlpGroup, lstGroup } = useMangoGroup()
const { stakeBalance, bank, pnl, acct } = position
const [showEditLeverageModal, setShowEditLeverageModal] = useState(false)
@ -213,13 +215,9 @@ const PositionItem = ({
return (
<div className="rounded-2xl border-2 border-th-fgd-1 bg-th-bkg-1 p-6">
<div className="mb-4 flex flex-col border-b border-th-bkg-3 pb-4 md:flex-row md:items-center md:justify-between">
<div className="flex flex-col pb-4 md:flex-row md:items-center md:justify-between">
<div className="mb-4 flex items-center space-x-3 md:mb-0">
<div
className={`inner-shadow-bottom-sm flex h-12 w-12 items-center justify-center rounded-full border border-th-bkg-2 bg-gradient-to-b from-th-bkg-1 to-th-bkg-2`}
>
<TokenLogo bank={bank} size={28} />
</div>
<TokenLogo bank={bank} size={40} />
<div>
<h3>{formatTokenSymbol(bank.name)}</h3>
<p>${bank.uiPrice.toFixed(2)}</p>
@ -239,12 +237,19 @@ const PositionItem = ({
) : (
<Button onClick={() => handleAddNoPosition(bank.name)}>
<p className="mb-1 text-base tracking-wider text-th-bkg-1">
{`Boost! ${bank.name}`}
{`Add`}
</p>
</Button>
)}
</div>
<div className="grid grid-cols-1 gap-4 sm:grid-cols-2">
<div
className={`bg-x-repeat h-2 w-full ${
theme === 'Light'
? `bg-[url('/images/zigzag-repeat.svg')]`
: `bg-[url('/images/zigzag-repeat-dark.svg')]`
} bg-contain opacity-20`}
/>
<div className="grid grid-cols-1 gap-4 pt-4 sm:grid-cols-2">
<div>
<p className="mb-1 text-th-fgd-4">Position Size</p>
<span className="text-xl font-bold text-th-fgd-1">
@ -381,10 +386,12 @@ const PositionItem = ({
})
setShowEditLeverageModal(!showEditLeverageModal)
}}
className="default-transition flex items-center rounded-md border-b-2 border-th-bkg-4 bg-th-bkg-2 px-2.5 py-1 text-th-fgd-1 md:hover:bg-th-bkg-3"
className="raised-button-neutral group flex h-8 items-center rounded-lg px-3 after:rounded-lg after:border after:border-th-bkg-3 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50"
>
<AdjustmentsHorizontalIcon className="mr-1.5 h-4 w-4" />
<span className="font-bold">Edit</span>
<span className="flex w-full items-center group-hover:mt-1 group-active:mt-2">
<AdjustmentsHorizontalIcon className="mr-1.5 h-4 w-4" />
<span className="font-bold">Edit</span>
</span>
</button>
) : null}
</div>

View File

@ -124,7 +124,7 @@ const Stake = () => {
<>
<div className="flex flex-col items-center">
<div className="w-full pb-6 text-center md:pb-8">
<h1 className="mb-1">Welcome yield fans 👋</h1>
<h1 className="mb-1">Welcome yield fan 👋</h1>
<p>
It&apos;s time to leverage up your liquid staking yield.
</p>
@ -237,7 +237,7 @@ const Stake = () => {
>
<ArrowLeftIcon className="h-5 w-5" />
</IconButton>
<h2>Leverage {selectedToken}</h2>
<h2>Add {selectedToken}</h2>
</div>
{selectedToken === 'USDC' ? (
<DespositForm

View File

@ -63,7 +63,7 @@ import { useTheme } from 'next-themes'
const set = mangoStore.getState().set
export const NUMBERFORMAT_CLASSES =
'inner-shadow-top-sm w-full rounded-xl border border-th-bkg-3 bg-th-input-bkg p-3 pl-12 pr-4 text-left font-bold text-xl text-th-fgd-1 focus:outline-none focus-visible:border-th-fgd-4 md:hover:border-th-bkg-4 md:hover:focus-visible:border-th-fgd-4'
'inner-shadow-top-sm w-full rounded-lg border border-th-bkg-3 bg-th-input-bkg p-3 pl-12 pr-4 text-left font-bold text-xl text-th-fgd-1 focus:outline-none focus-visible:border-th-fgd-4 md:hover:border-th-bkg-4 md:hover:focus-visible:border-th-fgd-4'
interface StakeFormProps {
token: string
@ -418,7 +418,11 @@ function StakeForm({ token: selectedToken, clientContext }: StakeFormProps) {
return (
<>
<h2 className="mb-3 text-center text-lg font-normal">Token to deposit</h2>
<h2 className="text-center text-lg font-normal">Token to deposit</h2>
<p className="mb-3 text-center text-sm text-th-fgd-4">
(If you deposit {clientContext === 'jlp' ? 'USDC' : 'SOL'} it will be
swapped to {selectedToken})
</p>
<div className="grid grid-cols-2 gap-4 pb-6 text-lg font-bold md:pb-8">
<button
className={`${YIELD_BUTTON_CLASSES} ${
@ -556,7 +560,7 @@ function StakeForm({ token: selectedToken, clientContext }: StakeFormProps) {
desc={
<div>
<p>
No {formatTokenSymbol(selectedToken)} balance to Boost!{' '}
No {formatTokenSymbol(selectedToken)} balance to add.{' '}
<a
className="font-bold"
href={`https://app.mango.markets/swap?in=USDC&out=${selectedToken}&walletSwap=true`}
@ -587,7 +591,7 @@ function StakeForm({ token: selectedToken, clientContext }: StakeFormProps) {
<InlineNotification
desc={`Your ${inputAmount} ${depositToken} will be swapped to ${
uiOutAmount ? `~${uiOutAmount}` : ''
} ${selectedToken} before Boosting!`}
} ${selectedToken}`}
type="info"
/>
)}
@ -632,7 +636,7 @@ function StakeForm({ token: selectedToken, clientContext }: StakeFormProps) {
{({ open }) => (
<>
<Disclosure.Button
className={`w-full rounded-xl border-2 border-th-bkg-3 px-4 py-3 text-left focus:outline-none ${
className={`w-full rounded-lg border-2 border-th-bkg-3 px-4 py-3 text-left focus:outline-none ${
open ? 'rounded-b-none border-b-0' : ''
}`}
>
@ -863,7 +867,7 @@ function StakeForm({ token: selectedToken, clientContext }: StakeFormProps) {
})}
</div>
) : ipAllowed ? (
`Boost! ${
`Add ${
isSwapMode && uiOutAmount ? uiOutAmount : inputAmount
} ${formatTokenSymbol(selectedToken)}`
) : (

View File

@ -9,13 +9,15 @@ const TransactionHistory = () => {
const { history, isLoading, refetch } = useAccountHistory()
return (
<div className="flex min-h-[380px] flex-col space-y-2 rounded-2xl border-2 border-th-fgd-1 bg-th-bkg-1 p-6">
<div className="text-center text-sm opacity-50">
History may be delayed by a few minutes.{' '}
<div className="text-center text-sm">
<span className="text-th-fgd-4">
History may be delayed by a few minutes.
</span>{' '}
<button
className="text-blue-400 hover:text-blue-600 active:text-purple-900"
className="text-th-link md:hover:text-th-link-hover"
onClick={() => refetch()}
>
Click to refresh.
Click to refresh
</button>
</div>
{history?.length ? (

View File

@ -382,12 +382,12 @@ function UnstakeForm({
) : (
<>
<Disclosure.Button
className={`w-full rounded-xl border-2 border-th-bkg-3 px-4 py-3 text-left focus:outline-none ${
className={`w-full rounded-lg border-2 border-th-bkg-3 px-4 py-3 text-left focus:outline-none ${
open ? 'rounded-b-none border-b-0' : ''
}`}
>
<div className="flex items-center justify-between">
<p className="font-medium">Staked Amount</p>
<p className="font-medium">Staked amount</p>
<div className="flex items-center space-x-2">
<span className="text-lg font-bold text-th-fgd-1">
<FormatNumericValue
@ -405,7 +405,7 @@ function UnstakeForm({
</Disclosure.Button>
<Disclosure.Panel className="space-y-2 rounded-xl rounded-t-none border-2 border-t-0 border-th-bkg-3 px-4 pb-3">
<div className="flex justify-between">
<p className="text-th-fgd-4">Staked Amount</p>
<p className="text-th-fgd-4">Staked amount</p>
<span className="font-bold text-th-fgd-1">
<BankAmountWithValue
amount={tokenMax.maxAmount}
@ -415,7 +415,7 @@ function UnstakeForm({
</div>
<div className="flex justify-between">
<p className="text-th-fgd-4">
Staked Amount with borrow
Staked amount with borrow
</p>
<span className="font-bold text-th-fgd-1">
<BankAmountWithValue

View File

@ -3,93 +3,92 @@ import { ChevronDownIcon } from '@heroicons/react/20/solid'
const FAQS = [
{
question: 'Why would I want to Boost!?',
question: 'Why would I want to add leverage?',
answer: (
<>
<h3>JLP/Liquid staking tokens</h3>
<p>
Boost! let&apos;s you easily add leverage to your token positions. The
tokens listed on Boost! (excluding USDC) all have native yield so in
the right market conditions you can borrow to increase your exposure
to this native yield. When the extra yield is larger than your cost of
borrowing you earn more yield than you would by simply holding the
token.
The tokens listed on yield.fan (excluding USDC) all have native yield
so in the right market conditions you can borrow to increase your
exposure to this native yield. When the extra yield is larger than
your cost of borrowing you earn more yield than you would by simply
holding the token.
</p>
<h3>USDC</h3>
<p>
Boosting USDC is different in that when you deposit USDC you are
adding it to the lending pool for JLP boosters. There is no leverage
involved and JLP borrowers pay a variable interest rate to borrow your
USDC.
USDC is different in that when you deposit USDC you are adding it to
the lending pool for users adding leverage to JLP. There is no
leverage involved and JLP borrowers pay a variable interest rate to
borrow your USDC.
</p>
</>
),
},
{
question: 'How does Boost! work?',
question: 'How does it work?',
answer: (
<>
<h3>JLP</h3>
<p>
Boosting JLP works by using your deposited JLP as collateral to borrow
USDC which is then swapped to JLP. This leaves you with an increased
balance of JLP and a borrowed amount of USDC.
Adding leverage to JLP works by using your deposited JLP as collateral
to borrow USDC which is then swapped to JLP. This leaves you with an
increased balance of JLP and a borrowed amount of USDC.
</p>
<p>The JLP pool is completely isolated from Mango v4.</p>
<h3>Liquid staking tokens (LSTs)</h3>
<p>
Boosting liquid staking tokens (mSOL, JitoSOL, bSOL etc) works by
using your deposited token as collateral to borrow SOL which is then
swapped to more of your deposited token. This leaves you with an
increased balance of your LST and a borrowed amount of USDC.
Adding leverage to liquid staking tokens (mSOL, JitoSOL, bSOL etc)
works by using your deposited token as collateral to borrow SOL which
is then swapped to more of your deposited token. This leaves you with
an increased balance of your LST and a borrowed amount of USDC.
</p>
<p>
The pools for LSTs on Boost! draw from the same liquidity available on
Mango v4.
The pools for LSTs on yield.fan draw from the same liquidity available
on Mango v4.
</p>
<h3>USDC</h3>
<p>
USDC is part of the isolated JLP group. When you deposit USDC it will
be lent out to JLP boosters. You earn a varialbe interest rate in
return that is determined by the amount of USDC deposited and the
amount borrowed.
be lent out to users adding leverage to JLP. You earn a varialbe
interest rate in return that is determined by the amount of USDC
deposited and the amount borrowed.
</p>
</>
),
},
{
question: 'How does unboosting work?',
question: 'How do I withdraw?',
answer: (
<>
<h3>JLP/Liquid staking tokens</h3>
<p>
Unboosting works by unwinding your leveraged position. Your borrow
will be repaid by swapping the token you boosted to the token you
Withdrawals work by unwinding your leveraged position. Your borrow
will be repaid by swapping the token you leveraged to the token you
borrowed with the remainder being withdrawn to your wallet.
</p>
<p>
There are no fees associated with unboosting however, there could be
There are no fees associated with withdrawals however, there could be
up to 1% slippage when swapping to repay your loan.
</p>
<h3>USDC</h3>
<p>
Unboosting USDC removes it from the lending pool and withdraws it to
Withdrawing USDC removes it from the lending pool and withdraws it to
your wallet.
</p>
<p>There are no fees associated with unboosting USDC.</p>
<p>There are no fees associated with withdrawing USDC.</p>
</>
),
},
{
question: 'Is boosting always profitalbe?',
question: 'Is adding leverage always profitalbe?',
answer: (
<>
<h3>JLP/Liquid staking tokens</h3>
<p>
No. For one, there is a risk of liquidation (especially when boosting
JLP). If the price of your boosted token drops below your liquidation
threshold you will lose some or all of your funds. This risk increases
with the amount of leverage you use.
No. For one, there is a risk of liquidation (especially when
leveraging JLP). If the price of your leveraged token drops below your
liquidation threshold you will lose some or all of your funds. This
risk increases with the amount of leverage you use.
</p>
<p>
There are also fees and costs for borrowing that will affect your
@ -99,9 +98,9 @@ const FAQS = [
</p>
<h3>USDC</h3>
<p>
Boosting USDC is always profitable unless there is a systemic failure
that results in loss of funds. See the risks FAQ to learn about some
of the potential risks of using Boost!
Depositing USDC is always profitable unless there is a systemic
failure that results in loss of funds. See the risks FAQ to learn
about some of the potential risks of using yield.fan
</p>
</>
),
@ -110,14 +109,14 @@ const FAQS = [
question: 'What are the costs/fees?',
answer: (
<>
<p>The costs and fees depend on the token you are boosting.</p>
<p>The costs and fees depend on the token you are leveraging.</p>
<h3>JLP/Liquid staking tokens</h3>
<p className="font-bold">Borrow Interest Rate</p>
<p>
This variable APR can change significantly and frequently depending on
the ratio of deposits and borrows. It is charged continuosly on the
balance of your USDC or SOL borrow and paid to USDC depositors
(lenders) on Boost! and SOL depositors on Mango v4.
(lenders) on yield.fan and SOL depositors on Mango v4.
</p>
<p className="font-bold">Loan Origination Fee</p>
<p>
@ -149,12 +148,12 @@ const FAQS = [
</p>
<p className="font-bold">Position Entry Costs</p>
<p>
When boosting the USDC or SOL you borrow gets swapped via Jupiter to
more of your boosted token. This can incur up to 1% slippage resulting
in an entry price worse than expected.
When adding funds the USDC or SOL you borrow gets swapped via Jupiter
to more of your leveraged token. This can incur up to 1% slippage
resulting in an entry price worse than expected.
</p>
<h3>USDC</h3>
<p>There are no fees associated with boosting USDC.</p>
<p>There are no fees associated with depositing USDC.</p>
</>
),
},
@ -165,8 +164,8 @@ const FAQS = [
<p>
When you open a leveraged position there are some immediate costs
associated with borrowing. You&apos;ll be paying a loan origination
fee, interest on the borrowed amount, and a collateral fee (if
boosting JLP) instantaneously. Over time and in the right market
fee, interest on the borrowed amount, and a collateral fee (if adding
leverage to JLP) instantaneously. Over time and in the right market
conditions your &quot;Total Earned&quot; will become positive.
</p>
</>
@ -178,12 +177,12 @@ const FAQS = [
<>
<p>
The following risks are non-exhaustive. It&apos;s important to have a
good understanding of these risks and how Boost! works before
good understanding of these risks and how yield.fan works before
depositing any funds
</p>
<h3>Code</h3>
<p>
Boost! is an integration with the Mango v4 program. Although it is
yield.fan is an integration with the Mango v4 program. Although it is
open source and has been audited extensively, it&apos;s possible bugs
and exploits exist that could result in the loss of funds. It&apos;s
also possible for a bug in the UI to affect the ability to open and
@ -198,27 +197,24 @@ const FAQS = [
</p>
<h3>Liquidity</h3>
<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 positions
effectively. This could affect the liquidity available to open/close
positions.
Opening and closing positions relies on swapping between the staking
tokens 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>
<h3>Oracles</h3>
<p>
The price data for Boost! comes from third party oracle providers.
It&apos;s possible for the data to be incorrect due to a failure with
the oracle provider. This could result in bad liquidations and loss of
funds.
The price data comes from third party oracle providers. It&apos;s
possible for the data to be incorrect due to a failure with the oracle
provider. This could result in bad liquidations and loss of funds.
</p>
<h3>Yield Duration</h3>
<p>
When you borrow USDC or SOL 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 (if boosting JLP) 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 or SOL.
When you borrow USDC or SOL to open a position 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 or SOL.
</p>
</>
),
@ -228,16 +224,16 @@ const FAQS = [
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.
composed of assets, trading fees and traders profits and losses.
yield.fan 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>
),
},
{
question: 'Why is my Ledger not working with Boost!?',
question: 'Why is my Ledger not working?',
answer: (
<p>
If your Ledger isn&apos;t working it&apos;s most likely because it
@ -246,10 +242,10 @@ const FAQS = [
),
},
{
question: 'Who made Boost!?',
question: 'Who made this?',
answer: (
<p>
Boost! is made and maintained by long-term contributors to{' '}
yield.fan is made and maintained by long-term contributors to{' '}
<a
href="https://dao.mango.markets"
target="_blank"
@ -268,127 +264,6 @@ const FaqsPage = () => {
<div className="rounded-2xl border-2 border-th-fgd-1 bg-th-bkg-1 p-6">
<h1 className="mb-4">FAQs</h1>
<div className="space-y-2">
{/* <Disclosure key={'How does Boost! work?'}>
{({ open }) => (
<div>
<Disclosure.Button
className={`w-full rounded-xl border-2 border-th-bkg-3 px-4 py-3 text-left focus:outline-none ${
open ? 'rounded-b-none border-b-0' : ''
}`}
>
<div className="flex items-center justify-between">
<p className="font-medium">{'How does Boost! work?'}</p>
<ChevronDownIcon
className={`${
open ? 'rotate-180' : ''
} h-6 w-6 shrink-0 text-th-fgd-1`}
/>
</div>
</Disclosure.Button>
<Disclosure.Panel className="space-y-2 rounded-xl rounded-t-none border-2 border-t-0 border-th-bkg-3 px-4 pb-3">
<p>
Leveraged staking with Boost! amplifies yields by recursively
borrowing and lending between SOL and its supported tokens:
mSOL, jitoSOL, bSOL, and stSOL. Users can deposit any of these
tokens and then borrow SOL to enhance their returns.
</p>
<p>Example with jitoSOL:</p>
<ul className="list-inside list-disc">
<li>
A user deposits jitoSOL into Mango&apos;s borrowing/lending
program via Boost!.
</li>
<li>
Boost! then leverages the deposited jitoSOL to borrow SOL,
based on the user&apos;s desired leverage ratio on Mango.
</li>
<li>
This process effectively increases the user&apos;s position
size in jitoSOL, amplifying the base yield.
</li>
</ul>
<p>
When the returns from staking surpass the costs of borrowing,
users enjoy a premium from this enhanced staking with Boost!.
</p>
</Disclosure.Panel>
</div>
)}
</Disclosure>
<Disclosure key={'What are the risks?'}>
{({ open }) => (
<div>
<Disclosure.Button
className={`w-full rounded-xl border-2 border-th-bkg-3 px-4 py-3 text-left focus:outline-none ${
open ? 'rounded-b-none border-b-0' : ''
}`}
>
<div className="flex items-center justify-between">
<p className="font-medium">{'What are the risks?'}</p>
<ChevronDownIcon
className={`${
open ? 'rotate-180' : ''
} h-6 w-6 shrink-0 text-th-fgd-1`}
/>
</div>
</Disclosure.Button>
<Disclosure.Panel className="space-y-2 rounded-xl rounded-t-none border-2 border-t-0 border-th-bkg-3 px-4 pb-3">
<ul className="list-inside list-disc">
<li>
There&apos;s a risk that tokens like mSOL, jitoSOL, bSOL, or
stSOL may deviate significantly from the SOL price. If the
token prices drop by 20% or SOL gains a premium of 18.5%,
your position may face liquidation, particularly for high
leverage positions. Deppegs, although infrequent, can occur
due to market liquidity, pricing anomalies, or smart
contract bugs.
</li>
<li>
Liquidity pertains to quickly converting staked tokens into
SOL without major price impact.
</li>
<li>
The underlying liqduid staking tokens as well as Mango are
susceptible to risks linked to smart contract flaws and UI
mishaps, which might lead to unexpected results or fund
losses.
</li>
<li>
If your margin ratio falls below maintenance, you risk
liquidation. A drop in staked asset value below the
maintenance margin can result in partial or total sale of
your collateral. Your liquidation ratio is displayed in the
user interface.
</li>
<li>
Mango depends on external oracles for pricing. Inaccuracies
from these oracles, whether due to technical issues,
manipulation, etc., can cause undesired liquidations,
potentially causing losses.
</li>
<li>
Instant SOL borrow interest payments contrast with token
staking rewards paid every epoch (~2.5 days). Thus, users
entering and exiting within these boundaries might pay
interest without gaining staking rewards. It&apos;s vital to
be familiar with{' '}
<a href="https://docs.solana.com/cluster/stake-delegation-and-rewards">
Solana staking mechanics
</a>
.
</li>
</ul>
</Disclosure.Panel>
</div>
)}
</Disclosure> */}
{FAQS.map((faq) => {
const { question, answer } = faq
return (

View File

@ -29,7 +29,7 @@ const TermsOfUseModal = ({ isOpen, onClose }: ModalProps) => {
height={48}
width={48}
/>
<h2 className="mt-2 text-xl">Welcome yield fans</h2>
<h2 className="mt-2 text-xl">Welcome yield fan</h2>
<p className="text-center">
Earn leveraged yield on your JLP and liquid staking tokens.
</p>

View File

@ -29,10 +29,10 @@ const Button: FunctionComponent<ButtonCombinedProps> = ({
<button
onClick={onClick}
disabled={disabled}
className={`flex items-center justify-center rounded-xl ${
className={`flex items-center justify-center rounded-lg ${
secondary
? 'border border-th-button focus-visible:border-th-fgd-4 md:hover:border-th-button-hover'
: 'raised-button text-shadow group text-xl text-th-bkg-1 after:rounded-xl'
: 'raised-button text-shadow group text-xl text-th-bkg-1 after:rounded-lg'
} ${
size === 'medium'
? 'h-10 px-4'

View File

@ -15,11 +15,11 @@ const Risks: NextPage = () => {
<h1 className="mb-4">Risks</h1>
<p className="mb-3">
<b>KEY INVESTOR INFORMATION:</b> This document provides you with key
information about the Mango Markets Boost! Leveraged Staking product and
the risks involved. It is not marketing material. The information is
required to help you understand the nature and risks of investing in
this product.You are advised to read it so you can make an informed
decision about whether to invest.
information about this Leveraged Staking product and the risks involved.
It is not marketing material. The information is required to help you
understand the nature and risks of investing in this product.You are
advised to read it so you can make an informed decision about whether to
invest.
</p>
<p className="mb-3">
<b>IMPORTANT INFORMATION: CAPITAL AT RISK</b> The value and income of
@ -37,15 +37,15 @@ const Risks: NextPage = () => {
blockchains, operate independently of Mango Markets DAO.
</p>
<p className="mb-3">
This leverage product, known as Boost! v2, allows users to deposit JLP
This leverage product, known as yield.fan, allows users to deposit JLP
and SOL liquid staking tokens (LSTs), to be used as collateral in the
borrowing of USDC (if boosting JLP) or SOL (if boosting LSTs) at a
borrowing of USDC (if leveraging JLP) or SOL (if leveraging LSTs) at a
variable interest rate. The USDC or SOL is used to purchase additional
tokens, creating increased exposure.
</p>
<p className="mb-3">
The product entails various fees, including variable collateral fee
rates (if boosting JLP), loan origination fees, and variable loan
rates (if leveraging JLP), loan origination fees, and variable loan
maintenance fees. The value of your position is directly affected by
changes in the USDC or SOL interest rate and the market value of the
deposited tokens. Typically, an increase in borrow interest rates, or a
@ -53,49 +53,48 @@ const Risks: NextPage = () => {
the value of your position, potentially resulting in liquidation.
</p>
<p className="mb-3">
The Boost! leverage staking product relies on external oracles to
provide real-time price feeds for deposited tokens, USDC and SOL. These
oracles are essential for ensuring accurate collateral valuation.
However, investors should be aware that oracle data is subject to risks
of manipulation, delay, or inaccuracies. Such issues with oracle feeds
can lead to improper valuation of deposited assets, potentially
triggering unintended liquidations or affecting the overall performance
of your investment.
This leverage staking product relies on external oracles to provide
real-time price feeds for deposited tokens, USDC and SOL. These oracles
are essential for ensuring accurate collateral valuation. However,
investors should be aware that oracle data is subject to risks of
manipulation, delay, or inaccuracies. Such issues with oracle feeds can
lead to improper valuation of deposited assets, potentially triggering
unintended liquidations or affecting the overall performance of your
investment.
</p>
<p className="mb-3">
Investors should also be aware of the inherent smart-contract risks
associated with the Boost! leverage staking on the Mango Markets DAO.
These risks include, but are not limited to, vulnerabilities in the
contract code that could potentially be exploited, leading to financial
loss.
associated with this product. These risks include, but are not limited
to, vulnerabilities in the contract code that could potentially be
exploited, leading to financial loss.
</p>
<p className="mb-6 font-bold">
Please consider these risks carefully before using Mango Markets Boost!
Leveraged Staking.
Please consider these risks carefully before using yield.fan
</p>
<h3 className="mb-3">1. Why Boost JLP or LSTs?</h3>
<h3 className="mb-3">1. Why add leverage to JLP or LSTs?</h3>
<p className="mb-6">
Increased Exposure and Returns: Amplifies investment in JLP/LSTs,
leveraging USDC/SOL to enhance yield potential and market position
without the need for extra capital.
</p>
<h3 className="mb-3">2. Why Not Boost JLP or LSTs?</h3>
<h3 className="mb-3">2. Why Not add leverage to JLP or LSTs?</h3>
<p className="mb-6">
Risk of Liquidation: High volatility in the JLP/LST and USDC/SOL market
can rapidly depreciate collateral value, triggering liquidations and
potential loss of investment.
</p>
<h3 className="mb-3">3. Boosting</h3>
<h3 className="mb-3">3. Adding leverage</h3>
<p className="mb-3">
Boosting offers a significant advantage by amplifying investors&apos;
exposure to JLP/LSTs and their associated yield through USDC or SOL
borrowing, which facilitates the acquisition of additional amounts of
JLP or LSTs, enhancing potential gains. This strategic leverage allows
investors to expand their market position and potentially increase
returns without the need for additional capital investment upfront. The
product operates within a framework of carefully calibrated risk
parameters, managed by the Mango DAO, to balance growth opportunities
against the inherent risks of the JLP/LST and USDC/SOL markets.
Adding leverage offers a significant advantage by amplifying
investors&apos; exposure to JLP/LSTs and their associated yield through
USDC or SOL borrowing, which facilitates the acquisition of additional
amounts of JLP or LSTs, enhancing potential gains. This strategic
leverage allows investors to expand their market position and
potentially increase returns without the need for additional capital
investment upfront. The product operates within a framework of carefully
calibrated risk parameters, managed by the Mango DAO, to balance growth
opportunities against the inherent risks of the JLP/LST and USDC/SOL
markets.
</p>
<p className="mb-3">
However, this increased exposure is not without its costs. The primary
@ -151,7 +150,7 @@ const Risks: NextPage = () => {
<h3 className="mb-3">5. Objectives and Policy</h3>
<ul className="ml-6 list-outside list-disc">
<li className="mb-3">
Boost! v2 augments the investor&apos;s exposure to the deposited
yield.fan augments the investor&apos;s exposure to the deposited
tokens by leveraging USDC or SOL borrowing to finance the acquisition
of additional amounts of the deposited asset, which is designated as
&quot;Collateral&quot;.
@ -164,13 +163,13 @@ const Risks: NextPage = () => {
adjusting it in accordance with their risk management strategy.
</li>
<li className="mb-3">
When boosting JLP the collateral of deposited tokens is subject to a
fixed rate fee, which is imposed in direct proportion to the extent of
the collateral that is secured by outstanding liabilities. In the
context of liquidations, a distinct and typically lower value, known
as the &quot;maintenance asset weight&quot;, comes into play,
representing the &quot;weighted assets&quot; threshold for triggering
liquidation.
When adding leverage to JLP the collateral of deposited tokens is
subject to a fixed rate fee, which is imposed in direct proportion to
the extent of the collateral that is secured by outstanding
liabilities. In the context of liquidations, a distinct and typically
lower value, known as the &quot;maintenance asset weight&quot;, comes
into play, representing the &quot;weighted assets&quot; threshold for
triggering liquidation.
</li>
<li className="mb-3">
The USDC and SOL borrow rates are dynamically adjusted based on the
@ -183,11 +182,12 @@ const Risks: NextPage = () => {
</li>
<li className="mb-3">
The effectiveness of leveraging JLP and the associated USDC borrowing
rates are directly influenced by Boost! USDC, a distinct service on
rates are directly influenced by USDC deposits, a distinct service on
the platform designed for USDC lending. The interplay between JLP
leverage and Boost USDC underscores the importance of understanding
the inherent risks of Boost USDC when utilizing JLP for investment
strategies. JLP and USDC are isolated from the LST pool.
leverage and deposited USDC underscores the importance of
understanding the inherent risks of deposited USDC when utilizing JLP
for investment strategies. JLP and USDC are isolated from the LST
pool.
</li>
<li className="mb-3">
A liquidation event is initiated when the combined value of the
@ -211,7 +211,7 @@ const Risks: NextPage = () => {
</li>
</ul>
<p className="mb-6">
For more information on Mango Boost, risks and charges please contact{' '}
For more information on yield.fan, risks and charges please contact{' '}
<a
href="https://discord.gg/pV5mybZYY8"
target="_blank"
@ -220,18 +220,17 @@ const Risks: NextPage = () => {
https://discord.gg/pV5mybZYY8
</a>
</p>
<h3 className="mb-3">6. Interdependence with Boost USDC</h3>
<h3 className="mb-3">6. Interdependence with deposited USDC</h3>
<p className="mb-6">
The &quot;Boost JLP&quot; product intricately relies on the &quot;Boost
USDC&quot; , serving as a mechanism for deposits within the ecosystem.
Specifically, the Boost USDC product facilitates the deposit of USDC,
which is a critical component in enabling the leveraging features of
Boost JLP. This interdependence underscores a strategic approach to
liquidity management and leverage within the platform, where the
availability and conditions of USDC deposits directly influence the
operational dynamics of Boost JLP. As such, users engaging with Boost
JLP are implicitly interacting with the underlying mechanisms and risks
associated with Boost USDC.
The &quot;Leveraged JLP&quot; product intricately relies on the
deposited USDC, serving as a mechanism for deposits within the
ecosystem. Specifically, USDC deposits are a critical component in
enabling the leveraging of JLP. This interdependence underscores a
strategic approach to liquidity management and leverage within the
platform, where the availability and conditions of USDC deposits
directly influence the operational dynamics of leveraged JLP. As such,
users engaging with JLP are implicitly interacting with the underlying
mechanisms and risks associated with the deposited USDC.
</p>
<h3 className="mb-3">7. Charges</h3>
<p className="mb-3">
@ -253,10 +252,10 @@ const Risks: NextPage = () => {
rate falls within a 0-10 percent Annual Percentage Rate (APR).
</li>
<li className="mb-3">
Collateral Fee Rate, This is a percentage fee for boosting JLP,
assessed on the collateral deposited by the borrower. It fluctuates
based on the ratio of weighted liabilities to weighted collateral,
affecting the overall cost of borrowing.
Collateral Fee Rate, This is a percentage fee for adding leverage to
JLP and other LSTs, assessed on the collateral deposited by the
borrower. It fluctuates based on the ratio of weighted liabilities to
weighted collateral, affecting the overall cost of borrowing.
</li>
<li className="mb-3">
Swap Fees, When positions are initiated by swapping USDC or SOL for a
@ -268,13 +267,12 @@ const Risks: NextPage = () => {
<h3 className="mb-3">8. JLP and LST Specific Risks</h3>
<h4 className="mb-2">8.1 Disclaimer on Jupiter Token Management</h4>
<p className="mb-3">
It is important for users to understand that the Boost platform does not
have any control over the management, performance, or operational
strategies of JLP or any of the LSTs. Users should conduct their own due
diligence and assess the risks involved when engaging with these tokens.
Boost! accepts no responsibility for any financial outcomes related to
the fluctuation in value, liquidity, or regulatory changes affecting
these tokens.
It is important for users to understand that the platform does not have
any control over the management, performance, or operational strategies
of JLP or any of the LSTs. Users should conduct their own due diligence
and assess the risks involved when engaging with these tokens. We accept
no responsibility for any financial outcomes related to the fluctuation
in value, liquidity, or regulatory changes affecting these tokens.
</p>
<h4 className="mb-2">
8.2 Risks Associated with Accepting JLP/LST Deposits
@ -301,9 +299,8 @@ const Risks: NextPage = () => {
</ul>
<h3 className="mb-3">9. General Risks</h3>
<p className="mb-3">
The below describes the potential risks faced by users of Boost!,
categorized into general risks, platform-specific risks, and market
operation risks
The below describes the potential risks faced by users categorized into
general risks, platform-specific risks, and market operation risks
</p>
<ul className="ml-6 list-outside list-disc">
<li className="mb-3">
@ -324,14 +321,14 @@ const Risks: NextPage = () => {
<p className="mb-3">
Solana Network Risks: Solana&apos;s architecture, designed for high
throughput and low transaction costs, faces challenges that can impact
users on the Boost platform. Key areas of concern include:
users on the platform. Key areas of concern include:
</p>
<ul className="ml-6 list-outside list-disc">
<li className="mb-3">
Wallet Loss: The decentralized nature of blockchain technology means
that wallet security is paramount. Users losing access to their
private keys will find themselves permanently unable to access their
funds on Boost, with no centralized authority to facilitate recovery.
funds, with no centralized authority to facilitate recovery.
</li>
<li className="mb-3">
Infrastructure Risks: The Solana network is not immune to downtimes or
@ -373,7 +370,7 @@ const Risks: NextPage = () => {
</ul>
<h4 className="mb-2">9.3 Disclaimer on Oracle Management</h4>
<p className="mb-6">
It is crucial for platform users to acknowledge that Boost! does not
It is crucial for platform users to acknowledge that yield.fan does not
control or manage the oracle services provided by Switchboard, Pyth, or
any other third-party oracle providers. As such, we are not liable for
any discrepancies, inaccuracies, or failures of the oracle services. In
@ -382,9 +379,9 @@ const Risks: NextPage = () => {
received data, underscoring the importance of users&apos; awareness of
these oracle provider risks.
</p>
<h3 className="mb-3">10. Boost! Specific Risks</h3>
<h3 className="mb-3">10. Specific Risks</h3>
<p className="mb-3">
The &quot;Boost&quot; products within the Mango Markets ecosystem,
The &quot;yield.fan&quot; products within the Mango Markets ecosystem,
designed to enhance user engagement through leveraged positions and
liquidity provision, carry their own set of specific risks. These risks
stem from operational complexities, market volatilities, and
@ -394,7 +391,7 @@ const Risks: NextPage = () => {
</p>
<ul className="ml-6 list-outside list-disc">
<li className="mb-3">
Operational Risks: Bugs or vulnerabilities in the deployed Boost
Operational Risks: Bugs or vulnerabilities in the deployed Mango
program or governance mechanisms could lead to incorrect behavior or
loss of funds.
</li>

View File

@ -299,7 +299,7 @@ table p {
}
#range-slider-gradient .range-slider__range {
@apply rounded-full bg-gradient-to-r from-th-success via-th-active to-th-error shadow-[inset_0_2px_0px_rgba(0,0,0,0.15)];
@apply rounded-full bg-gradient-to-r from-th-success via-th-warning to-th-error shadow-[inset_0_2px_0px_rgba(0,0,0,0.15)];
background-size: 200% 100%;
background-position: 50% 0;
}

View File

@ -29,7 +29,7 @@ module.exports = {
border: 'hsl(0, 0%, 33%)',
borderDark: 'hsl(0, 0%, 23%)',
},
link: { DEFAULT: '#889FD3', hover: '#728DC8' },
link: { DEFAULT: '#9425A7', hover: '#6B1B79' },
error: '#EA6161',
success: '#51E44E',
warning: '#EAB348',
@ -52,8 +52,8 @@ module.exports = {
dark: '#B57A79',
},
button: {
DEFAULT: '#99ADD9',
hover: '#7284AC',
DEFAULT: '#47D1FF',
hover: '#00BBF9',
},
input: {
bkg: '#352130',