Releases: liquity/bold
@liquity2/app-v1.10.0
This release aims to improve the resilience of the frontend by introducing RPC fallback routes when the subgraph is down. It also improves fee transparency across the frontend and introduces a number of bug fixes and smaller UX improvements.
Highlights
RPC Fallback for Subgraph Downtime
The frontend now falls back to direct RPC calls when the subgraph is unavailable, to increase frontend uptime for users. Learn more
Improved Fee Transparency
Loan opening fees are now displayed on the initial borrow screen and are applied to the frontend calculations.
Redemption fee application is now clearer and easier to understand on the Redeem screens.
Fork Farming Vaults
Forks Airdrop Farming Vaults links are now directly exposed in the dashboard.
Safety Mode Banner
A new banner alerts users when the protocol enters Safety Mode.
Accurate sBOLD APR
The frontend now displays the actual realized sBOLD APR instead of estimated values.
Configuration changes
New environment variables
The following environment variables have been added as configuration options when building the app. They each have reasonable default values, so no action is needed unless wanting to override the defaults.
NEXT_PUBLIC_AIRDROP_VAULTS
Enable a banner displaying Liquity Airdrop Vault links to users. The links appear on the homepage under the "Earn rewards with BOLD" card. Optional. Defaults to true.
# Example
NEXT_PUBLIC_AIRDROP_VAULTS=falseNEXT_PUBLIC_AIRDROP_VAULTS_URL
URL to fetch Liquity Airdrop Vaults information from (optional).
# Default
NEXT_PUBLIC_AIRDROP_VAULTS_URL=https://api.liquity.org/v2/airdrop-vaults/ethereum.jsonNEXT_PUBLIC_LEGACY_CHECK
Enable a banner warning users of remaining positions in Liquity V2 Legacy. Optional. Defaults to true.
# Example
NEXT_PUBLIC_LEGACY_CHECK=falseNEXT_PUBLIC_SAFETY_MODE_CHECK
Enable a banner warning users when one or more branches are in Safety Mode. Optional. Defaults to true.
# Example
NEXT_PUBLIC_SAFETY_MODE_CHECK=falseNEXT_PUBLIC_V1_STAKING_CHECK
Enable a banner warning users about any LQTY remaining staked in v1. Optional. Defaults to true.
# Example
NEXT_PUBLIC_V1_STAKING_CHECK=falseNEXT_PUBLIC_V1_STABILITY_POOL_CHECK
Enable a banner warning users about unclaimed LQTY in the V1 Stability Pool. Optional. Defaults to true.
# Example
NEXT_PUBLIC_V1_STABILITY_POOL_CHECK=falseAPI changes
Airdrop Vaults information
A new endpoint has been added to the API exposing the links of Airdrop Vaults: https://api.liquity.org/v2/airdrop-vaults/ethereum.json.
Currently, the following fields are included:
name: the Airdrop Vault name.link: the link to the Airdrop Vault.icon: the internal API link to the Airdrop Vault provider logo.
App changes
- Consider opening fee on initial borrow screen by @cyril-dfi in #1173
- Use actual realized sBOLD APR by @cyril-dfi in #1174
- Add Safety Mode banner by @cyril-dfi in #1184
- Show Fork Farming Vaults on UI by @cyril-dfi in #1186
- Make it clearer how redemption fee applies by @cyril-dfi in #1183
- Add new env variables for 1.10 in README by @cyril-dfi in #1187
- RPC Fallback when subgraph is down by @cyril-dfi in #1177
Full Changelog: https://github.com/liquity/bold/compare/@liquity2/app-v1.9.1...@liquity2/app-v1.10.0
@liquity2/app-v1.9.1
This is a hotfix release to address an issue where the remaining collateral of fully redeemed positions couldn't be reclaimed.
App changes
- Minor fix to BorrowingRow title by @chriswessels in #1179
- Fix not being able to close fully redeemed position by @danielattilasimon in #1182
Full Changelog: https://github.com/liquity/bold/compare/@liquity2/app-v1.9.0...@liquity2/app-v1.9.1
@liquity2/app-v1.9.0
This release aims to improve UX for borrowers who get liquidated, tweaks the Earn screen to make it clear what happens to BOLD and ETH/LST rewards when choosing between compounding and claiming, and introduces a number of bug fixes and smaller UX improvements. It also adds the ability to redeem BOLD directly in the frontend.
Highlights
Liquidation improvements
The view of liquidated positions on the dashboard has been updated to show more useful information:
Opening the position reveals a new UX for reclaiming the collateral that remains after liquidation, making it clear that doing so will reclaim the remaining collateral of every liquidated position the borrower may have had on the collateral branch in question:
Once the remaining collateral of a liquidated position is reclaimed, it no longer continues to clutter the dashboard. Instead, it will continue to be viewable under a new section on the dashboard that's collapsed by default:
Earn screen improvements
Previously, BOLD rewards were compounded by turning on "Compound BOLD rewards" on the "Claim rewards" panel. This was unintuitive, because nothing gets paid out when compounding's enabled. What's worse, the frontend incorrectly stated that ETH/LST gains would be paid out regardless of choosing to compound or not.
This release introduces separate panels for claiming vs. compounding, with language that correctly explains what happens to the available BOLD and ETH/LST:
yBOLD in the frontend
yBOLD is now shown as an Earn venue on the dashboard:

