boldbot.io: redemption-bot leaderboard

Liquity V2 · Ethereum mainnet · redemption arbitrage

connecting…

BOLD price before each redemption

Pool mid price in the block before. Each point is one redemption tx.

Bot leaderboard

Senders redeeming via a contract or 3+ times · ranked by net profit after gas and tips

Chart range
Applies to the three charts. Tiles, leaderboard and feed always cover every redemption.

Weekly BOLD redeemed

Weekly net profit USD, after gas and builder tips

Redemption feed

Select a row for a trove-level breakdown of the redemption. Discount BOLD below $1 · Oracle gap collateral market price above Liquity's redemption price · Gross collateral at market minus BOLD bought at market · Gas base fee burned · Tip priority fee + direct coinbase payment to the builder · Margin net profit over BOLD purchase cost.

Branches
How it works

Redemptions establish a price floor for BOLD: any holder can exchange 1 BOLD for USD 1 of collateral, net of a dynamic fee.

BOLD is the USD-denominated stablecoin of Liquity V2, minted against WETH, wstETH and rETH collateral. The protocol guarantees redemption at face value: one BOLD can always be exchanged for USD 1 worth of collateral, less a redemption fee. This mechanism anchors the market price of BOLD from below. When BOLD trades at a discount, acquiring and redeeming it becomes economically attractive, and the resulting demand restores the price.

Redemptions are executed almost exclusively by automated arbitrageurs. A redemption is profitable when the value of the collateral received exceeds the cost of the BOLD redeemed plus fees and transaction costs, which occurs when BOLD trades below par, when the protocol's oracle prices lag the market, or both. This section documents the redemption mechanism as implemented in the contracts, the sources of arbitrage profit, and the methodology behind every figure on the dashboard.

Fee floor
0.5%
plus a base rate driven by redemption volume
Base-rate half-life
6 hours
exponential decay between redemptions
Redemption order
Lowest rate first
troves are processed in ascending interest-rate order
BOLD redeemed
–
cumulative since V2 deployment
Key terms

Definitions used throughout this section

1 · The redemption path

A single call, apportioned across branches and troves

A redemption is initiated with a single call to CollateralRegistry.redeemCollateral(). The registry computes the fee and apportions the amount across collateral branches; each branch's TroveManager then redeems against its troves. Trove interest rates in the diagram are illustrative.

① Fee determination. The registry decays the base rate for the time elapsed since the last fee update, adds the redeemed amount as a fraction of total BOLD supply, and adds the 0.5% floor. The caller specifies a maximum acceptable fee; the transaction reverts if the resulting rate exceeds it. The fee model is described in section 3.

② Allocation across branches. The amount is apportioned pro rata to each branch's unbacked debt, defined as total branch debt minus the BOLD held in its Stability Pool. Redemptions therefore draw primarily on the branches least covered by Stability Pool deposits. A single call redeems at most the aggregate unbacked debt; any excess requires a subsequent call.

③ Trove traversal. Each TroveManager processes troves in ascending order of interest rate. For each trove it cancels debt and withdraws collateral of equal value at the redemption price, until the branch allocation is exhausted. Troves with an individual collateral ratio below 100% are skipped, so a redemption never lowers the collateral ratio of a trove it touches.

④ Settlement. The redeemed BOLD is burned and the collateral, net of the fee, is transferred to the caller. The fee is not collected by the protocol: it remains in the redeemed troves and accrues to their owners.

Edge cases. Branches whose total collateral ratio (TCR) is below the shutdown collateral ratio (SCR: 110% for WETH, 120% for wstETH and rETH), or that have been shut down, are excluded from regular redemptions. Debt on a shut-down branch can instead be cleared through urgent redemptions, which carry no fee and pay a 2% collateral bonus; none have occurred to date. If no eligible branch has unbacked debt, the amount is apportioned pro rata to total branch debt.

2 · Inside a branch

Troves are redeemed in ascending interest-rate order

In the example, a 510 BOLD allocation fully redeems the two lowest-rate troves and partially redeems the third. Troves further up the order are unaffected.

Impact on borrowers. A redeemed borrower's debt is reduced by the value of the collateral withdrawn, measured at the redemption price, and the redemption fee is retained in the trove. The borrower's net equity is therefore unchanged or marginally higher. The cost to the borrower is the loss of collateral exposure, together with any cost of re-establishing the position.

Interest rate as redemption protection. Borrowers set their own interest rate; a higher rate moves a trove further back in the redemption order at the cost of higher interest expense. Sustained redemption activity therefore pushes borrower rates up. Because borrower interest is distributed largely to Stability Pool depositors, higher rates also raise the yield on holding BOLD, which supports the peg.

