# Adversarial review: Liquity v2 rates and redemptions

Review date: **2026-10-29 UTC**. Input report SHA-256: `b730906a4258bb99de8cc913b4ccddb2bf25bafa17be22aa9e2b27c4664259f8`; input dataset SHA-256: `69c77cdd5844d10bdf5d766d55e5ec1daba17f826ff83daf30fd7b3ff238fdeb`.

**[inference] Overall assessment:** The report provides a partly supported mechanism overview and incident chronology, but does not establish how borrower-set rates and redemptions behaved in practice through October 2026. Its most consequential error is the claim that troves compete in one rate-ranked redemption queue across collateral branches. Its cited documentation explicitly describes a different allocation rule. Recommendations about minimum launch size, fee superiority, and an externally indexed rate floor exceed the evidence supplied.

**[fact] Method:** I read both inputs, selected ten claims supporting the mechanism comparison and design conclusions, and opened their cited sources. Supplemental primary sources are identified below. All linked pages were read or attempted on 2026-10-29. Current documentation is an undated, mutable version unless a publication date is specified. The supplemental code snapshot is pinned to commit `d262669ef3c4d37bf0544df3bb2624c07b8a5ee0`; it is not a verification of deployed bytecode or historical state. “Holds” means the source supports the stated proposition, not that the reviewer independently reproduced its underlying measurements. “Unsourced” means the cited evidence does not establish the proposition, not that the proposition is necessarily false. Source contents are marked **fact**, reviewer deductions **inference**, and unresolved verification **uncertain**.

## Ten consequential claims

### 1. Borrower-selected rates and the cost of changing them

**Claim as written — report §1, c2; expanded in §5:**

> Liquity v2 (BOLD) replaces the fixed fee with a continuous, borrower-set annual interest rate per trove (any value the borrower chooses, no protocol-wide rate curve), multiple collateral "branches" (initially WETH, wstETH, rETH on Ethereum mainnet), and redemptions that target troves by **lowest interest rate first**, not lowest collateral ratio. A one-time "upfront fee" equal to roughly 7 days of interest is charged on opening/adjusting a trove to discourage rate-gaming.

