[Direct to AIP] LBTC Oracle and CAPO implementation Update

LBTC yield-bearing upgrade: technical analysis


Summary

Lombard is upgrading LBTC into a yield-bearing asset launching on August 11, 2025. Therefore, we believe it is important to analyze the changes and propose a pricing strategy that reflects the asset’s new infrastructure profile, as well as LRTs backed by LBTC, such as eBTC.


The key change is the LBTC transition from being 1:1 BTC-priced to becoming yield-bearing:

  • The LBTC/BTC ratio can increase via the burning of LBTC on the Lombard Ledger - a process directly tied to staking rewards earned through Babylon’s BSN. These rewards are converted into LBTC and then burned, reducing the token’s circulating supply.
    Alternatively, the ratio also improves when the Lombard team deposits additional BTC into specific (non-user) backing accounts of the protocol.
  • The LBTC/BTC ratio is calculated via the Lombard Ledger consortium of Tier‑1 institutions. The consortium calculates the total amount of BTC in the custody of Lombard and the LBTC’s total supply across all deployed chains. After consensus calculation of the new ratio, the consortium members sign it, and the new value is updated in the StakedLBTCOracle.
  • It’s essential to note that the underlying BTC is subject to slashing risk on Babylon, which may affect the LBTC/BTC exchange rate. However, slashing is limited - Babylon enforces a hard cap of 10 bps per slashing event, and unstaking automatically initiates after the first slashing to prevent further losses.

We’ve conducted a technical review of the exchange rate oracles provided by Lombard.

StakedLBTCOracle


The StakedLBTCOracle is the source of the price ratio between LBTC/BTC on EVM chains. The exchange rate can be updated by providing the new rate data and proof signed by the Consortium members. It’s an upgradable Transparent Proxy.

During the update, the contract ensures that the new rate does not deviate more than the threshold, which is adjusted linearly based on the update interval, with a maximum threshold of 0.1% for a 1-day interval update. Then, the proof provided is checked against the Lombard Consortium contract, and if it is valid, the rate is updated.

The getRate() method provides the actual exchange rate of LBTC <> BTC, and has a switch time feature that allows rates to be set up to 1 minute in the future. The rationale for the switch time is that the consortium agreed on and signed the correct new rate at the right time. This gives more consistent LBTC rates, updating at the same time across all chains, even though the transaction could take slightly longer to be processed on each chain.

Mainnet

Permission owner functions Criticality Risk
proxyAdmin1-day Timelock upgradeTo CRITICAL :green_circle:
owner: 1-day Timelock changeConsortium, changeMaxAheadInterval, updateRatioThreshold HIGH :green_circle:
permissionless (needs Consortium signed proof) publishNewRatio CRITICAL -

Base

Permission owner functions Criticality Risk
proxyAdmin1-day Timelock upgradeTo CRITICAL :green_circle:
owner: 1-day Timelock changeConsortium, changeMaxAheadInterval, updateRatioThreshold HIGH :green_circle:
permissionless (needs Consortium signed proof) publishNewRatio CRITICAL -

Miscellaneous


  • The system has undergone security reviews by OpenZeppelin and Sherlock, which can be found here.
  • Following our discussion with the Lombard team, we recommended transferring ownership of both the ProxyAdmin and the owner to a timelock, which provides additional time to review the implementation during upgrades. They agreed with the recommendation and implemented the changes shortly afterward.

Pricing Strategy


Considering the new asset’s yield-bearing LST nature, we recommend switching from the current BTC/USD oracle to use an LST CAPO that combines the asset’s exchange rate with its underlying (LBTC/BTC) and utilizes a Chainlink price feed to convert the underlying to USD (BTC/USD).

The exchange rate will be retrieved from getRate(), which, as explained earlier, features a switch time that allows the rate to be set up to 1 minute in advance. It’s important to mention that users will experience a maximum 1-minute delay in the rate to keep it consistent across both mainnet and base. The maximum percentage change in the rate is 0.1%, meaning that if the rate increases by 0.1%, there should be no issues with underpricing the asset temporarily. On the other hand, if the rate drops by 0.1%, the overcollateralization risk parameters should be conservative to prevent any problems for users.

We believe this new pricing strategy will stay aligned with the inclusion of LBTC in the yield-bearing asset class.

LRTs depending on LBTC


Currently, eBTC is backed by LBTC, which also affects its price. On Aave, the eBTC price strategy uses a CAPO adapter, with the maxYearlyRatioGrowthPercent set to 0% because no yield has been generated before.

As we highlighted in the eBTC price strategy, this change should be re-evaluated as a new rate provider will be addressed for the eBTC <> LBTC exchange rate, meaning that the eBTC CAPO adapter parameters should reflect the upgrade:

  • Our CAPO adapter uses the Accountant contract to retrieve the eBTC/BTC exchange rate. Internally, the Accountant currently pegs its underlying components to 1 because they don’t earn rewards.
  • With the yield generated from LBTC, the Accountant will set up the rate provider through the GenericRateProviderWithDecimalScaling contract, which calls the same getRate() function from the LBTC Oracle.
  • This rate will be applied to the eBTC system for all upcoming LBTC deposits. The Accountant references an off-chain calculated eBTC/BTC exchange rate, which aggregates all BTC-pegged underlying assets - including non-yield-bearing (wBTC, cbBTC) - and incorporates the yield from LBTC.

This approach aligns with our recommended setup for pricing LBTC on Aave, updating the price of both assets simultaneously whenever the Consortium provides a new rate in the LBTC Oracle. With that said, we don’t see any problems with updating the eBTC CAPO adapter parameters (maxYearlyRatioGrowthPercent and snapshots) suggested by Chaos Labs.

Conclusion


We believe LBTC and eBTC have no issues in adjusting their price strategy to reflect the yield from LBTC stake rewards, where:

  • LBTC price strategy will be upgraded from a BTC/USD CL feed to the CAPO adapter detailed in the pricing strategy section.
  • eBTC CAPO adapter parameters will be updated to reflect the yield generated from LBTC.
1 Like