Zombie troves. A trove left with debt below the 2,000 BOLD minimum is flagged as a zombie. It cannot be operated until its owner restores the debt above the minimum or closes it, and the most recent such trove is processed first by the next redemption, which prevents dust positions from obstructing the order.

3 · The redemption fee

The fee rises with redemption volume and decays over time

fee = 0.5% + baseRate. The base rate records recent redemption volume. Each redemption increases it by the redeemed amount as a fraction of total BOLD supply, and the updated rate applies to the redemption that caused the increase. Between redemptions the base rate decays exponentially with a half-life of 6 hours. The fee is capped at 100%.

Example. With a base rate near zero, redeeming 0.5% of BOLD supply incurs a fee of 0.5% + 0.5% = 1.0%. An identical redemption immediately afterwards incurs approximately 1.5%. After a further 6 hours without redemptions, the base rate has halved.

Rationale. The volume-dependent fee rate-limits redemptions: successive redemptions become progressively more expensive, which prevents abrupt drawdowns and gives borrowers time to adjust their interest rates. The fee is charged in collateral and remains with the redeemed troves. At launch the base rate was initialized at 100%, effectively disabling redemptions until it had decayed.

4 · Arbitrage economics

The redemption arbitrage

An arbitrageur acquires BOLD, redeems it for collateral and sells the collateral, typically atomically within a single transaction executed by its own contract. The trade is undertaken when the following condition holds:

BOLD discount + oracle gap > redemption fee + gas + builder tip

Percentages in the diagram are averages across all redemptions in the dataset, weighted by BOLD redeemed.

BOLD discount. Acquiring BOLD below par yields a direct margin: at a market price of USD 0.997, each BOLD costs USD 0.997 and redeems for USD 1 of collateral, a 0.3% gain before costs. The weighted average discount at redemption has been –.

Oracle gap. The protocol sizes collateral payouts using Chainlink prices, which update only when a deviation threshold or heartbeat interval is reached. When the collateral's market price has risen since the last update, the redemption price understates its value, and the redeemer receives collateral worth more than USD 1 per BOLD. The weighted average oracle gap has been –, and it exceeded the discount for – of redeemed volume, making it the dominant source of profit.

Mitigation for staked ETH. For wstETH and rETH, the redemption price uses the higher of two reference prices, which reduces the collateral paid out and hence the oracle-gap arbitrage. WETH redemptions use the Chainlink ETH/USD price directly.

Branch Price for all other operations Price used for redemptions

The canonical rate is the ETH value of one wstETH or rETH as reported by its token contract (Lido, Rocket Pool); the market rate is the price observed on secondary markets. Under normal conditions the two are close. A larger divergence is treated as a potential anomaly, in which case the protocol reverts to the more conservative price.

5 · Profit attribution

Decomposition of an average redemption, scaled to 10,000 BOLD

live · weighted by BOLD redeemed

Green bars are sources of profit, red bars are costs, and blue bars are subtotals. All values are in USD and derived from the averages across all redemptions on the dashboard.

Discount, oracle gap and fee are weighted averages of per-redemption percentages and therefore reconcile to gross profit only approximately. Gross and net profit are measured totals.

6 · Methodology

From on-chain data to the dashboard

01 · SCAN
Redemption discovery

Every redemption burns BOLD. All BOLD burns since block 22,516,069 (V2 deployment) are retrieved through Alchemy's asset-transfers API, and each burn's receipt is inspected for Redemption events emitted by the three TroveManagers, which are resolved from the CollateralRegistry.

02 · GROUP
Aggregation per transaction

A redemption emits one Redemption event per branch it touches, and a single transaction may contain several redemptions. Events are aggregated by transaction hash. The per-trove TroveOperation, TroveUpdated and RedemptionFeePaidToTrove logs provide the trove-level breakdown.

03 · ENRICH
Pricing and costs

Per transaction: the receipt (sender, gas used, effective gas price), the block (timestamp, base fee, fee recipient), a single Multicall3 call returning all pool prices at block N−1, and internal ETH transfers to the fee recipient.

04 · SERVE
Storage and refresh

Results are stored in SQLite. The local server syncs new blocks every 5 minutes with 3 confirmations; the hosted version is refreshed every 30 minutes by a scheduled GitHub Actions job.

✓ Completeness check. CollateralRegistry.lastFeeOperationTime records the time of the latest redemption and is modified by no other operation. For every block containing a recorded redemption, its value at the preceding block was compared with the timestamp of the previous recorded redemption; no discrepancy was found. Because this value advances only in whole minutes, the five blocks following each recorded redemption were additionally checked for the registry's BaseRateUpdated event, which every redemption emits; all such events belong to recorded transactions. Last verified on 15 October 2026 across 1,858 redemption blocks.

Column definitions

Column Definition Computation

Limitations: net profit should be read as an upper bound