**What the cited sources actually say [fact]:** [Interest Rate Management](https://www.liquity.org/blog/interest-rate-management-in-liquity-v2), displayed date **2024-10-30**, identifies those collateral types and says rate-adjustment fees apply when changes occur more frequently than every seven days. Its current text also includes a chart dated January 21, 2025, so the displayed publication date does not freeze its contents. The [borrowing FAQ](https://docs.liquity.org/v2-faq/borrowing-and-liquidations), under loan costs and rate adjustment, specifies seven days of the **collateral branch's average interest**, and a premature-adjustment fee inside a seven-day interval. The cited [risk disclosure](https://docs.liquity.org/v2-documentation/risk-disclosure), under MEV, distinguishes opening/increasing debt from premature rate adjustments. The [March 21, 2024 design article](https://www.liquity.org/blog/liquity-v2-why-user-set-interest-rates) supports borrower-selected rates and rate-based priority.

**Supplemental contract check [fact]:** [Constants.sol, lines 48–49](https://github.com/liquity/bold/blob/d262669ef3c4d37bf0544df3bb2624c07b8a5ee0/contracts/src/Dependencies/Constants.sol#L48) bounds annual rates at **0.5%–250%** in this code version. [BorrowerOperations.sol](https://github.com/liquity/bold/blob/d262669ef3c4d37bf0544df3bb2624c07b8a5ee0/contracts/src/BorrowerOperations.sol) enforces those limits and conditions the fee for changing a standalone trove's rate on the cooldown.

**Verdict — overstated [inference].** Borrower-set rates and the three Ethereum collateral markets hold. “Any value” is not an accurate implementation description. Neither every adjustment nor every debt reduction incurs this fee. The seven-day duration is available directly in the primary sources; §5's uncertainty about that duration is unnecessary. These distinctions matter to the report's account of front-running costs. Dataset c2's `2024-02-01` date is not the cited management article's publication date or the launch date of the reviewed implementation.

### 2. Delegation exists; its measured effects remain unproved

**Claim as written — report §2.1, c4:**

> Liquity's documentation explicitly flags a *delegation* layer: borrowers can hand rate-setting to a "delegate" (automated manager) rather than set a static rate themselves, intended to let smaller or less attentive borrowers track the frontier without manual adjustment.

**What the cited source actually says [fact]:** The [redemptions/delegation FAQ](https://docs.liquity.org/v2-faq/redemptions-and-delegation), “What is delegation of interest rates?”, permits third-party managers, automated contract strategies, and delegation to another wallet. Managers can charge a service fee; automation is one option. This concerns BOLD rate management on Ethereum. The live page supplies no historical experiment comparing managed and manually operated troves.

**Verdict — holds [inference].** Delegation and the intended convenience are documented. The report correctly treats its empirical effect on clustering and reaction speed as unanswered. Dataset c4's `2024-01-01` is not authenticated by this undated current page; it should not be read as a verified feature-release date.

### 3. The LUSD Q3 2023 price figures

**Claim as written — report §3.1, c7:**

> Liquity's own Q3 2023 report states LUSD traded near $1.00 through July–August 2023 (average peg deviation ~0.0108 in July, ~0.0084 in August), then drifted to roughly $0.995, occasionally touching $0.99, in September 2023, coinciding with "a series of redemptions."

**What the cited source actually says [fact]:** The [Q3 report](https://www.liquity.org/blog/liquity-q3-2023-report), published **November 12, 2023**, prints **0.0108** and **0.0084** as July and August “peg deviation” values. It describes near-parity trading through July and **early** August, fluctuations during August, September observations around **$0.995/$0.99**, and redemptions. It does not define those two deviation figures as averages, supply their units or calculation method, or identify a trading venue in the paragraph.

**Verdict — overstated [inference].** The reported figures and qualitative underpeg are real, but “average,” the extension to all August, and any conversion into basis points are not established. A protocol narrative is insufficient to reconstruct an event-aligned price series. Dataset c7's `2023-10-01` is neither the source publication date nor a specified observation timestamp. These are LUSD observations about the Ethereum protocol, not chain-specific DEX measurements.

### 4. The competing-yield explanation for LUSD selling pressure

**Claim as written — report §3.1, c8:**

> Liquity's head of operations attributed the underpeg to MakerDAO's August 2023 move to offer an 8% DAI Savings Rate, which pulled demand away from LUSD and incentivized a "carry trade" (mint LUSD cheaply, swap into higher-yield DAI), with arbitrage bots and softer overall stablecoin demand also cited as contributing factors.

**What the cited source actually says [fact]:** I opened [The Defiant article](https://thedefiant.io/news/defi/lusd-briefly-spikes-to-usd1-03-after-trading-below-peg-since-july). Its directly rendered page exposed only the heading and summary; the search-indexed body attributed the explanation to **Bojan Peček** and included the 8% DAI yield, cheap LUSD borrowing, bots, and reduced stablecoin demand. This is an attributed explanation of Ethereum LUSD's second-half-2023 experience. A supplemental primary check, Liquity's [Q3 report](https://www.liquity.org/blog/liquity-q3-2023-report), independently describes the same DAI carry trade and says the 8% DSR was brief before falling to **5%**.

**Verdict — holds [inference].** The wording accurately presents an attribution. It does not prove a unique causal explanation or imply that 8% persisted for months. **[uncertain]** The accessible article did not authenticate dataset c8's `2023-10-01` date; I cannot certify that as its publication date.

### 5. Redemptions reached higher-collateralized LUSD positions

**Claim as written — dataset c9, corresponding to report §3.1:**

> As LUSD traded persistently below peg in H2 2023, redemption volume rose and the average collateral ratio of redeemed troves increased, i.e. redemptions began reaching better-collateralized (not only marginal) positions.

**What the cited source actually says [fact]:** [Parsec Weekly #43](https://parsec.substack.com/p/parsec-weekly-43) redirects to [its current publication address](https://blog.hepworthiron.capital/p/parsec-weekly-43). Browser extraction failed, but a direct HTTP read retrieved the article and its publication metadata: **October 27, 2023**, not dataset c9's November 1. Its LUSD section expressly describes an uptick in redemptions and a rising average collateralization ratio at redemption. It is a qualitative observation about Ethereum Liquity v1; the retrieved prose supplies no exact redemption count or distribution.

**Verdict — holds [inference].** The cited qualitative observation is supported. The report's subsequent language about concentrating “losses” goes further: the source does not quantify borrower losses or establish an optimal redemption fee. Being redeemed against and suffering a contemporaneous accounting loss are different propositions.

### 6. One system-wide rate ranking determines branch redemption shares

**Claim as written — dataset c15; repeated in report §§3.3 and 6.4:**

> Because v2 redemptions rank troves by rate system-wide across collateral branches, the branch whose borrowers sustain the lowest average rate (e.g. yield-bearing collateral subsidizing borrower carry) should be expected to absorb a disproportionate share of redemptions; no branch-level redemption data was found to confirm this.

**What the cited source actually says [fact]:** The [redemptions FAQ](https://docs.liquity.org/v2-faq/redemptions-and-delegation), under collateral splitting, allocates redemptions in proportion to each branch's **outside debt: branch debt minus its Stability Pool deposits**. Rate ordering then applies **within each collateral market**. Its example assigns outside debts of 100/50/100 BOLD a **40%/20%/40%** redemption split. Ordinary redeemers do not freely choose the collateral mix. Supplemental [CollateralRegistry.sol, `redeemCollateral`](https://github.com/liquity/bold/blob/d262669ef3c4d37bf0544df3bb2624c07b8a5ee0/contracts/src/CollateralRegistry.sol#L92) implements branch allocation using unbacked portions, with a branch-debt fallback when those portions are all zero; it does not merge branches into a rate-ranked list.

**Verdict — wrong [inference].** The premise is contradicted by the exact source cited. Lower average rates do not mechanically allocate more system-wide redemptions to a branch. Rates can have indirect economic effects, but the report supplies no measurements demonstrating them. Marking this “inference” does not repair the incorrect factual premise. The uncertainty about redeemers' observed preferences can remain, but their normal lack of direct collateral choice should have been stated.

### 7. Ethereum mainnet relaunch on May 19, 2025

**Claim as written — report §4, core timeline portion of c19:**

> **May 19, 2025:** Liquity V2 (redeployed) went live on Ethereum mainnet; the pre-incident deployment became "legacy," with users encouraged to migrate positions to the new contracts.

**What the cited sources actually say [fact]:** [Redeployment Updates](https://www.liquity.org/blog/liquity-v2-redeployment) records the legacy-deployment transition, reopening on new contracts, and May 19 Ethereum launch. The independently opened [May 19 launch announcement](https://www.liquity.org/blog/liquity-v2-is-live) confirms deployment following a **five-week contest with 800+ researchers** and multiple re-audits. The old `stability-pool-issue` URL redirects to the updates page; these are not two independent incident accounts.

**Verdict — holds [inference].** The selected timeline claim is supported. Two qualifications to adjacent claims matter: the report does not substantiate the motive “to avoid rewarding exploit-adjacent behavior” for the February 12 rewards cutoff; and c19's list should not imply that all five named firms re-audited the May patch. The supplemental [audit register](https://docs.liquity.org/v2-documentation/technical-docs-and-audits) dates Recon/Certora/Coinspect core work to **2024**, while listing ChainSecurity work through May 2025 and Dedaub's May 2025 fixes review. Audit scope and timing must remain distinct.

### 8. The incident establishes that peg behavior was unaffected

**Claim as written — report §4, c21:**

> The incident was a **fund-safety bug in the yield/Stability-Pool subsystem**, not a redemption-mechanism or peg failure: Liquity stated BOLD itself remained "fully backed and redeemable" throughout, and Borrow/Multiply/Stake (i.e., trove-opening, interest-rate-setting, and redemption machinery) were explicitly described as unaffected.

**What the cited source actually says [fact]:** The [incident updates](https://www.liquity.org/blog/stability-pool-issue) contain February 12–13 assurances about backing, redeemability, unaffected functions, and no known impacted users; February 18 warns of possible loss of Stability Pool funds and advises exit. These are statements about the initial Ethereum deployment and the team's then-current understanding. The updates do not provide a continuous BOLD market-price series or show that rates and redemption volumes were unchanged throughout the episode.

**Verdict — overstated [inference].** The documented technical scope and attributed assurances hold. An unexploited accounting vulnerability is not itself evidence that the redemption algorithm failed. Equally, backing and operational redeemability do not demonstrate a maintained secondary-market peg. “Throughout” and the categorical exclusion of peg effects require evidence the report expressly says it lacks. The incident supports a contract-safety lesson; it does not establish the rate floor recommended in §6.3.

### 9. Evidence supports a periodically reviewed rate floor tied to external yields

**Claim as written — report §6.3; no matching complete dataset claim:**

> The evidence therefore supports setting a rate floor with reference to prevailing on-chain risk-free yields at launch, reviewed periodically, rather than a fixed constant — but it does not supply a specific number, and none was requested.

**What the referenced evidence actually says [fact]:** This recommendation points back to §4's [incident account](https://www.liquity.org/blog/liquity-v2-redeployment), §3.2's [risk disclosure](https://docs.liquity.org/v2-documentation/risk-disclosure), and the 2023 competing-yield episode examined above. They establish a contract vulnerability, conditional confidence/bad-debt risks, and an explanation for LUSD selling pressure. None compares fixed and externally indexed minimum borrower rates or defines an on-chain “risk-free” benchmark. Supplemental [protocol constants](https://github.com/liquity/bold/blob/d262669ef3c4d37bf0544df3bb2624c07b8a5ee0/contracts/src/Dependencies/Constants.sol#L48) instead exhibit a fixed **0.5%** minimum in the reviewed code version; this is a design parameter, not evidence that it is optimal.

**Verdict — unsourced [inference].** A hypothesis worth evaluating is presented as evidence-backed parameter policy. The report has no observed rate distribution, Stability Pool yield comparison, peg-response estimate, or floor-policy comparison supporting this choice. The original brief explicitly asks what rate floor the evidence supports; it does not require inventing a numeric answer, but “none was requested” mischaracterizes that question.

### 10. Redemption is one-sided, but the whole protocol has no upper-side arbitrage

**Claim as written — report §6.5, c26:**

> Redemption-based mechanisms are a one-sided, below-peg defence: a BOLD/LUSD-style redemption only becomes profitable, and therefore only self-corrects the peg, when the stablecoin trades **below** $1 (redeemers buy cheap stablecoin and redeem for $1 of collateral). There is no symmetric on-chain arbitrage forced by the core protocol when the stablecoin trades **above** $1 — the only lever v2 adds is borrowers voluntarily *lowering* rates to make new borrowing (new supply) more attractive, which is a slower, discretionary, supply-side response, not a hard arbitrage.

**What the cited sources actually say [fact]:** The cited [risk disclosure](https://docs.liquity.org/v2-documentation/risk-disclosure) describes downward peg protection; the [March 21, 2024 article](https://www.liquity.org/blog/liquity-v2-why-user-set-interest-rates) predicts borrowers lowering rates above parity and increasing them below. Neither measures adjustment speed. Supplemental current [v1 redemption documentation](https://docs.liquity.org/liquity-v1/faq/lusd-redemptions) explicitly identifies both a redemption floor and an MCR-based upper arbitrage boundary. It also specifies a redemption fee, so profitability requires a sufficient discount, not merely any price below $1.

**Verdict — overstated [inference].** The central, narrower conclusion **holds**: redemption itself provides no tight upper defense at $1. However, the categorical absence of core-protocol arbitrage at any above-parity price is too broad. V1 documents an upper boundary associated with its 110% minimum collateral ratio, economically distinct from tight parity and subject to fees and execution conditions. That boundary does not establish an equally tight defense for BOLD or any fork. A separate upper-side mechanism may be necessary for imdUSD's intended tolerance, but the evidence does not validate the suggested hook implementation.

## Conclusions that do not follow from the evidence

1. **[inference] A minimum branch size is established as a launch gate (§6.1).** Stress-testing redemption capacity is sensible, but a 2023 LUSD narrative does not identify a minimum viable dollar amount, wave-to-branch ratio, or launch threshold. The asserted inverse relationship between risk and market depth is not estimated. Collateral capacity, stablecoin liquidity, collateral exit liquidity, and arbitrage profitability are different constraints. No BOLD or fork launch comparison is supplied to separate them.

2. **[inference] A nonzero fee plus borrower-set rates is empirically superior (§6.2).** The report gives no matched comparison of fee settings, redemption waves, or peg recovery. A fee throttles redemptions but also widens the discount at which redemption is profitable. Describing this trade-off does not establish which policy is better for a thin market. V1's variable borrowing fee already supplies some issuance feedback; the report's “fixed 0.5%” shorthand obscures that. The [v1 borrowing FAQ](https://docs.liquity.org/liquity-v1/faq/borrowing) specifies **0.5%–5%** in normal operation and **0%** in Recovery Mode. Those are documented rules, not measured realized charges in 2023–2026.

3. **[inference] An external-yield-based rate floor follows from the Stability Pool incident (§6.3).** The incident does not connect a low rate floor to the vulnerability. Competing-yield pressure motivates evaluating rate responsiveness, but does not identify the appropriate floor, benchmark, governance cadence, or necessary spread. See claim 9.

4. **[inference] Yield-bearing collateral should absorb more redemptions because its borrowers choose lower rates (§§3.3, 6.4).** This conclusion rests on the incorrect system-wide queue described in claim 6. It must not guide a multi-collateral implementation or monitoring plan as an established Liquity property.

5. **[inference] Tight clustering above a redemption frontier is a demonstrated equilibrium (§2.2).** A plausible incentive is not evidence of an equilibrium distribution, and the report supplies no equilibrium model or empirical test. Different risk tolerances, adjustment fees, delegated strategies, and redemption sizes could support wider distributions. The report properly labels the paragraph inference and acknowledges missing measurements; its “Nash-equilibrium-like” phrasing adds unsupported precision.

6. **[inference] Splitting has no effect because only rate matters (§5).** Equal-rate splitting does not create an obvious escape from a fixed amount of debt redeemed in a simple model. But the premise “not ... trove age” omits a documented tie-break: the [FAQ](https://docs.liquity.org/v2-faq/redemptions-and-delegation) prioritizes the most recently opened or rate-adjusted trove among equal rates. That does not prove profitable splitting; it means the report's categorical reasoning does not establish its absence. Costs, queue placement, and implementation limits remain untested.

7. **[inference] Dynamic hook fees or liquidity shaping can make above-$1 purchases unprofitable and thereby defend parity (§6.5).** No hook specification, reserve/collateral flow, issuance permission, inventory limit, or simulation supports this proposed remedy. Deterring a trade on one AMM is not a demonstrated mechanism for restoring an external market price. The supported conclusion is the need to analyze upper-side supply and liquidity separately.

## Evidence coverage and remaining uncertainty

**[fact] The report explicitly leaves the assignment's central empirical questions unanswered:** no borrower-rate distribution over time; no measured frontier clustering or stress-response speed; no delegate comparison; no dated BOLD redemption wave with volume, affected troves, realized fees, and before/during/after price; no branch redemption breakdown; no substantive fork case study; and no same-year LUSD/BOLD redemption comparison for **2025–October 2026**. Naming these gaps is honest. It does not satisfy an account of behavior “in practice.” The 2023 LUSD discussion and 2025 relaunch do not establish 2026 outcomes.

**[fact] Some claimed research gaps were readily addressable from sources already cited.** The current redemption FAQ documents the fee formula; the supplemental pinned [constants](https://github.com/liquity/bold/blob/d262669ef3c4d37bf0544df3bb2624c07b8a5ee0/contracts/src/Dependencies/Constants.sol#L56) show a **0.5% redemption floor**, **six-hour decay half-life**, `REDEMPTION_BETA = 1`, and a **100% initial base rate**. These are specification values, not a measured transaction's effective fee or evidence of optimal parameters. The FAQ explicitly links the [Liquity Dune dashboard](https://dune.com/liquity/liquity-v2#redemptions); it was not merely an unlinked name. **[uncertain]** My dashboard opening returned a page shell without data, so I do not claim to have reconstructed the missing series.

**[fact] Deployment versions need more careful separation.** The FAQ's linked fee query opens as [“Redemption (7d) (Legacy)”](https://dune.com/queries/4641717/7730245), and its redemption instructions refer to the old registry. The [current contract register](https://docs.liquity.org/v2-documentation/technical-docs-and-audits) identifies the relaunched Ethereum BOLD and registry separately. Any future extraction must distinguish January and May 2025 deployments; a legacy dashboard alone cannot establish post-relaunch behavior. The report's cited [February 13, 2025 Cointelegraph article](https://cointelegraph.com/news/liquity-v2-outflows-17m-investigation-earn-pools) itself states the **January 23, 2025 initial launch**, so leaving that date uncertain was avoidable.

**[uncertain] The precise February vulnerability root cause remains unverified here.** The report is right not to invent one. A supplemental [ChainSecurity assessment dated May 14, 2025](https://reports.chainsecurity.com/Liquity/ChainSecurity_Liquity_Bold_Audit.pdf), §2.2.13, documents changes including a minimum Stability Pool balance and increased precision of its running deposit product. Those are concrete code changes, but I have not established that they exhaust, or uniquely identify, the disclosed February root cause. The report's admission that it did not read the audits is a research limitation, not proof that no technical explanation exists anywhere.

**[fact] Report/dataset attribution is incomplete.** The report promises that every substantive claim mirrors a dataset entry, but §6's fee and rate-floor recommendations have no complete corresponding entries; c27 captures only part of the thin-market conclusion. Several dataset dates are unsupported exact dates rather than clearly distinguished observation/publication/read dates, as identified above. The report marks its upper-side statement “fact,” while c26 marks it “inference.” Sources for general mechanisms do not automatically substantiate historical outcomes or policy recommendations.

**[inference] Acceptance assessment:** attribution and uncertainty labeling are useful, and several important source checks hold. Nevertheless, the report is not sufficient evidence for choosing launch parameters or judging practical BOLD/fork performance. The branch-routing error requires correction before its multi-collateral conclusions can be relied on, and the missing empirical comparisons remain necessary to answer the original question.
