Introduction

Lucidly Finance is a yield infrastructure layer on top of Liquid Staking Derivatives.

The first product offering is an ETH derivative called lcdETH.

lcdETH is minted from a Reserve Bucket that is used to source liquidity and allocated to liquidity pools based on a voting mechanism.

Overview

A user deposits ETH into the protocol and creates a bond. The bond is represented as an ERC-721 NFT which represents the bond amount, time of creation, accrued value & bond status in the metadata of the NFT.

The funds deposited for creating are bond are directed to a Pending bucket and staked in a basket of LSDs and the bond accrues the boosted token lcdETH as a virtual balance. The accrual rate or how fast/slow the bond accrues lcdETH is depending on a bonding curve.

After creating a bond, a user has the option to bond in where they receive the amount of lcdETH accrued in the bond by forfeiting the initial principal amount which they initially deposited. Every time a user bonds in, new lcdETH in minted.

This ETH + staking yield then is directed toward the reserve bucket which acts as the backing for lcdETH.

At any point after bond creation, a user has the option to cancel the bond or bond out, which will return the initial principal amount deposited and the yield generated from the ETH will be directed towards Reserve Bucket. So at any point in time, the principal amount is essentially protected.

If a user decides to bond in they get lcdETH, which they can either choose to sell on the open market for ETH or redeem for ETH from the protocol.

What are the different system buckets?

The ETH deposited in the protocol is in either one of the following buckets

  • Pending Bucket: Receives ETH from user deposits and is distributed in a basket of LSDs. The yield generated from the pending bucket is credited to the Reserve Bucket.

  • Reserve Bucket: Backs the total lcdETH supply. lcdETH is fully redeemable for the underlying ETH in the Reserve Bucket.

Bond Usage

The protocol consists of a Pending Bucket and a Reserve Bucket.

There are 4 important user-facing functions -

  • createBond()
  • bondIn(uint256 bondId)
  • bondOut(uint256 bondId)
  • redeem(uint256 amountOfLcdETH, uint256 minAmount)

Creating a bond involves calling the payable createBond() function with ETH which mints a NFT representing the bond data. The ETH is allocated to a Pending Bucket and earns staking yield. The Pending Bucket yield is allocated to the Reserve Bucket.

The NFT accrues a virtual balance of lcdETH according to a certain accrual curve.

A user can choose to either bondIn or bondOut after acquiring the NFT.

  • Bonding in - This involves calling the bondIn(uint256 bondId) function, which transfer the principal ETH + staking yield earned to the Reserve Bucket and mints the accrued amount of lcdETH in the bond to the caller.
  • Bonding out - This involves calling the bondOut(uint256 bondId) function, which transfers the principal amount back to the caller. The yield earned is allocated to the Reserve Bucket.

A lcdETH holder can at any point of time choose to sell lcdETH for ETH in the open market or redeem for ETH from the protocol at the redemption price.

lcdETH balance accrual

Creating a bond involves calling a function called createBond() with a minimum amount of ETH which then mints an NFT to the caller which denotes their bond data.

struct BondData {
    uint256 ethAmount; // in wei amount
    uint256 claimedLcdETHAmount; // in wei amount
    uint64 startTime;
    uint64 endTime; // timestamp of bondIn/bondOut event
    BondStatus status;
}

The bond accrues lcdETH according to a bonding curve which looks like this -

Accrual curve image

The accrual curve is asymptotic, i.e., it approaches but never exceeds a certain capped value.

The equation for accrued lcdLUSD accrual is given by -

\[ accruedLcdETH = \frac{bondAmount}{redemptionPrice} \cdot \frac{t}{t + \alpha} \]

  • α parametrizes the slope of the curve and could be automatically adjusted by the protocol in order to control the speed of the value accrual which depends on the evolving price premium
  • t denotes time

Since the rate of lcdETH accrual is the change in accrued lcdETH per unit time, if everything else remains constant -

  • Larger bonds accrue lcdETH faster than smaller bonds
  • Younger bonds accrue lcdETH faster than older bonds

