Skip to content

Releases: liquity/bold

@liquity2/app-v1.10.0

16 Dec 06:19
eb92333

Choose a tag to compare

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

image

Improved Fee Transparency

Loan opening fees are now displayed on the initial borrow screen and are applied to the frontend calculations.

image

Redemption fee application is now clearer and easier to understand on the Redeem screens.

image

Fork Farming Vaults

Forks Airdrop Farming Vaults links are now directly exposed in the dashboard.

image

Safety Mode Banner

A new banner alerts users when the protocol enters Safety Mode.

image

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=false

NEXT_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.json

NEXT_PUBLIC_LEGACY_CHECK

Enable a banner warning users of remaining positions in Liquity V2 Legacy. Optional. Defaults to true.

# Example
NEXT_PUBLIC_LEGACY_CHECK=false

NEXT_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=false

NEXT_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=false

NEXT_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=false

API 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

Full Changelog: https://github.com/liquity/bold/compare/@liquity2/app-v1.9.1...@liquity2/app-v1.10.0

@liquity2/app-v1.9.1

03 Dec 09:45
7a260d3

Choose a tag to compare

This is a hotfix release to address an issue where the remaining collateral of fully redeemed positions couldn't be reclaimed.

App changes

Full Changelog: https://github.com/liquity/bold/compare/@liquity2/app-v1.9.0...@liquity2/app-v1.9.1

@liquity2/app-v1.9.0

14 Nov 07:43
ae2aac8

Choose a tag to compare

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:

image

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:

image

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:

image image

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:

image image

yBOLD in the frontend

yBOLD is now shown as an Earn venue on the dashboard:
image

It is also available on the Earn screen:

image

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:

image

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:

image

Upgrade instructions

Checkout the latest version:

git fetch origin
git checkout @liquity2/app-v1.9.0

Install the new dependencies:

pnpm install

Rebuild the app:

cd frontend/app
pnpm build

API 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 of BribeInitiative.
  • bribeToken: the address of the ERC-20 token that the initiative may pay to voters (in addition to BOLD), or null if the initiative isn't an instance of BribeInitiative.

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, or null if it hasn't been liquidated.
  • liquidatedDebt: the amount of debt the Trove had at the time of liquidation, or null.
  • collSurplus: the amount of collateral transferred to the collateral surplus pool when being liquidated, or null.
  • priceAtLiquidation: price of collateral at the time of getting liquidated, or null.

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

29 Sep 08:13

Choose a tag to compare

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.

image image

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.

image

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.

image

Voting preview

The Voting panel now shows a preview of how the user's votes affect the relative votes received by each initiative.

image

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.1

Install the new dependencies:

pnpm install

Rebuild the app:

cd frontend/app
pnpm build

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_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.json

NEXT_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.com

API changes

Subgraph changes

  • Refactor the subgraph to avoid calls. This fixes an issue with the subgraph sometimes indexing outdated data.
  • Add new fields to InterestRateBracket to 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 SBOLD and SAFE_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

29 Sep 08:06

Choose a tag to compare

@liquity2/app-v1.7.0

12 Aug 10:48

Choose a tag to compare

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.

image

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.

image

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.

image

Upgrade instructions

Checkout the latest version:

git fetch origin
git checkout @liquity2/app-v1.7.0

Install the new dependencies:

pnpm install

Rebuild the app:

cd frontend/app
pnpm build

Configuration 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/governance

NEXT_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:

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

11 Jul 11:37

Choose a tag to compare

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

11 Jul 08:52

Choose a tag to compare

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.0

Install the new dependencies:

pnpm install

Rebuild the app:

cd frontend/app
pnpm build

Changes

  • 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

28 Jun 17:26
@liquity2/app-v1.5.0
49910d8

Choose a tag to compare

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.0

Install the new dependencies:

pnpm install

Rebuild the app:

cd frontend/app
pnpm build

Changes

  • 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

06 Jun 19:17
@liquity2/app-v1.4.0
dca7e0d

Choose a tag to compare

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_KEY can 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