It is also available on the Earn screen:
Clicking on yBOLD opens the vault in Yearn's app in a new tab.
Redemption
BOLD can now be redeemed for the underlying ETH/LSTs directly in the frontend:
The new "Redeem" screen is not featured in the main navigation bar of the frontend, as it's not intended to be a primary venue for exchanging BOLD. Instead, it is available through a footer link:
Upgrade instructions
Checkout the latest version:
git fetch origin
git checkout @liquity2/app-v1.9.0Install the new dependencies:
pnpm installRebuild the app:
cd frontend/app
pnpm buildAPI changes
Initiative information
A new endpoint has been added to the API exposing information about registered governance initiatives: https://api.liquity.org/v2/governance/initiatives.json.
Currently, the following fields are included:
isBribeInitiative: whether the initiative is an instance ofBribeInitiative.bribeToken: the address of the ERC-20 token that the initiative may pay to voters (in addition to BOLD), ornullif the initiative isn't an instance ofBribeInitiative.
Phased out otherPrices
The otherPrices field was introduced in v1.7 as a workaround for #1052. As the underlying issue has since been addressed, otherPrices has now been phased out from the API.
Subgraph changes
The subgraph has been updated to include more data about liquidations and address an issue where a Multiply position could turn into a Borrow position upon adjustment.
BorrowerInfo entity
New fields added:
collSurplusBalance: array of the borrower's collateral surplus balances, that is: the amount of collateral remaining after liquidation per collateral branch (ETH, wstETH, rETH) that is yet to be claimed.lastCollSurplusClaimAt: array of UNIX timestamps of the last time the borrower claimed their collateral surplus on each collateral branch.
Trove entity
New fields added:
liquidatedColl: the amount of collateral the Trove held at the time of liquidation, ornullif it hasn't been liquidated.liquidatedDebt: the amount of debt the Trove had at the time of liquidation, ornull.collSurplus: the amount of collateral transferred to the collateral surplus pool when being liquidated, ornull.priceAtLiquidation: price of collateral at the time of getting liquidated, ornull.
In addition, the field mightBeLeveraged is no longer updated on Trove adjustments. In other words: leveraged status is only inferred when the position is opened.
Contract changes
This release introduces a new contract: RedemptionHelper. It is a wrapper around CollateralRegistry's redeemCollateral() with added slippage protection in the form of a new parameter _minCollRedeemed. It also adds functions that frontends can use to easily simulate redemptions.
The new contract was audited by Coinspect.
App changes
- Phase out otherPrices field from stats (#1136)
- Merge learn more links in a toggle on voting screen (#1133)
- Add Links to Trove Explorers from DeFi Saver and Rails.Finance (#1139)
- Fetch initiatives from API with subgraph fallback (#1145)
- Exponential backoff when waiting for subgraph (#1150)
- Disable interest rate updates for zombie troves (#1146)
- Better error handling (prevent TXs that would fail) (#1144)
- Display yBOLD into EarnTable and EarnPoolsListScreen (#1152)
- Fix not being able to disable yBOLD (#1160)
- Fix Sepolia addresses in .env (#1162)
- Improve tx results screen for Leverage Up and Close to collateral (#1161)
- Make delegators hideable (#1166)
- Better error handling (prevent TXs that would fail) on the Multiply Screen (#1163)
- Clarify what happens to liquidation gains (#1170)
- Ability to redeem BOLD (#1175)
- Improve view of liquidated troves (#1147)
- Banner to bring more LQTY to V2 governance (#1171)
Full Changelog: https://github.com/liquity/bold/compare/@liquity2/app-v1.8.1...@liquity2/app-v1.9.0
@liquity2/app-v1.8.1
This release introduces the Multiply feature which allows users to seamlessly multiply their exposure to ETH, wstETH or rETH. It also ships a number of UX improvements and bug fixes.
Note: the version number of the previous release v1.8.0 was incorrectly set to v1.7.0. This new v1.8.1 version simply corrects that mistake, and has no other code changes. What follows is the original release notes of the v1.8.0 release.
Highlights
Multiply
The new Multiply feature allows users to multiply their exposure to ETH/wstETH/rETH with one click. Internally, this works by minting and selling fresh BOLD to buy more of the chosen asset, then depositing it in the position.
The exposure of an existing position can also be easily increased or decreased, by adjusting its multiplier — either directly or through selecting a liquidation price. Increasing the multiplier works similarly to opening a new position. When the multiplier is decreased, part of the position's ETH/wstETH/rETH is sold in exchange for BOLD, which is then used to decrease the position's debt.
Close from collateral
In addition to repaying with BOLD, a Borrow or Multiply position can also be closed using the ETH/wstETH/rETH deposited in the position itself. This allows the user to close such a position even when holding no BOLD in their wallet. Behind the scenes, some of the position's collateral is used to buy the necessary BOLD to repay its outstanding debt.
Browse interest rate delegates
Users who wish to delegate their interest rates no longer have to lookup and copy+paste delegate addresses from the Liquity docs, as the frontend can now show a list of preconfigured delegates out-of-the-box.
Voting preview
The Voting panel now shows a preview of how the user's votes affect the relative votes received by each initiative.
Precise debt-in-front
Previously, the frontend handled debt-in-front calculation in discrete increments of 0.1%. As a result, the debt-in-front figures were inaccurate (too low) for interest rates that weren't exact multiples of 0.1%, and for positions that weren't closest to redemption within their own interest rate "brackets" of 0.1%.
This has been addressed, so the frontend now always calculates:
- the exact amount of debt that will be in front when creating a new position or adjusting the interest rate of an existing one,
- the exact amount of debt in front of an (untouched) existing position.
In addition, the frontend now also takes into account "pending" debt when calculating debt-in-front, which was previously ignored. Pending debt includes all the interest that has been accrued by each position since it was last adjusted.
Upgrade instructions
Checkout the latest version:
git fetch origin
git checkout @liquity2/app-v1.8.1Install the new dependencies:
pnpm installRebuild the app:
cd frontend/app
pnpm buildConfiguration changes
New environment variables
The following environment variables have been added as configuration options when building the app. They each have reasonable default values, so no action is needed unless wanting to override the defaults.
NEXT_PUBLIC_KNOWN_DELEGATES_URL
URL to fetch known interest rate delegates from (optional).
# Default
NEXT_PUBLIC_KNOWN_DELEGATES_URL=https://api.liquity.org/v2/known-delegates/ethereum.jsonNEXT_PUBLIC_SUBGRAPH_ORIGIN
(Optional) When using a subgraph URL that's restricted to set of domains which are allowed to execute queries, this must be set to one of the allowed domains. When fetching the schema of the subgraph during build, this domain will be sent as HTTP origin. Otherwise, the build will fail.
# Example
NEXT_PUBLIC_SUBGRAPH_ORIGIN=https://example.comAPI changes
- Add Merkl Uniswap v4 to known initiatives.
- Add new endpoint for know interest rate delegates.
Subgraph changes
- Refactor the subgraph to avoid calls. This fixes an issue with the subgraph sometimes indexing outdated data.
- Add new fields to
InterestRateBracketto facilitate the calculation of pending interest within brackets.
Contract changes
- Add a new helper contract that allows the frontend to calculate debt-in-front precisely.
- Add a new helper contract that can quote BOLD:coll and coll:BOLD rates in exact-input or exact-output mode, used by the Multiply feature.
App changes
- Fix untouched votes being re-cast incorrectly (#1101)
- Fix allocations not being refreshed on account change (#1102)
- Change loan card layout to 2 columns and 3 rows to avoid clipping (#1095)
- Fix spurious reset of voting state (#1105)
- Add default address for SBOLD (#1110)
- Ability to turn off
SBOLDandSAFE_API_URL(#1111) - Preview effect of allocation changes on vote (#1099)
- Fix incorrect calculation of remaining voting power (#1119)
- Precisely calculate debt-in-front (#1116)
- Allow impersonating an origin when fetching subgraph schema (#1120)
- Show precise debt-in-front when interest rate is untouched (#1121)
- Fix bribe info being shown when no bribes are available (#1122)
- Shouldn't allow upvotes during downvote-only period (#1115)
- Ability to set precise interest rate (#1124)
- Fix regression: increase in upvotes never allowed (#1125)
- Delegates metadata (#1127)
- Don't reset LQTY allocations on withdrawal (#1128)
- Implement Multiply feature (#1132)
- Take CR limits into account (#1131)
Full Changelog: https://github.com/liquity/bold/compare/@liquity2/app-v1.7.0...@liquity2/app-v1.8.1
@liquity2/app-v1.8.0
@liquity2/app-v1.7.0
This release aims to improve the usability of the app in a few key areas, and includes a significant number of bug fixes as well as some performance improvements.
Highlights
Staking and Voting
The voting page now shows the percentage of votes received by each initiative. For initiatives that are bribing, the USD value of the current epoch's bribes is now shown.
Relative voting power calculation fix (#1078)
Previous versions of the app displayed the user's relative voting power only as a percentage of the total voting power allocated to upvotes (staked LQTY that is used for upvoting). However, the actual total voting power should also include unallocated voting power (staked LQTY that is not voting) and voting power used for downvotes. As a result, the numbers were inflated. This has been fixed in v1.7. As a result, users will see lower relative voting power percentages than before.
Note: This change does not affect users' absolute voting power, so users still have the same amount of voting power as before.
BOLD yield sources
A new widget has been added to the Dashboard, showcasing the current top 3 external sources of yield for BOLD by APR%, and a link to more yield sources on Dune.
Redeemed loans
Loans that have been affected by redemptions now display some basic statistics about the redemptions incurred, such as:
- the number of times the loan was affected by redemptions since the last user action,
- the amount of BOLD repaid by redemptions,
- the amount of collateral removed by redemptions.
These statistics are reset when the borrower adjusts or closes their loan.
Upgrade instructions
Checkout the latest version:
git fetch origin
git checkout @liquity2/app-v1.7.0Install the new dependencies:
pnpm installRebuild the app:
cd frontend/app
pnpm buildConfiguration updates
New environment variables
The following new environment variables have been added as configuration options when building the app. They each have reasonable default values, meaning no action is needed unless wanting to explicitly override these defaults.
NEXT_PUBLIC_LIQUITY_GOVERNANCE_URL
Optional base URL for fetching Liquity governance allocation snapshots, such as those generated by api.liquity.org. Defaults to https://api.liquity.org/v2/governance when undefined. When set to an empty string, the data will be fetched from the subgraph.
# Example
NEXT_PUBLIC_LIQUITY_GOVERNANCE_URL=https://api.liquity.org/v2/governanceNEXT_PUBLIC_TROVE_EXPLORER_<N>
An optional set of names and URLs (of the form <name>|<url>) of external apps capable of showing a Trove's history. May include the parameters {branch} and {troveId}, which will be replaced by the name of the Trove's collateral type (ETH, wstETH or rETH) and its numeric ID (the NFT's token ID), respectively.
Currently, only the indices _0 and _1 are supported.
Defaults to the following values:
NEXT_PUBLIC_TROVE_EXPLORER_0=DeFi Explore|https://liquityv2.defiexplore.com/trove/{branch}/{troveId}
NEXT_PUBLIC_TROVE_EXPLORER_1=Rails|https://rails.finance/explorer/trove/{troveId}/{branch}To disable a Trove explorer, set the corresponding variable to an empty string in .env.local.
API changes
The Liquity API has been updated with the following changes:
- Added new endpoints exposing snapshots of Liquity governance allocation history.
- Added the price of SMARDEX to
ethereum.json. As a workaround for #1052, the new price is temporarily exposed under a new fieldotherPrices. - Added the top 3 external yield opportunities for BOLD to
ethereum.jsonunder the new fieldboldYield.
Subgraph changes
The subgraph was updated with backwards compatible changes to facilitate basic redemption statistics of loans in the app, and to enable correct calculation of voting power given a limitation of the backend.
App changes
- Make bribe claiming more scalable (#1041)
- Greatly reduce number of queries upon start (#1048)
- Fix redeemed label missing from partially redeemed Troves (#1049)
- De-duplicate latest Trove data query (#1051)
- Fix critical functions broken when adding new price to API (#1054)
- Ability to adjust ETH Troves in one transaction (#1056)
- Fix not being able to adjust fully redeemed Troves (#1057)
- Fix incorrect bribes shortly after epoch flip (#1060)
- Exclude user's own debt from debt-in-front calculation (#1059)
- Show USD value of bribes (#1062)
- Fix cast votes not being disabled when not changing anything (#1069)
- Show percentage of votes received by initiatives (#1066)
- Don't pre-select average interest rate for existing loans (#1074)
- Fix total voting power calculation (#1084)
- Fix unallocated LQTY not being reflected in user voting power (#1085)
- Fix incorrect voting power shares after staking fresh LQTY (#1086)
- Fix clipping of percentage on votes panel (#1087)
- Fix voting power calculation when client clock is behind latest block timestamp (#1088)
- Improve view of redeemed Trove (#1063)
- Add top 3 external yield opportunities from Dune (#1089)
Full Changelog: https://github.com/liquity/bold/compare/@liquity2/app-v1.6.1...@liquity2/app-v1.7.0
@liquity2/app-v1.6.1
This is a hotfix release for v1.6.0. See the release notes there for upgrade instructions and the full list of changes introduced in v1.6.
Changes
- Clarify where bribes can be claimed (#1032)
Full Changelog: https://github.com/liquity/bold/compare/@liquity2/app-v1.6.0...@liquity2/app-v1.6.1
@liquity2/app-v1.6.0
This release introduces bribe claiming, adds an indicator for connection issues, and includes various UI improvements and bug fixes.
Upgrade instructions
Checkout the latest version:
git fetch origin
git checkout @liquity2/app-v1.6.0Install the new dependencies:
pnpm installRebuild the app:
cd frontend/app
pnpm buildChanges
- Disable voting on initiatives in warm-up period (#1006)
- Hide new initiatives that are still in warm-up mode (#1015)
- Always show the total active stake (#1008)
- Force text wrap on the error box (#1009)
- Add indicator for connection issues (#1007)
- Fix division by zero on staking summary (#1023)
- Fix connection indicators not working (#1018)
- Enable bribe claiming (#1022)
- Fix unclaimable bribes if no longer voting (#1026)
- Fix wrong labels on inactive initiatives (#1025)
- Fix debt-in-front being underestimated (#1027)
Full Changelog: https://github.com/liquity/bold/compare/@liquity2/app-v1.5.0...@liquity2/app-v1.6.0
@liquity2/app-v1.5.0
This release introduces bribes display for governance initiatives, improves redemption risk calculations, adds BOLD compounding for Earn rewards, and includes various UI improvements and bug fixes.
Upgrade instructions
Checkout the latest version:
git fetch origin
git checkout @liquity2/app-v1.5.0Install the new dependencies:
pnpm installRebuild the app:
cd frontend/app
pnpm buildChanges
- Bribes (#997)
- BorrowScreen: show a warning when TCR < CCR (#1002)
- Show initiative votes / vetos with the voting power percentages (#1001)
- App: add useRedemptionRisk() (#1000)
- Calculate debt-in-front per-branch (#995)
- App: make the redemption risk relative to the debt per rate (#992)
- Earn: compound BOLD rewards (#996)
- sBOLD APR fixes (#985)
- Earn claim panel: fix gas estimate (#993)
- App: rely on the subgraph for the borrower of a liquidated position (#989)
- Update LUSD icon (#999)
- Various app fixes (#998)
- Upgrade frontend/* dependencies (#1003)
Full Changelog: https://github.com/liquity/bold/compare/@liquity2/app-v1.4.0...@liquity2/app-v1.5.0
@liquity2/app-v1.4.0
This release introduces sBOLD support, improvements around staking, and various UI enhancements.
Upgrade instructions
Checkout the latest version:
git fetch origin
git checkout @liquity2/app-v1.4.0
Install the new dependencies:
pnpm install
Set the sBOLD contract in your .env.local file (Ethereum only):
NEXT_PUBLIC_SBOLD=0x50Bd66D59911F5e086Ec87aE43C811e0D059DD11
Rebuild the app:
cd frontend/app
pnpm build
Configuration Updates
New Environment Variable
A new optional environment variable SBOLD can be set to specify the sBOLD contract address.
API Changes
- Prices now fetched from the stats API instead of CoinGecko
NEXT_PUBLIC_COINGECKO_API_KEYcan now be removed from your .env configuration
Changes
- sBOLD support (#965)
- Staking: screen + tx flow updates (#961)
- InterestRateField: reset delegate when changing branch (#983)
- Add default ICP delegators (#982)
- Fetch prices from the stats API (#979)
- Default ownerOf() calls to the zero address (#978)
- Subgraph: query liquidated troves (#977)
- AccountButton: switch chain automatically (#976)
- Subgraph: mark initiatives as registered or not (#975)
- sBOLD disabled mode (#974)
- Add BOLD total supply (#963)
- Earn Screen: fix visual jump on initial load (#962)
- Home Screen: pick the two fork icons at random (#980)
- Bottom Bar tokens: add etherscan links (#966)
- Subgraph: add previousOwner (#968)
- Tabs: visual tweaks (#967)
- Modal: fix overlay click (#954)
- App & UI kit: move to .oxlintrc.json files + fix all lint warnings (#952)
- BorrowScreen: fix header typo (BOLD <> ETH) (#951)
- App: remove the demo mode (#950)
- App & UI kit build tweaks (#949)
- Remove unused fields from the Delegate type (#981)
- TransactionFlow: discard any current flow before starting a new one (#936)
- About modal: use readonly inputs for values (#935)
- Upgrade gallery dependencies (#953)
- Various minor layout fixes and wording improvements
Full Changelog: https://github.com/liquity/bold/compare/@liquity2/app-v1.3.1...@liquity2/app-v1.4.0