lcdETH accrual cap

The lcdETH cap is an upper bound on the amount of lcdETH that the bond can accrue, based on the accrual curve mentioned above.

The lcdETH cap is calculated by the following formula:

\[ cap = \frac{bondAmount}{redemptionPrice} \]

Pending Bucket

On a bond creation, funds are directed to the Pending Bucket where they are staked to receive the base consensus layer rewards.

All the yield generated from the pending bucket are redirected to the reserve bucket which acts as the backing for lcdETH.

Reserve Bucket

When a user bonds in, the initial principal amount + yield generated from the bonded principal is directed to the reserve bucket and in return the users claims their virtual balance of lcdETH and forfeit the ETH which they had deposited for creating the bond.

The total supply of lcdETH is backed by the total amount of ETH in the Reserve Bucket.

Liquidity in the Reserve Bucket is used to allocate liquidity to LSD/ETH pools on curve based on an auction for liquidity. DAOs/Protocols/Whales or other aligned parties get to rent this liquidity.

This bucket is implemented as ERC4626 Vault to allow liquidity allocation strategies to be plugged in and out. ETH coming in the form of bond ins are allocated to these pools in an optimal ratio to bring the final ratio closest to the target ratio decided by the market.

Lucidly pbLSD will deploy an off-chain solver model to find the optimal ratio to allocate new liquidity to align with the voted upon target ratio.

Liquidity Rebalancing

Liquidity in the Reserve Bucket is auctioned through a Liquidity Allocation Vote and the protocol uses an off-chain solver auction model to rebalance liquidity.

On each bondIn(), the newly injected liquidity is allocated to pools in the Reserve Bucket in a certain ratio closer to the target ratio set through a Liquidity Allocation Vote. Rebalancing liquidity in the reserve bucket is incentivised with the bribes paid by parties renting liquidity.

Bonding in when the pool weights are imbalanced yields a short-term opportunity to capture a split portion of the bribes earned by protocol.

Backing Ratio

The total market cap of lcdETH is backed by the total ETH in the Reserve Bucket. Liquidity flows into the Reserve Bucket through the following sources -

  • Yield generated by the Pending Bucket funds.
  • Bribes/Incentives by parties voting on the liquidity in the Reserve Bucket.
  • Trading fees/emissions from adding liquidity to LSD/ETH pools.
  • Redemption fees paid from lcdETH ➡️ ETH redemptions.

Redemptions

Users can redeem their lcdETH into ETH through the protocol.

The backing ratio for lcdETH = Amount in Reserve Bucket / Total lcdETH Supply

Redemption price = lcdETH floor - redemption fee

The fee to redeem through the protocol is on a varying scale of anywhere between 3-5 basis points depending on the activity. The redemption rate serves as the market floor price for lcdETH.

The redeemer of n lcdETH would get slightly less than the pro rata share x < n * fairPrice

The difference is kept in the Reserve Bucket. The captured fee increases the fair price of lcdETH by the same amount.

An exponentially decaying fee schedule is used to efficiently throttle redemptions: the fee is dynamically increased upon every redemption in function of the redeemed amount, decaying over time to a minimum when no redemptions take place.

Tokenomics

LCD is the governance + voting utility token for pbLSD.

LCD is locked for durations of 13, 26, 39 or 52 weeks to receive veLCD.

  • 1 LCD locked for 52 weeks mints 1 veLCD, 0.75 veLCD for 39 weeks and so on and the balance of veLCD decays proportionately similar to veCRV tokenomics.
  • Holders of veLCD can choose to unlock with a penalty(tbd) which is directly proportional to the numbers of weeks left of the lock duration.
  • veLCD allows for setting unlimited number of approved delegates to vote on the holder's behalf.
  • Voting occurs with decay-adjusted balances.
  • Gauges are allocated to each pool in the Reserve Bucket, which receive emissions adjusted by governance to any arbitrary logic.

veLCD is non-transferrable and receives a tax(tbd) from the yield earned in the Reserve Bucket and is used to vote on Liquidity Allocation.

Socials