# Official Chicken Bonds Documentation

Chicken Bonds is a novel bonding mechanism - first applied to [Liquity’s](https://www.liquity.org/) LUSD.

It allows protocols to bootstrap liquidity at minimal cost and provides better user protection than existing bonding alternatives. The bonding mechanism can be applied to any yield-bearing token.&#x20;

**Get an overview of the protocol here**:&#x20;

{% embed url="<https://youtu.be/W9Vh0EWTJ_k>" %}

If you still have questions after browsing our FAQs and documentation — [join our Discord](https://discord.gg/2up5U32)!


# Table of content

&#x20;                                                                                                                     &#x20;

### **General**

[What is Chicken Bonds?  ](/faq/general#_ch8ny8e1lu5z)   &#x20;

[What is LUSD Chicken Bonds?](https://liquity.gitbook.io/chicken-bonds/general#what-is-lusd-chicken-bonds)                                                                                                                                              &#x20;

[Why did we build LUSD Chicken Bonds? ](https://liquity.gitbook.io/chicken-bonds/general#_q2h1u6fkoll)

[What’s in it for users?](https://liquity.gitbook.io/chicken-bonds/general#_fy3h1sfdse4z)&#x20;

### **Basic Usage**&#x20;

[What do I need in order to use LUSD CB? ](https://liquity.gitbook.io/chicken-bonds/basic-usage#_2t0gu017011p)

[How do I use LUSD Chicken Bonds?](https://liquity.gitbook.io/chicken-bonds/basic-usage#_19lqlz5p0sxo)&#x20;

[What actions can I take?](https://liquity.gitbook.io/chicken-bonds/basic-usage#_y2yx1oqs2zya)&#x20;

[How do I create a Bond?](https://liquity.gitbook.io/chicken-bonds/basic-usage#_jw1mgpsph20l)&#x20;

[What is a Chicken Out?](https://liquity.gitbook.io/chicken-bonds/basic-usage#_rwpo6dhx26fq)&#x20;

[What is a Chicken In? ](https://liquity.gitbook.io/chicken-bonds/basic-usage#_2c022erjceom)

[Can I transfer or sell my bond?](https://liquity.gitbook.io/chicken-bonds/basic-usage#_29tiup6aovym)&#x20;

[Can I own more than one bond?](https://liquity.gitbook.io/chicken-bonds/basic-usage#_oxx5yttjzgxg)&#x20;

[What is “rebonding”? ](https://liquity.gitbook.io/chicken-bonds/basic-usage#_qhlhefypzmbv)

[How is my principal protected in CB?](https://liquity.gitbook.io/chicken-bonds/basic-usage#how-is-my-principal-protected-in-cb)

[What is bLUSD (boosted LUSD)?](https://liquity.gitbook.io/chicken-bonds/basic-usage#_pqozni7roxdh)&#x20;

[Where can I buy or sell bLUSD?](https://liquity.gitbook.io/chicken-bonds/basic-usage#_anbq1yqfj2lp)&#x20;

[How does the protocol limit the downside risk of holding bLUSD?](https://liquity.gitbook.io/chicken-bonds/basic-usage#_s45yd5j70qdy)&#x20;

[How does the protocol create enhanced yield?](https://liquity.gitbook.io/chicken-bonds/basic-usage#_p1c400ee03hy)&#x20;

[How can I use LUSD CB to achieve enhanced yield?](https://liquity.gitbook.io/chicken-bonds/basic-usage#_qx78koisbzx3)&#x20;

[What is redemption?](https://liquity.gitbook.io/chicken-bonds/basic-usage#_hg7ykukobkgc)&#x20;

[How can I redeem bLUSD?](https://liquity.gitbook.io/chicken-bonds/basic-usage#_dm5t2r15r6ki)&#x20;

[What are the risks associated with LUSD Chicken Bonds?](https://liquity.gitbook.io/chicken-bonds/basic-usage#_jv4sc8ewh5wy)

[Have the Chicken Bonds smart contracts been audited?](https://liquity.gitbook.io/chicken-bonds/basic-usage#have-the-chicken-bonds-smart-contracts-been-audited)

### **Dynamic NFTs & Artwork**&#x20;

[How will the Dynamic NFTs work?](https://liquity.gitbook.io/chicken-bonds/dynamic-nfts-and-artwork#_rl753k3c2hpy)&#x20;

[What kind of NFTs can be obtained?](https://liquity.gitbook.io/chicken-bonds/dynamic-nfts-and-artwork#_a7xratbdscb3)&#x20;

[How are the NFT artwork traits determined?](https://liquity.gitbook.io/chicken-bonds/dynamic-nfts-and-artwork#_1v6c3gnt62dx)&#x20;

[Who created the NFT artwork?](https://liquity.gitbook.io/chicken-bonds/dynamic-nfts-and-artwork#_ru2hz0vzted2)&#x20;

[Will the artwork be hosted on-chain?](https://liquity.gitbook.io/chicken-bonds/dynamic-nfts-and-artwork#_x76zdzcevzzo)&#x20;

### **Economic Design**&#x20;

[What determines how much bLUSD I receive when I Chicken In?](/faq/economic-design#_44lrt4qpho3a)&#x20;

[What is my bLUSD “cap”?](/faq/economic-design#_29tbhtpqd328)&#x20;

[What is the economic rationale behind the cap?](/faq/economic-design#_e6izhz4uzkla)&#x20;

[How will the market value bLUSD?](/faq/economic-design#_lnta1xbq350e)&#x20;

[What is a fair market price for bLUSD?](/faq/economic-design#_3b0m44hgx7xg)&#x20;

[What is the “redemption price” and how is it calculated?](/faq/economic-design#_b4rof18qotmd)

[How will the redemption price behave over time?](/faq/economic-design#_v4b2soewuv6f)&#x20;

[Do all bonds accrue bLUSD at the same rate? ](/faq/economic-design#_45hm2760hhw)

[Can my bond’s accrued bLUSD ever go down?](/faq/economic-design#_jjdh2rj8uyyf)&#x20;

[Can the system ever become unbacked or insolvent?](/faq/economic-design#_msk9k53dn7yb)&#x20;

[How will the system incentivize bLUSD liquidity on the open market?](/faq/economic-design#_1qcmo1v5zahs)&#x20;

[What are the gas costs for users' actions?](/faq/economic-design#_1oumli6bahyt)&#x20;

[Is LUSD Chicken Bonds a “zero-sum” game?](/faq/economic-design#_2e77dtnhuiux)&#x20;

[How is the bLUSD APR calculated?](https://liquity.gitbook.io/chicken-bonds/faq/economic-design#_c2c3valbf2bj)

[How is the Fair Price calculated?](https://liquity.gitbook.io/chicken-bonds/faq/economic-design#how-is-the-fair-price-calculated)

[Why does the bonding time increase / decrease?](https://docs.chickenbonds.org/faq/economic-design#why-does-the-bonding-time-increase-decrease)

[How does the built-in Controller work to keep the optimal rebonding time at 30 days?](https://docs.chickenbonds.org/faq/economic-design#how-does-the-built-in-controller-work-to-keep-the-optimal-rebonding-time-at-30-days)

[How does the controller logic / math work?](https://docs.chickenbonds.org/faq/economic-design#how-does-the-controller-logic-work)

[What is the difference between Chicken Bonds and Olympus?](https://docs.chickenbonds.org/faq/economic-design#_c2c3valbf2bj-1)&#x20;

### **Technical Design**&#x20;

[Are Chicken Bonds tokens fungible?](/faq/technical-design#_kkmlbzgp6qsn)&#x20;

[What are the underlying sources of yield in LUSD Chicken Bonds?](/faq/technical-design#what-are-the-underlying-sources-of-yield-in-lusd-chicken-bonds)

[What is the process for harvesting yield?](/faq/technical-design#_1soo9a51d6q8)&#x20;

[What are the different system Buckets?](/faq/technical-design#_ydtvzh456fiz)&#x20;

[How do the buckets relate to the yield sources in which the system deposits LUSD?](/faq/technical-design#_juwpr7mlhrnk)&#x20;

[Where does my bonded LUSD go when I create a bond?](/faq/technical-design#_ydvm65vi2j86)&#x20;

[Where does my bonded LUSD go when I Chicken In?](/faq/technical-design#_brca3p3wx1g)&#x20;

[Can I \*always\* Chicken Out and reclaim my bonded funds?](/faq/technical-design#_2exu7pulzvoy)&#x20;

[Will Liquity AG host a Chicken Bonds front end?](/faq/technical-design#_19es6wijugyn)&#x20;

[Can the system be upgraded or changed?](/faq/technical-design#_v7jakq6mws25)&#x20;

[Who has control over the Chicken Bonds funds?](https://docs.chickenbonds.org/faq/technical-design#who-has-control-over-the-chicken-bonds-funds)

### **Potential future system migration**&#x20;

[What is the wind-down functionality?](/faq/potential-future-system-migration#what-is-the-wind-down-functionality)

[Does Yearn control any Chicken Bonds funds? ](/faq/potential-future-system-migration#do-yearn-control-any-chicken-bonds-funds)

### **LUSD Peg Stability**&#x20;

[How does the LUSD Chicken Bonds system improve the LUSD peg stability?](/faq/lusd-peg-stability#_szz9zzdes51j)&#x20;

[What are the conditions for shifting LUSD between the Stability Pool and Curve? ](/faq/lusd-peg-stability#_vowf7444yzdt)

[Who can shift system funds between the Stability Pool and Curve?](/faq/lusd-peg-stability#_dgavdm2nyhes)&#x20;

[What are the incentives for shifting LUSD to or from Curve?](/faq/lusd-peg-stability#_23o3nwmv9ci2)&#x20;

[How to check the amount that can be shifted?](https://docs.chickenbonds.org/faq/lusd-peg-stability#how-to-check-the-amount-that-can-be-shifted)

[How can you execute the Shifter functions?](https://docs.chickenbonds.org/faq/lusd-peg-stability#how-can-you-execute-the-shifter-functions)

[How can you find out if and when a Shifter function was triggered?](https://docs.chickenbonds.org/faq/lusd-peg-stability#how-can-you-find-out-if-and-when-a-shifter-function-was-triggered)

### **Others**&#x20;

[What is the relationship between Liquity and Chicken Bonds?](/faq/others#_xm5bro99n4h)&#x20;

[Will Liquity’s LQTY token accrue value from Chicken Bonds?](/faq/others#_8h6h008upp0b)&#x20;

[What is the process for creating an LUSD Bond from your Gnosis Safe?](https://liquity.gitbook.io/chicken-bonds/others#what-is-the-process-for-creating-an-lusd-bond-from-your-gnosis-safe)

[What are the smart contract addresses of Chicken Bonds?](https://liquity.gitbook.io/chicken-bonds/others#what-are-the-smart-contract-addresses-of-chicken-bonds)

### **Technical Resources**

[Technical Papers](https://liquity.gitbook.io/chicken-bonds/documentation/technical-resources#technical-papers)

[Security Audits](https://liquity.gitbook.io/chicken-bonds/documentation/technical-resources#security-audits)

[Contract Addresses](https://liquity.gitbook.io/chicken-bonds/documentation/technical-resources#contract-addresses)


# General

### What is Chicken Bonds? <a href="#ow3uvffzftju" id="ow3uvffzftju"></a>

Chicken Bonds introduces a novel bonding mechanism \[[see Whitepaper](https://docsend.com/view/dakurpcuv3259bnx)] which allows protocols to bootstrap liquidity at minimal cost and provides better user protection than existing bonding alternatives. The bonding mechanism can be applied to yield-bearing tokens. We have implemented an initial version for Liquity’s stablecoin LUSD on mainnet Ethereum (aka LUSD Chicken Bonds).

### What is LUSD Chicken Bonds?

The launch of the LUSD Chicken Bonds introduces a new, innovative form of bonding to decentralized finance. LUSD Chicken Bonds will offer an amplified yield-earning and trading opportunity for LUSD holders while helping to stabilize the price of LUSD and improve its liquidity.

We're excited to take this game-theoretic experiment to mainnet while also pioneering Dynamic NFTs which will evolve based on the user’s interactions.

### Why did we build LUSD Chicken Bonds? <a href="#q2h1u6fkoll" id="q2h1u6fkoll"></a>

If you've been following Liquity for a while, you are aware that we are not the kind of team that will chase innovation for the sake of it. The Liquity protocol itself is the perfect example. While similar to Maker/SAI, its infrastructure is quite different and improved at every level leading to a new type of product. And we're proud that Liquity proved itself as the most resilient and efficient borrowing protocol and stablecoin on Ethereum.

With Chicken Bonds, we're tackling a different playing field with a similar approach. Here, the aim is to enable protocols to bootstrap liquidity at a minimal cost. We have created a unique bonding model which is gamified and provides better guarantees and less downside for users than existing bonding approaches. Bonders will benefit from principal protection: they always have the option to “Chicken Out“ (hence the name of Chicken Bonds), canceling their bond and claiming their principal back.

### What’s in it for users? <a href="#fy3h1sfdse4z" id="fy3h1sfdse4z"></a>

Today, every user earns the same APR in the Stability Pool. Chicken Bonds will open up new earning and trading strategies for the expected future yield of the Stability Pool. Users will be able to bond to receive a bLUSD token. It captures an amplified, auto-compounded yield, which they can either hold or trade.

Chicken Bonds will not only be more engaging because of those new strategies but will also reward users with unique Dynamic NFTs - these are on-chain generative NFTs that change their visual representation based on the users' actions.

What makes these generative NFTs unique is their dynamic nature: the NFT visual will either be an egg (while bonding), a chad chicken (after claiming the bond - “Chickening In”) or a run-away chicken (after canceling the bond - “Chicken Out”). The most chad Chicken Bonders and engaged users in the Liquity ecosystem will get the rarest NFT. We are excited to join forces on the NFT side with the artist Luchador, creator of the eponymous collection and Play 2 Earn game.

The Chicken Bonds NFT collection is exclusively tied to the DeFi application. The only way to mint one is to create a bond. We invite DeFi degens and NFT maniacs to partake in this first of its kind event, where your financial decisions will shape the NFT collection you will end up with. “Participate 2 Earn” your Dynamic NFT!


# Basic Usage

### What do I need in order to use LUSD CB? <a href="#id-2t0gu017011p" id="id-2t0gu017011p"></a>

You’ll need a crypto wallet such as Metamask, connected to Ethereum mainnet.

To create a bond, you’ll need some LUSD. You can obtain LUSD by opening a Trove in Liquity and borrowing LUSD against your ETH, or purchasing it on a DEX such as Curve or Uniswap.

If you already have LUSD in the Stability Pool participating in Chicken Bonds would enable you to amplify your yield.

### How do I use LUSD Chicken Bonds? <a href="#id-19lqlz5p0sxo" id="id-19lqlz5p0sxo"></a>

You can use Chicken Bonds in different ways (see also our [blog post](https://www.chickenbonds.org/blog-posts/what-are-some-strategies-i-can-use) about the different strategies):

* Bond LUSD in exchange for bLUSD which offers a boosted yield compared to LUSD deposited in the Stability Pool \[see [What is bLUSD](#_pqozni7roxdh)]
* Buy and hold bLUSD and benefit from a positive price tendency due to its rising price floor and the enhanced yield
* Collect some of the unique Dynamic Chicken Bond NFTs
* Benefit from trading opportunities for bLUSD or liquidity provisioning strategies for the bLUSD/LUSD-3CRV pool

#### What actions can I take? <a href="#y2yx1oqs2zya" id="y2yx1oqs2zya"></a>

The actions you can take in Chicken Bonds depends on the assets you are currently holding.

As an LUSD holder, you can:

* Create a LUSD bond and accrue bLUSD
* Trade LUSD for bLUSD on the bLUSD/LUSD-3CRV Curve pool

As a bond owner (holding the bond NFT), you can:

* Chicken In (claim your accrued bLUSD)
* Chicken Out (cancel your bond, reclaiming your principal)

As a bLUSD holder, you can:

* Trade bLUSD for LUSD on the bLUSD/LUSD-3CRV Curve pool
* Become a LP in the bLUSD/LUSD-3CRV Curve pool
* Redeem bLUSD for LUSD

### How do I create a Bond? <a href="#jw1mgpsph20l" id="jw1mgpsph20l"></a>

You can create a bond by depositing LUSD into the Chicken Bonds system. Once deposited, your bond accrues a virtual balance of bLUSD over time. The accrual is based on an asymptotic curve - your virtual balance will grow fast at the beginning and then continuously slow down accruing bLUSD \[see [What determines how much bLUSD I receive when I Chicken In?](/faq/economic-design#_44lrt4qpho3a)]. This bLUSD is tracked in the system internally and is not paid out until the user claims it.

The bond has no maturity and at any point, the user may choose to claim their bLUSD (Chicken In) and give up their bonded LUSD, or cancel their bond (Chicken Out), foregoing their bLUSD balance and getting their bonded LUSD back.

Every time you create a bond, the Chicken Bonds system issues a unique bond NFT to your Ethereum address. Ownership of the NFT gives you ownership of the bond: similarly, transferring the NFT transfers control of the bond. The minimum bond size is 100 LUSD and the bond amount can’t be changed during bonding.

Further, your bond is a Dynamic NFT pointing to a piece of artwork with imagery generated from your Bond’s state and a randomness element. \[see [Dynamic NFTs & Artwork](/faq/dynamic-nfts-and-artwork) section].

#### What is a Chicken Out? <a href="#rwpo6dhx26fq" id="rwpo6dhx26fq"></a>

If you hold an NFT for an open bond, you can Chicken Out to cancel your bond and reclaim your entire bonded LUSD. A Chicken Out action forgoes the bonder’s virtual bLUSD balance.

This option to withdraw the principal at any time makes bonding essentially a principal-protected investment.

See the [risk section](#_jv4sc8ewh5wy) for more details.

#### What is a Chicken In? <a href="#id-2c022erjceom" id="id-2c022erjceom"></a>

If you hold an NFT for an open bond, you can Chicken In and claim your accrued bLUSD balance. You will receive the accrued bLUSD in exchange for the LUSD which is handed over to the Chicken Bonds system. \[see “[What are the different system Buckets?](/faq/technical-design#_ydtvzh456fiz)”]

After Chickening In you’ll retain your NFT, though it “changes state”, and no longer represents a bond or claim over any assets. It will point to a different piece of artwork that corresponds to the Chickened In state.

**There is a special case for the first Chicken In**: there is a minimum period of 15 days after launch that must pass between bond creation and the first Chicken In. This time period is a system constant, and is the same for all bonders. However, once the first Chicken In has occurred, bonders may Chicken In at any point after bond creation. This restriction ensures that someone cannot chicken in very early and redeem a very small amount of bLUSD for all of the initial yield that has been captured by the protocol.

Before the first Chicken In, all LUSD that has accumulated in the Reserve will be pure yield. When the first Chicken In occurs this accumulated yield is sent as a reward to the bLUSD Curve pool LP stakers, to prevent the first bLUSD holder from capturing outsized returns.

#### Can I transfer or sell my bond? <a href="#id-29tiup6aovym" id="id-29tiup6aovym"></a>

Yes. Bonds are represented by NFTs that conform to the ERC721 technical standard. Access to the bond is via the bond NFT: if you hold the NFT, you control the bond.

The NFT can be freely transferred, and listed for sale on public NFT marketplaces such as OpenSea.

Transferring your NFT is disallowed for the first 24 hours after a Chicken In or Out.

This ensures that sales of a bond can’t be instantly front-run by a Chicken In or Out which removes its economic value and should give marketplaces such as OpenSea enough time to refresh and show new artwork for the new NFT which now has no bonded LUSD associated with it.

The visual representation of your NFT in Chicken Bonds is dynamic and will change based on the current state of the bond:

1. Egg - pending bond with full access to the underlying assets
2. Chad Chicken - after a Chicken In with no control over any assets
3. Runaway Chicken - after Chicken Out with no control over any assets

The visual state changes are irreversible.

#### Can I own more than one bond? <a href="#oxx5yttjzgxg" id="oxx5yttjzgxg"></a>

Yes, you can create multiple bonds per Ethereum address. Creating a bond from a given address mints the NFT to that address, and then you are free to hold the bond NFT or transfer/sell it as you see fit.

#### What is “rebonding”? <a href="#qhlhefypzmbv" id="qhlhefypzmbv"></a>

Rebonding is when a bonder Chickens In, sells their obtained bLUSD for LUSD at a profit and then creates a new, larger bond. Regular rebonding can be a profitable strategy and allows for a faster accrual of bLUSD over a given period than a user with a single bond.

#### How is my principal protected in CB?&#x20;

Your principal is protected while you are bonding: you can cancel your bond at any time and get back your initially deposited LUSD. In case of a heavy market downturn and a lot of liquidations, there can be a time period when canceling your bond will be paused (see “[Can I *always* Chicken Out and reclaim my bonded funds?](https://liquity.gitbook.io/chicken-bonds/faq/technical-design#_2exu7pulzvoy)”

Be aware that once you have claimed your bond (Chicken In) and you have received bLUSD, your principal is not protected in the same way anymore. You still have some downside protections as you can redeem your bLUSD pro rata against the LUSD in the Reserve - but this might be less than you initially invested. Further, bLUSD is a volatile token and you might incur gains/losses when the price of bLUSD goes up/down. This is mainly dependent on market participant perception of the fair price of bLUSD and the premium they are willing to pay for the future expected yield accruing in bLUSD.

See the [risk section](#_jv4sc8ewh5wy) for more details.

### What is bLUSD (boosted LUSD)? <a href="#pqozni7roxdh" id="pqozni7roxdh"></a>

bLUSD is an ERC20 token that is minted when a user “Chickens In” - that is, when they give up their bonded LUSD to the protocol and claim bLUSD. The quantity of bLUSD they can claim depends on their accrued virtual balance when they Chicken In.

bLUSD captures an enhanced yield compared to LUSD deposited in the Stability Pool. This is because all of the yield generated by all buckets in the system (Pending, Reserve and Permanent) flows to the Reserve.

bLUSD is backed by the funds in the Reserve bucket. bLUSD can always be redeemed \[see “[What is redemption?](#_hg7ykukobkgc)”] for a proportional share of the Reserve - that is, **x**% of the bLUSD supply redeems for **x**% of the Reserve.

As a result, the redemption value of a given amount of bLUSD will grow faster than the underlying amount of LUSD would grow if deposited in the highest yield source used by Chicken Bonds.

As outlined above the redemption price is expected to nearly always rise over time. Since the redemption price acts as a price floor for the market price, then bLUSD has a **rising market price floor** - even though its **market premium** (over and above the price floor) may fluctuate.

#### Where can I buy or sell bLUSD? <a href="#anbq1yqfj2lp" id="anbq1yqfj2lp"></a>

Upon system launch, a bLUSD/LUSD-3CRV pool will be live, with a corresponding Curve gauge \[see also [How will the system incentivize bLUSD liquidity on the open market?](/faq/economic-design#_1qcmo1v5zahs)]

#### How does the protocol limit the downside risk of holding bLUSD? <a href="#s45yd5j70qdy" id="s45yd5j70qdy"></a>

As bLUSD trades at a premium above the price floor, buyers and holders can expect that its market price will not fall below the price floor. Market price risks are thus limited by the current premium, except in the extremely unlikely scenario of loss-making liquidations (see “[What are the risks associated with LUSD Chicken Bonds?](https://liquity.gitbook.io/chicken-bonds/faq/basic-usage#_jv4sc8ewh5wy)”)

#### What should the market price be in order for bonding to be profitable?

When the bLUSD market price is less than 3% above the floor price, it's not profitable to bond. This is due to the Chicken In fee of 3%. Buying bLUSD from the market in such conditions will generate a higher return than bonding.&#x20;

The bLUSD market price could recover to a level to make bonding profitable once again.

### How does the protocol create enhanced yield? <a href="#p1c400ee03hy" id="p1c400ee03hy"></a>

Yields from all system buckets - Pending, Reserve, and Permanent - flow to the Reserve bucket. As such, the Reserve earns yield over and above that the yield generated by the LUSD it contains.

Since bLUSD always redeems proportionally for LUSD in the Reserve, the bLUSD token captures enhanced yield compared to the underlying LUSD that it redeems for.\
\
Please see this post for a more thorough deep-dive into the yield amplification mechanics:\
\[see our [blog post on the yield amplification](https://www.chickenbonds.org/blog-posts/where-does-the-amplified-yield-in-chicken-bonds-come-from)].

### How can I use LUSD CB to achieve enhanced yield? <a href="#qx78koisbzx3" id="qx78koisbzx3"></a>

It is the bLUSD token which captures enhanced yield in Chicken Bonds.

Yields from all three system buckets - Pending, Reserve, and Permanent - flow to the Reserve bucket. As such, the Reserve earns yield over and above the yield generated by the LUSD it contains.

Since bLUSD always redeems proportionally for LUSD in the Reserve, the bLUSD token captures enhanced yield compared to the underlying LUSD that it redeems for.

You can achieve this enhanced yield simply by holding bLUSD with its growing price floor. Despite benefiting from an amplified yield, the bLUSD is a volatile token that fluctuates in price compared to LUSD

There are a couple of ways to acquire bLUSD:

* You can buy it on the open market. For example, via the bLUSD/LUSD-3CRV Curve pool that will be live at launch.
* You can create a bond, accrue bLUSD over time, and Chicken In to claim your bLUSD.

From the moment you hold bLUSD, you benefit from an enhanced LUSD yield: the redemption value of bLUSD (in LUSD) grows faster than “naked” LUSD in the best yield source.

### What is redemption? <a href="#hg7ykukobkgc" id="hg7ykukobkgc"></a>

If you hold bLUSD (as a result of a previous Chicken In or through buying it on the market), you can redeem it for a share of funds in the system’s Reserve.

Redemptions are always proportional: **x**% of the total bLUSD supply redeems for **x**% of the LUSD Reserve.

Upon redeeming, you’ll receive a mix of LUSD and yTokens for the Yearn Curve LUSD vault. The mix of tokens you receive depends on how the Chicken Bonds system funds are deployed at that moment - that is, how they are split between B.Protocol and the Yearn Curve vault.

However, regardless of the split between LUSD and yTokens, you’ll always receive **x**% of the Reserve funds by value when you redeem **x**% of the total bLUSD supply.

No fee is applied to redemptions.

#### How can I redeem bLUSD? <a href="#dm5t2r15r6ki" id="dm5t2r15r6ki"></a>

Everyone can redeem bLUSD by using [Etherscan](https://etherscan.io/address/0x57619FE9C539f890b19c61812226F9703ce37137#writeContract) and call the “redeem” function.&#x20;

You can also use the DeFi Saver frontend: <https://app.defisaver.com/liquity/bond>

Please be aware that you will receive LUSD and yTokens (yield from the Permanent Bucket). Economically, redeeming bLUSD makes only sense when the market price is below the redemption price. This is most likely an arbitrage opportunity that will be performed by bots. It will be very hard for users to compete with those bots. Thus, we decided not to include a redemption functionality in the frontend kit for operators. Read more [here](https://github.com/liquity/ChickenBond#public-state-changing-functions).&#x20;

Most of the time there will be enough LUSD in B.Protocoll to fulfill redemption, but in practice, there could be edge cases where the pending LUSD is not fully backed:\
\- Heavy liquidations, and before yield has been converted\
\- Heavy loss-making liquidations, i.e. at <100% CR\
\- SP or B.Protocol vault hack that drains LUSD

1\. Get 2nd value from this function to get LUSD available in B.Protocol:\
<https://etherscan.io/address/0x896d8a30c32ead64f2e1195c2c8e0932be7dc20b#readContract#F17>

If there’s plenty of LUSD there, considerably more than what you expect to get, you can just use 0 as min value

But in case you want to verify, you can then do:

2\. Get the total bLUSD supply (<https://etherscan.io/address/0xB9D7DdDca9a4AC480991865EfEf82E01273F79C3#readContract#F8>) and calculate the fraction of bLUSD you are redeeming

3\. Get the acquired LUSD amount in B.Protocol from here: <https://etherscan.io/address/0x57619FE9C539f890b19c61812226F9703ce37137/advanced#readContract#F41>

4\. Apply the fraction you got in step 2 to the amount you got in step 3, and you’ll have the amount you should get in LUSD from B.Protocol: `acquiredLUSDInSP` \* `fractionOfBLUSDToRedeem`

If your LUSD amount is bigger than the available balance in B.Protocol, it’s up to you to use the latter as min value if the difference is not high or if you are in a hurry to redeem or wait until ETH and LQTY in B.Protocol are recycled back into LUSD.

### What are the risks associated with LUSD Chicken Bonds? <a href="#jv4sc8ewh5wy" id="jv4sc8ewh5wy"></a>

Economically, users have strong guarantees: while bonding, users can always reclaim their bonded principal (with the edge-case exceptions mentioned below), and bLUSD holders can always redeem for a proportional share of the Reserve.

**Temporary delay to withdrawals due to liquidations.** If heavy liquidations occur in Liquity, Chickening Out may be temporarily suspended for a small portion of users. This will persist only for a short period until the ETH from the liquidation has been recycled back to LUSD. For more information please see (“[Can I *always* Chicken Out and reclaim my bonded funds?](https://liquity.gitbook.io/chicken-bonds/faq/technical-design#_2exu7pulzvoy)”)

**Losses from liquidations.** In extreme market conditions, it is theoretically possible that B.Protocol could incur a loss from liquidation rather than a profit, i.e. if a large volume of ETH is liquidated, and the ETH price drops significantly in the period between the liquidation and the ETH harvest. In this case, any loss would first be borne by the Reserve - and by extension the bLUSD holders - before the bonders.

Such a scenario is very unlikely even in major market crashes. Liquidations buy ETH at a discount, so there is a \~9% “buffer” to absorb any ETH price drop that occurs between liquidation and harvesting. Historically, the heaviest Liquity liquidations have occurred near an ETH price “local bottom”, and the value of ETH has even increased in the aftermath.

**bLUSD market value.** The market value of bLUSD is volatile - it can go up or down, but it always has a lower bound equal to the bLUSD redemption price.

On the technical side, as with all dApps on Ethereum, there is smart contract risk: there is always the possibility that the code of the core system and/or its external integrations may contain a bug or be hacked.

Our engineering team has done their best to mitigate technical risk. We have taken our usual diligent approach to security with extensive unit testing, economic modelling and fuzz testing.

Since Chicken Bonds deposits funds to B.Protocol and the Yearn Curve LUSD vault, users implicitly assume the smart contract risk of those external protocols when using LUSD Chicken Bonds.

Yearn governance also have some limited admin control over the LUSD Chicken Bonds system - see \[[MIGRATION SECTION](https://liquity.gitbook.io/chicken-bonds/potential-future-system-migration)]. In case of a Yearn Governance compromise, the worst case for Chicken Bonds is that the Pending bucket becomes redeemable and the ability to shift funds to/from the Curve pool becomes disabled. This scenario would not put any Chicken Bonds user funds at risk.

### Have the Chicken Bonds smart contracts been audited?&#x20;

Yes, the Chicken Bond system has been audited by Coinspect and Dedaub. See the audit reports on our [GitHub](https://github.com/liquity/ChickenBond/tree/main/LUSDChickenBonds/audits).


# Dynamic NFTs & Artwork

### How will the Dynamic NFTs work? <a href="#rl753k3c2hpy" id="rl753k3c2hpy"></a>

LUSD Chicken Bonds feature dynamic NFTs. Users receive a generative ERC-721 egg when creating a bond with four attributes: border, card, egg color, and egg size. The first three are rolled randomly while the egg size scales with the deposited LUSD amount.

Eggs NFT represents the bond; they are tied to the deposited assets, like Uniswap V3 LP NFT. By selling the egg NFT the user transfers also the bond and deposited LUSD.

Chicken Bonds is pioneering Dynamic NFTs: you always hold the same NFT but its visual representation changes (egg, chad chicken or runaway chicken) based on your actions in the system. Further, the rarity of the NFT will depend on the users' bond size and current on-chain activities within Liquity’s ecosystem.

#### What kind of NFTs can be obtained <a href="#a7xratbdscb3" id="a7xratbdscb3"></a>

Three types of NFTs can be acquired:

1. When a bond is created, the user obtains an egg
2. While chickening out, a runaway chicken
3. While chickening in, a chad chicken

![](/files/zGC8THb8eTNprcE7tyvJ)

The egg attributes carry over to the next forms, and additional attributes are also gained while Chickening In.

The concept of "affinity" makes it more likely to roll attributes from the same family. The egg attributes are picked sequentially: obtaining a rainbow border makes it more likely also to get a rainbow card or egg.

### How are the NFT artwork traits determined? <a href="#id-1v6c3gnt62dx" id="id-1v6c3gnt62dx"></a>

There are different rarities of the traits in each of the NFT types (Egg, Chicken In, Chicken Out). Users can increase their chances to receive a more rare trait - these properties are considered for your bonding Ethereum address. Larger quantities correspond to a higher chance of receiving rare traits:

* Bond size
* Size of Liquity Trove (size of LUSD loan)
* LQTY staked (either directly, or through Pickle)
* veCRV devoted to LUSD/3CRV & LUSD/FRAX gauges

Chicken Bond NFT artwork traits are in part randomized. Different traits have different “weights” - that is, different likelihoods of being picked. Some traits also have “affinities” - e.g. a certain card color may be more likely to lead to a certain image component - etc.

#### Who created the NFT artwork? <a href="#ru2hz0vzted2" id="ru2hz0vzted2"></a>

The art and initial generation script for the visual of the Chicken Bonds NFT were made by [Luchador](https://luchadores.io/), creator of an eponymous Play 2 Earn NFT-based game on Ethereum and Polygon. He worked hand in hand with the Liquity team, which proposed the concept and iterated on the attributes allocation to improve the rarity distribution.

### Will the artwork be hosted on-chain? <a href="#x76zdzcevzzo" id="x76zdzcevzzo"></a>

All artwork is in SVG format and is generated fully on-chain by core LUSD Chicken Bonds system smart contracts. The artwork is not hosted on external servers.

Only one visual representation can be displayed for each NFT. If you are bonding, an egg will be displayed. If you Chicken Out, the visual representation will change and a runaway chicken will be displayed. A user action like Chicken In or Chicken Out will irreversibly change the visual representation that is displayed. If you want to keep your beloved egg - you might want to keep the bond open and accruing bLUSD forever.

### How can I check a bond's status? <a href="#x76zdzcevzzo" id="x76zdzcevzzo"></a>

Some NFT marketplaces are slow to refresh their metadata. This can result in a bond being shown as still bonding, while in reality it is already Chickened In/Out.\
\
You can check a bond's status on this Etherscan [page](https://etherscan.io/address/0xa8384862219188a8f03c144953cf21fc124029ee#readContract).

Scroll down until you find `18. getBondStatus` , enter the bond ID and press `Query`.&#x20;

The result will be either 1, 2, or 3.

1 = Still bonding

2 = Chickened Out

3 = Chickened In

<figure><img src="/files/4SxIWV6M2fEZSMKeMKJb" alt=""><figcaption></figcaption></figure>


# Economic Design

### What determines how much bLUSD I receive when I Chicken In? <a href="#id-44lrt4qpho3a" id="id-44lrt4qpho3a"></a>

Your bond accrues bLUSD according to a smooth plateauing curve.&#x20;

<figure><img src="/files/04t7Q4fNQhZuFI8bC9CK" alt=""><figcaption></figcaption></figure>

A fresh bond starts accruing bLUSD rapidly, and as time passes, the accrual rate slows down.

The accrual curve is asymptotic - that is, it approaches but never exceeds a capped value. See \[ [What is my bLUSD “cap”?](#_29tbhtpqd328)] for more information on how your bLUSD cap is calculated.

The equation for bLUSD accrual is given by:

`accrued_bLUSD = (bond_amount / redemption_price) * t / (t + alpha)`

The redemption price is given by:

`redemption_price = q_r / S`

Where **q\_r** is the LUSD in the Reserve, and **S** is the total bLUSD supply.

Here alpha is a parameter which dictates how fast all bonds accrue bLUSD - i.e. how steep the curve is. An initial value for alpha has been determined via simulations. Alpha is dynamically adjusted by the system’s “controller”, in order to maintain the economic attractiveness of bonding. For more information on the controller, see the system’s [technical readme](https://github.com/liquity/ChickenBond#controller)**.**

#### What is my bLUSD “cap”? <a href="#id-29tbhtpqd328" id="id-29tbhtpqd328"></a>

Your bLUSD cap is an upper bound on the amount of bLUSD your bond can accrue, based on the accrual curve mentioned above.

When you have an open bond, your accrued bLUSD gets closer and closer to your cap over time without ever reaching it.

Your bLUSD cap is calculated by the following formula:

`cap = bond_amount / redemption_price`

#### What is the economic rationale behind the cap? <a href="#e6izhz4uzkla" id="e6izhz4uzkla"></a>

The cap ensures that the maximum bLUSD obtained via Chicken In can not reduce the redemption price.

The cap also facilitates a non-linear accrual curve, which allows fresh bonders to accrue bLUSD more quickly than older bonds. This helps encourage continued bonding and re-bonding.

### How will the market value bLUSD? <a href="#lnta1xbq350e" id="lnta1xbq350e"></a>

bLUSD is expected to trade at a market premium above its redemption price.

This is because bLUSD earns an amplified yield compared to the underlying LUSD that it redeems for.

As a bLUSD holder, your bLUSD is redeemable for a certain amount of LUSD now - let’s say **x** LUSD. But in the future, the same amount of bLUSD will be redeemable for more than what **x** LUSD could have grown to by being staked in the best yield source (currently B.Protocol).

This future value boost should be priced into the net present value of bLUSD - leading to a market price premium over the current redemption price.

bLUSD should also have a **price floor** at the redemption price since it is always possible to redeem bLUSD for a proportional share of the LUSD in the Reserve.

### What is a fair market price for bLUSD? <a href="#id-3b0m44hgx7xg" id="id-3b0m44hgx7xg"></a>

This is a complex and interesting research question. While we expect bLUSD to trade on the open market at a premium over the redemption price, a fair pricing formula for bLUSD is not straightforward to derive.

The Chicken Bonds whitepaper details some initial attempts at deriving a fair price for bLUSD, and we have run a [bounty](https://liquity.gitbook.io/chicken-bonds-whitepaper-and-bounty/) which incentivized external research teams to tackle this topic. Results have been interesting, though so far incomplete - it appears that an accurate expression for the fair price of bLUSD may be difficult to derive. \[[RiskDAO's paper](https://github.com/Risk-DAO/Reports/blob/main/Chicken%20bonds%20analysis.pdf)]

### What is the “redemption price” and how is it calculated? <a href="#b4rof18qotmd" id="b4rof18qotmd"></a>

The redemption price is the amount of LUSD that 1 bLUSD redeems for.

The redemption price is calculated based on:

**q\_r / S** where **q\_r** is the total LUSD in the Reserve, and **S** is the total supply of bLUSD.

Redemptions are proportional: redeeming **x**% of bLUSD supply returns **x**% of the LUSD in the Reserve.

### How will the redemption price behave over time? <a href="#v4b2soewuv6f" id="v4b2soewuv6f"></a>

The initial redemption price before the first Chicken In is set at 1.0. However, redemptions are only possible, once 30 days after the launch have passed.

The redemption price should almost always increase over time. This is due to the following facts:

* Тhe system guarantees that Chicken Outs, Chicken Ins and redemptions have no impact on the redemption price, preventing any dilution of the bLUSD token. Chicken Ins increase both the Reserve **q\_r** and the bLUSD supply **S,** but proportionally, i.e. they keep the ratio **q\_r** / **S** constant. Redemptions deplete both the Reserve **q\_r** and the bLUSD supply **S**, also maintaining their proportion. Chicken Outs don’t affect the bLUSD supply or the Reserve.
* Yield earned by all system funds flows to the Reserve. When yield is harvested, the LUSD in the Reserve increases with no change to the bLUSD supply.

Therefore the redemption price can only increase over time (barring loss-making liquidations - see “[What are the risks associated with LUSD Chicken Bonds?](https://liquity.gitbook.io/chicken-bonds/faq/basic-usage#_jv4sc8ewh5wy)”)

### Do all bonds accrue bLUSD at the same rate? <a href="#id-45hm2760hhw" id="id-45hm2760hhw"></a>

All bonds accrue bLUSD according to the same equation:

`accrued_bLUSD = (bond_amount / redemption_price) * t / (t + alpha)`

Since the rate of bLUSD accrual is the change in accrued bLUSD per unit time, then, all else being equal:

* Larger bonds accrue bLUSD faster than smaller bonds
* Younger bonds accrue bLUSD faster than older bonds

The relative accrual rate (bLUSD per unit time per LUSD bonded) does not depend on bond size - therefore, all else being equal, splitting a given LUSD amount across several smaller bonds will not net you more bLUSD.

### Can my bond’s accrued bLUSD ever go down? <a href="#jjdh2rj8uyyf" id="jjdh2rj8uyyf"></a>

In the long run, your bond’s accrued bLUSD increases towards its current cap. . However, there can be small discrete jumps (both up and down) in your accrued bLUSD along the way.\
\
This is because of the way the cap is calculated. When yield is harvested, the redemption price increases, which slightly decreases the cap and moves your bLUSD curve down slightly.\
\
Here is an example historical bLUSD curve for a given bond. See how it increases over time, but with occasional small “jumps”:

\[Desmos discrete jumps [graphic 1](https://www.desmos.com/calculator/sldn8ws1zo)].

**Edge case: when decreases from harvests outweigh bLUSD accrual.** If you leave your bond open for a long time without Chickening In or Out, your accrual curve becomes very shallow and your rate of bLUSD gain becomes very slow. If you let your bond stagnate long enough then at some point, your cap decreases faster than your bLUSD accrues, and your bond will start to actually lose bLUSD over time.\
\
Therefore it would make sense to take action before your bond reaches a very slow accrual rate - either Chicken In, or Chicken Out.\
\
Your accrued bLUSD can also jump **up** slightly. This happens when the system adjusts the global accrual parameter **alpha** to keep the average bond age within a desirable range.

Also note that although your accrued bLUSD **quantity** increases in the long run, the **market value** of your accrued bLUSD can fluctuate depending on how the market premium varies.

Please see \[[How will the market value bLUSD?](#_lnta1xbq350e)] for more information.

### Can the system ever become unbacked or insolvent? <a href="#msk9k53dn7yb" id="msk9k53dn7yb"></a>

The bLUSD supply is fully redeemable and is always backed by the underlying LUSD in the Reserve.

Both yield sources are single-sided and auto-compounding in nature and do not suffer from impermanent loss.

Each yield source is expected to provide only positive returns. In extreme scenarios, B.Protocol could occasionally register a loss - for example, if the Stability Pool liquidates Troves at a loss, or if B.Protocol is not able to sell the liquidated ETH fast enough.

In general, the consistent profits from Liquity liquidations, LQTY issuance and the Yearn Curve vault are expected to heavily outweigh any occasional loss incurred by B.Protocol, and we expect the Chicken Bonds system to remain fully backed.

### How will the system incentivize bLUSD liquidity on the open market? <a href="#id-1qcmo1v5zahs" id="id-1qcmo1v5zahs"></a>

A 3% fee (in LUSD) is applied to Chicken Ins and drawn from the bonded LUSD. This fee is sent to the Curve gauge stakers. Users who hold LP tokens for the bLUSD-LUSD pool may stake them to the gauge to earn fees, which are distributed smoothly to LPs over time.

Additionally, all the yield accrued by the system between launch and the first Chicken In will be sent to the Curve gauge and distributed smoothly over time to LPs.

Chicken-in fees are collected in a “bucket” from which they’re dispensed linearly by Curve over the course of 7 days if there are no further chicken-ins. However every time there’s a new chicken-in, the “runway” is extended to another 7 days (using the remaining fees in the “bucket” plus the newly added fee).

### What are the gas costs for users' actions? <a href="#id-1oumli6bahyt" id="id-1oumli6bahyt"></a>

Here are approximate gas costs for the main users' actions in Chicken Bonds:

* Create Bond: 500k&#x20;
* Chicken In: 600k&#x20;
* Chicken Out: 480k&#x20;

### Is LUSD Chicken Bonds a “zero-sum” game? <a href="#id-2e77dtnhuiux" id="id-2e77dtnhuiux"></a>

It depends on how you define the “game”! The system is likely *not* a zero-sum game between bonders: it is possible for bonders as a group to make a net profit. If bLUSD holders and traders are also included in the scope of the game, then this expanded game is likely zero-sum. For further discussion please see this [blog post](https://www.chickenbonds.org/blog-posts/where-does-the-amplified-yield-in-chicken-bonds-come-from).&#x20;

### How is the bLUSD APR calculated? <a href="#c2c3valbf2bj" id="c2c3valbf2bj"></a>

At all times, the Reserve Bucket is earning the yield of the entire treasury (Pending + Reserve + Permanent Bucket). The Reserve Bucket alone simply earns X% APR, where X% is the standard Stability Pool APR. If we include the Pending APR and Permanent APR then X will be higher. We call this total APR the “bLUSD APR”.

`bLUSD_APR = ((Protocol_LUSD_in_Stability_pool * Stability_pool_APR_rate) + (Protocol_LUSD_in_Yearn_Curve_strategy * Yearn_LUSD_Curve_APR_rate)) / Reserve_bucket`

Most of the time this equates to:&#x20;

`bLUSD_APR =((Pending_bucket + Reserve_bucket) * Stability_pool_APR_rate) + (Permanent_bucket * Yearn_LUSD_Curve_APR_RATE)) / Reserve_bucket`

But the Permanent `B`ucket holds LUSD in the Stability Pool until it’s shifted into the Curve via Yearn so we use the first formula to be more accurate.

#### **Yield Amplification**

The bLUSD APR is a multiple of the Stability Pool APR. This multiple is the “Yield Amplification”.

`Yield_amplification = bLUSD_APR / Stability_pool_APR`

### How is the Fair Price calculated?

The fair price is an attempt to calculate what bLUSD should be worth given the yield it generates. The general theory is: the higher the yield, the higher the value of the token.

Simple example: if bLUSD is generating 2x the yield of LUSD, some people might be willing to pay nearly 2x the price of LUSD, e.g. 1.9 LUSD for it.

In reality, each individual’s idea of the fair price could vary, based on their context and how much weight they attribute to certain qualities of the system. To factor this we’ve shown the fair price as a range.

**Lower bound**&#x20;

The lower bound is a very conservative figure which ignores the existence of the Pending Bucket, and therefore excludes the yield it generates. It was formulated by RiskDAO in their attempt at deriving a fair price formula. The Pending Bucket is excluded since unlike the Reserve and Permanent Buckets, the Pending Bucket can vary wildly and is less easy to predict the variance. The Permanent bucket can only increase, and the Reserve Bucket can only change in such a way that increases the value of bLUSD (due to either the rising price floor, or decreasing Reserve size while the Permanent Bucket doesn’t decrease).

`Lower_bound = (Protocol_LUSD_in_Stability_pool_excluding_Pending_bucket + (Protocol_LUSD_in_Yearn_Curve_strategy * (Yearn_Curve_APR / Stability_Pool_APR)) / bLUSD_supply`

**Upper bound**&#x20;

The upper bound includes the Pending Bucket, and is therefore the same value as the Yield amplification multiple.

`Upper_bound = (Protocol_LUSD_in_Stability_pool + (Protocol_LUSD_in_Yearn_Curve_strategy * (Yearn_Curve_APR / Stability_Pool_APR)) / bLUSD_supply`

### Why does the bonding time increase / decrease?

The most significant factor that influences the variance in bonding time is the market price of $bLUSD. If the $bLUSD price goes up (e.g. from $1.25 to $1.4), the break even point and optimal rebonding time is reached faster. On the other hand, If the $bLUSD price falls (e.g. from $1.25 to $1.05), it will take longer to reach the break even point, and optimal rebonding time.

A low market price of $bLUSD could be caused by a lot of users Chickening In at the same time. As this could lead to a situation where bonders would need to wait months or even years to achieve break even, there is another factor that influences the rebonding time: a built-in bonding time optimizer. The built-in controller increases the accrual speed of $bLUSD to bring back the optimal rebonding time to \~30 days in the system.

### How does the built-in Controller work to keep the optimal rebonding time at 30 days?

The built-in controller can adjust the accrual (curve) of bLUSD if the average bonding time in the system exceeds 15 days. Once the controller increases the accrual speed (steepness of the accrual curve through the parameter “alpha”), existing bonders receive more $bLUSD during the same period of time as before.

By aiming for an average optimal bonding time of 30 days, the controller makes sure bonding stays economically attractive for bonders. The controller monitors the average bonding time. Under normal circumstances, the average bond age should be half the optimal rebonding time. If the average bonding time is longer than 15 days, the controller is triggered.

The controller increases the accrual speed of $bLUSD for pending and new bonds according to a formula (see next section), until the average bonding times falls again below 15 days. Once the accrual has been increased, it stays like that and will not be decreased even if the $bLUSD market price goes up. In turn, this means that the controller can only speed up the accrual of $bLUSD, but will not slow it down

### How does the Controller logic work?

The alpha parameter of the accrual function variable implements a feedback controller which adjusts the parameter in one direction (reducing it by a 0.1% for each day that the average bond age is above 15 days, making the accrual increase each day).

The controller's logic is simple in theory: every accrualAdjustmentPeriodSeconds seconds (1 day), determine the size-weighted average age of pending bonds (in seconds) and compare it to targetAverageAgeSeconds. If the average is higher than the target, reduce accrualParameter by a fixed percentage (accrualAdjustmentRate = 0.1%).

The reduction results in an immediate increase of the accrued bLUSD amounts of pending bonds. This will continue until it’s attractive to chicken-in again, which would result in a reduction of the average outstanding bond age, eventually dropping below the target.

### What is the floor price? <a href="#c2c3valbf2bj" id="c2c3valbf2bj"></a>

The same as [redemption price](#_b4rof18qotmd).

### What is the difference between Chicken Bonds and Olympus? <a href="#c2c3valbf2bj" id="c2c3valbf2bj"></a>

OlympusDAO was a significant innovation in bonding technology and moved DeFi forward as a whole. However, the “(3,3)” coordination game was relying on inflationary OHM rewards, initially allowing the protocol to acquire assets rapidly but then left late joiners holding the bag.

The bLUSD token will enjoy a rising price floor due to the amplified yield and the hard redemption mechanism. Though the market price premium can fluctuate, this backstop should limit reflexivity in the bLUSD price.

Bonding in Chicken Bonds is also principal-protected since bonders can choose to either Chicken In or withdraw their full LUSD principal.

Finally, the Chicken Bonds mechanism enables protocols to acquire liquidity at a greatly reduced cost compared to Olympus Pro. Whereas protocols using Olympus Pro are effectively buying liquidity at a premium, Chicken Bonds will naturally acquire protocol-owned funds at no cost beyond what is needed for initial bootstrapping. Bootstrapping costs can be low, and may simply amount to the foregone yield on an initial bond opened by the protocol team.

However, compared to Olympus, the POL will not be available instantly but will accrue gradually as users create bonds and Chicken In.


# Technical Design

### Are Chicken Bonds tokens fungible? <a href="#id-52kdbkx54liu" id="id-52kdbkx54liu"></a>

bLUSD is fully fungible and adheres to the ERC20 technical standard.

The bond NFT tokens are ERC721s, and by definition non-fungible. Each bond NFT is unique and corresponds to one of the generative art pieces created by the artist Luchador.

### What are the underlying sources of yield in LUSD Chicken Bonds?

The system deposits funds to two yield sources: primarily to the Stability Pool, and secondarily to the Curve LUSD/3CRV Pool.

The auto-compounding of yields is handled by two external components:

B.Protocol deposits the LUSD in the Stability pool and auto-compounds the revenues by selling the LQTY rewards and ETH liquidation gains back to LUSD.

The Yearn Curve vault deploys the LUSD to Curve and stakes the LUSD-3CRV LP token in Convex finance, converting and auto-compounding the gains back into more LUSD.

\[[YEARN VAULT](https://yearn.finance/#/vault/0x5fA5B62c8AF877CB37031e0a3B2f34A78e3C56A6)]

### What is the process for harvesting yield? <a href="#id-1soo9a51d6q8" id="id-1soo9a51d6q8"></a>

Each yield source auto-compounds the yield it earns. B.Protocol automatically swaps ETH and LQTY yield for LUSD at a discount via its custom B.AMM. It is the ETH buyers in the B.AMM who effectively perform the B.Protocol harvest.

Yearn regularly harvests the Curve LUSD vault yield manually. The harvest transaction is performed by a keeper address controlled by Yearn. Yearn admin address multi-sigs are listed [here](https://docs.yearn.finance/vaults/0.4.2/process-and-procedures/deployment).

In both cases, Chicken Bonds users do not need to perform any harvests themselves nor do they bear the harvest gas costs.

### What are the different system Buckets? <a href="#ydtvzh456fiz" id="ydtvzh456fiz"></a>

LUSD deposited in the system sits in one of three “buckets”:

**Pending Bucket:** holds the LUSD from all open bonds (which have not yet been Chickened In or Out). The yield earned by the Pending bucket is credited to the Reserve bucket.

**Reserve Bucket**: The Reserve bucket backs the whole bLUSD supply. bLUSD is fully redeemable for the LUSD in the Reserve. The Reserve receives a portion of the bonded LUSD from the Pending Bucket upon Chicken Ins and captures the yield from all 3 buckets.

**Permanent Bucket:** receives the other portion of the bonded LUSD from the Pending Bucket upon Chicken Ins. The LUSD in here is protocol-owned and can never be redeemed (except in case of a wind-down - \[see [What is the wind-down functionality?](/faq/potential-future-system-migration#what-is-the-wind-down-functionality)]). The yield earned by the Permanent Bucket is credited to the Reserve Bucket.

### How do the buckets relate to the yield sources in which the system deposits LUSD? <a href="#juwpr7mlhrnk" id="juwpr7mlhrnk"></a>

These buckets are virtual constructs inside the Chicken Bonds system and are purely used for internal accounting.

The yield sources however are actual external protocols: B.Protocol, and the Yearn Curve LUSD vault.

Funds in the pending bucket will always reside in B.Protocol (which in turn deposits them to the Stability Pool).

Funds in the Reserve and Permanent bucket can be in either B.Protocol or the Yearn Curve vault, and can be permissionlessly shifted between the two yield sources (depending on shifting restrictions - see \[[What are the conditions for shifting LUSD between the Stability Pool and Curve?](/faq/lusd-peg-stability#_vowf7444yzdt)]).

### Where does my bonded LUSD go when I create a bond? <a href="#ydvm65vi2j86" id="ydvm65vi2j86"></a>

The Chicken Bonds system deposits it directly to B.Protocol, which in turn immediately deposits it to the Liquity Stability Pool.

For internal accounting, your bonded LUSD is added to the Pending Bucket.

### Where does my bonded LUSD go when I Chicken In? <a href="#brca3p3wx1g" id="brca3p3wx1g"></a>

Chickening In does not move any LUSD between smart contracts. At the point of Chicken In, the bond’s LUSD remains deposited in B.Protocol.

However, your Chicken In causes changes in the system’s internal “bucket” accounting:

The bond is closed, and all of your bonded LUSD is removed from the Pending Bucket, and split into two portions. One portion is added to the “Reserve” bucket, and the other is added to the “Permanent” bucket.

The split ratio upon Chicken In depends on how much bLUSD your bond has accrued relative to your bLUSD cap - in other words, how “far along” your bond is on its accrual curve.

The closer your bond is to its bLUSD cap, the more of your deposited LUSD will be sent to the Reserve, and the less will be sent to the Permanent bucket.

The split quantities are given by these equations:&#x20;

$$b\_r = sp\_r$$

$$b\_d = b - sp\_r$$

&#x20;Where:&#x20;

$$b$$ is the initial bond amount

$$b\_r$$ is the bond amount sent to the Reserve\
$$b\_d$$ is the bond amount sent to the Permanent bucket

$$s$$ is the accrued amount of bLUSD

$$p\_r$$ is the redemption price

### Can I \*always\* Chicken Out and reclaim my bonded funds? <a href="#id-2exu7pulzvoy" id="id-2exu7pulzvoy"></a>

Yes, except in a potential edge-case scenario in which Chickening Out may be temporarily suspended for a small portion of users.

That is if Liquity has incurred heavy liquidations depleting the LUSD CB’s system Stability Pool deposit (made through B.Protocol). In this case, it can take some time for the system to convert the ETH liquidation gains back into LUSD.

If all bonders were to Chicken Out, there may temporarily not be enough LUSD in B.Protocol to cover all bond withdrawals, and some transactions would revert.

However once the ETH gains have been converted back to LUSD, all users will be able to withdraw.

**Note**: This assumes that liquidations are at least break-even in terms of Stability Pool depositor returns. Historically, liquidations have always been profitable for depositors.

### Will Liquity AG host a Chicken Bonds front end? <a href="#id-19es6wijugyn" id="id-19es6wijugyn"></a>

No. However, we have extended the Liquity front end template to include LUSD Chicken Bonds functionality.

Several Liquity front end operators will enable front end access to the LUSD Chicken Bonds system. You will be able to create bonds, Chicken In, Chicken Out, and trade bLUSD against LUSD through these front ends.

### Can the system be upgraded or changed? <a href="#v7jakq6mws25" id="v7jakq6mws25"></a>

After deployment and initialization, no upgrade is possible. The Liquity AG team has no admin or governance control over the core system logic. However, the system is not entirely immutable - one limited change can be made:

**Wind-down activation**

There is a one-time “graceful wind-down” functionality that can be triggered by Yearn’s Governance address if/when the Yearn Curve LUSD vault becomes obsolete. See the \[[Potential future system migration](/faq/potential-future-system-migration#what-is-the-wind-down-functionality)] section for more information.

**Previous One-time artwork upgrade**

The protocol previously had a one-time artwork upgrade capacity. This has already been used to add artwork for the NFTs, and artwork can now not be altered.

### Who has control over the Chicken Bonds funds?

**Funds in the Yearn Curve LUSD Vault**

Yearn have admin control over the Curve Vault and are able to arbitrarily add and remove Strategy contracts used by the Vault. Since the Strategy contracts control where Vault funds are deposited, Yearn theoretically have control over a quantity of Chicken Bond funds equal in size to the Permanent bucket, plus any pending yield accumulated by the Curve Vault.

Additionally, a malicious strategy deployed to the Yearn Curve Vault could report a fake price for Yearn shares - allowing an arbitrary amount of CB system funds to be shifted to it, as long as the LUSD peg permits.

A malicious Vault strategy could also make bLUSD redemptions fail.\
This means that in practice Yearn have control over all system funds.

**Funds in B.Protocol**

The B.AMM contract which sells the ETH acquired via Liquity liquidations is immutable with no admin control.

The GemSeller contract sells the acquired LQTY and is upgradeable - therefore, B.Protocol theoretically have control over the unharvested LQTY portion of the yield earned by Chicken Bonds.


# Potential future system migration

Yearn have communicated their intent to continue support for all v2 vaults indefinitely, even past deployment of their upcoming v3 vaults. However, it is conceivable that at some point in future they would deprecate v2 vaults. In this case, they would:

* Disable deposits to the LUSD Curve pool
* Cease harvesting yield on the LUSD Curve pool

If this occurs, one would consider launching a new LUSD Chicken Bonds system that is hooked up to the v3 vault and encouraging users to migrate their funds.

It is important that if and when Yearn deprecate the v2 vault, all LUSD can be extracted from the old Chicken Bonds system via a combination of redemptions and chicken-outs.

### What is the wind-down functionality?

The LUSD Chicken Bonds system contains "wind down" functionality whereby Yearn governance can *prepare* the system for migration by making all funds redeemable, with a one-time **wind-down trigger.**

When a suitable v3 vault is live, we would deploy a fresh instance of LUSD Chicken Bonds connected up to it - and encourage users to manually migrate.

Yearn governance can - once only - trigger the wind-down state. This immediately moves all funds in the Permanent bucket to the Reserve bucket, thus making those funds redeemable.

The wind-down state comes with the following changes to the system rules:

-New bond creation is disabled\
-Chicken In fees are waived\
-LUSD shifting is disabled

In the wind-down state, users are encouraged to withdraw their funds. Bonders should Chicken Out, and bLUSD holders should redeem. Users can then create bonds in the new LUSD Chicken Bonds instance which will be hooked up to the v3 Yearn vault.

### Do Yearn control any Chicken Bonds funds?

The wind-down activation simply enacts the changes above, and changes Chicken Bonds’ internal system accounting: the Permanent bucket is emptied, and the funds it contained are added to the Reserve bucket.\
\
However, Yearn theoretically also have control over system funds - see here: “[Who has control over the Chicken Bonds funds?](https://docs.chickenbonds.org/faq/technical-design#who-has-control-over-the-chicken-bonds-funds)”.


# LUSD Peg Stability

### How does LUSD Chicken Bonds system improve the LUSD peg stability? <a href="#szz9zzdes51j" id="szz9zzdes51j"></a>

The LUSD Chicken Bonds system accumulates protocol-owned LUSD. When users bond LUSD, it is initially deposited to the Stability Pool (via B.Protocol).

When a user Chickens In their bonded LUSD becomes protocol owned and gets split between the Reserve and the Permanent bucket.

LUSD in the Permanent Bucket can be shifted out of the Stability Pool and into the Curve pool (via the Yearn Curve vault). Funds in Curve can also be shifted back to the Stability Pool. These are the so-called Shifter functions.

Shifting funds in or out of the Curve pool changes the Curve LUSD spot price, and Curve is the main venue for LUSD trading.

The system ensures that shifting of funds is only possible when it *improves* the peg. See [shifting conditions](#_vowf7444yzdt).

### What are the conditions for shifting LUSD between the Stability Pool and Curve? <a href="#vowf7444yzdt" id="vowf7444yzdt"></a>

The following conditions apply:

* The shift must always improve the LUSD peg on Curve. That is, it must bring the LUSD spot price closer to 1.0, without crossing the 1.0 boundary. In practice, a slight “buffer zone” is in place with boundaries just above and below 1.0 to ensure at least slight profitability of shifting for the system. The boundaries of the price buffer zone are \[x.y]. In practice this is 1 +/- 0.0004.

The graphic below shows viable shifts:

<figure><img src="/files/9ozdoKz45a5u0oMOIyjG" alt=""><figcaption></figcaption></figure>

These additional restrictions apply:

* Shifting is disabled for an initial bootstrap period of 45 days. During this period, all system funds will reside in the Stability Pool (via B.Protocol). The bootstrap period started with the launch of Chicken Bonds on October 4, 2022. Thus, the Shifter functions are active.
* Shifting funds operate on a ‘commit-shift’ scheme. If you want to shift funds to or from Curve, you must start a shifter countdown (1 hour) after which a time window opens (10 minutes). Shifting is only possible during this time window. The role of the countdown is to limit the possible frontrunning of Liquity liquidations by shifts of Chicken Bonds funds. You can learn more about the Shifter countdown [here](https://github.com/liquity/ChickenBond/#shifter-countdown-period-and-shifting-window).

### Who can shift system funds between the Stability Pool and Curve? <a href="#dgavdm2nyhes" id="dgavdm2nyhes"></a>

Anyone. Shifting functionality is permissionless, but subject to restrictions (see above).

### What are the incentives for shifting LUSD to or from Curve? <a href="#id-23o3nwmv9ci2" id="id-23o3nwmv9ci2"></a>

There's no direct financial incentive to call it - the caller will incur gas costs. However, anyone who would benefit from an instant LUSD peg improvement - for example, an LUSD borrower who wants to repay their loan - is incentivized to call it.

For example: if LUSD is above peg, a Liquity borrower seeking to buy LUSD to repay their Trove may decide to first use Chicken Bonds to shift system funds to Curve before buying their LUSD. After the shift, they can buy LUSD at a better price closer to 1.0.

### How to check the amount that can be shifted?

In order to check the LUSD amount that can be shifted between the Stability Pool into the Curve pool you have to check what is the difference between `getPermanentLUSD` - `getTotalLUSDInCurve`. You can check this on [Etherscan](https://etherscan.io/address/0x57619FE9C539f890b19c61812226F9703ce37137#readContract). The contract address is: 0x57619FE9C539f890b19c61812226F9703ce37137

When shifting from Curve to SP, the maximum amount that can be shifted can be found in `getTotalLUSDInCurve`.

The difference between permanent LUSD and total LUSD in Curve is the amount that’s currently idle (i.e. can be shifted into Curve).

### How can you execute the Shifter functions?

Before executing a Shifter function the `startShifterCountdown` function needs to be called. It will open a window between 1h and 1h10' after calling it when the Shifter function can be executed.

During the 10-minute period, anyone can call the Shifter functions and define the amount that should be shifted from Curve to the permanent bucket or the other way around.

The two system Shifter functions: `shiftLUSDFromSPToCurve` and `shiftLUSDFromCurveToSP` have one param that needs to be set to call the two functions: `_maxLUSDToShift`. This parameter defines how much you want to shift. If you try to move more LUSD than the available amount, the function will still work, but it will clamp the amount to the max possible that can be shifted. If the amount is less than the max available, it will just shift less.

### How can you find out if and when a Shifter function was triggered?

You can get the time when the countdown was started from [Etherscan](https://etherscan.io/address/0x57619FE9C539f890b19c61812226F9703ce37137#readContract), with the `lastShifterCountdownStartTime` function. It’s a Unix timestamp, which can be converted to date via [epochconverter.com](https://www.epochconverter.com/) or a similar tool. You need to add 1 hour to that, in order to get the time of the window opening.\ <br>


# Others

### What is the relationship between Liquity and Chicken Bonds? <a href="#xm5bro99n4h" id="xm5bro99n4h"></a>

Liquity AG is the company that developed Liquity, the decentralized borrowing protocol.

LUSD Chicken Bonds is also being developed and deployed by Liquity AG.

The Liquity *protocol* is completely immutable, and the launch of Chicken Bonds products does not technically alter Liquity in any way.

LUSD Chicken Bonds is a separate smart contract system on Ethereum which utilizes Liquity’s stablecoin, LUSD, and provides an enhanced yield opportunity for LUSD holders.

While Liquity AG developed the Chicken Bonds Software, the Chicken Bonds Software runs in a fully decentralized and autonomous manner on the Ethereum network. Liquity AG is neither involved nor in any way responsible for the operation, running or functioning of the Chicken Bonds Software and/or any of the interactions, collaborations or factual relationships between Users and the smart contracts of the Chicken Bonds Software.

Liquity AG has neither access to nor any other possibility to control and/or influence the corresponding transactions, deposits and/or allocations made by the Users and the involved smart contracts using the Chicken Bonds Software. Liquity AG does not operate an own frontend, nor has it entered in any relationship with the frontend operators.

Liquity AG has only the possibility to update the SVG art for Chicken In and Chicken Out NFTs once. This will happen as soon as the art is finalized shortly after the deployment on mainnet. After this final step, Liquity has no control over the protocol and can’t change any parameters, NFT art and/or update any smart contracts.

For more information please see the [protocol disclaimer](https://www.chickenbonds.org/chicken-bonds-protocol-disclaimer) on the Chicken Bonds website.

### Will Liquity’s LQTY token accrue value from Chicken Bonds? <a href="#id-8h6h008upp0b" id="id-8h6h008upp0b"></a>

LQTY will not directly accrue value from LUSD Chicken Bonds - though an improved LUSD liquidity and peg should be broadly positive for the Liquity ecosystem.

### **What is the process for creating an LUSD Bond from your Gnosis Safe?**

1. **Approve Chicken Bonds to use your LUSD**

* In Gnosis Safe, goto New transaction -> Contract interaction
* Input the LUSD contract address:

0x5f98805A4E8be255a32880FDeC7F6728C6568bA0

Choose the `approve` function from the dropdown list

* In the `spender` field, input the ChickenBondManager contract address: 0x57619FE9C539f890b19c61812226F9703ce37137
* In the `amount` field, input the amount with 18 zeros on the end. e.g. to approve 1234 LUSD, enter “1234000000000000000000”
* Submit, sign and execute the transaction in Gnosis Safe

**2. Create a bond with your LUSD**

* In Gnosis Safe, goto New transaction -> Contract interaction
* Input the ChickenBondManager contract address:

0x57619FE9C539f890b19c61812226F9703ce37137

* Choose the `createBond` function from the dropdown list
* In the `_lusdAmount` field, enter the amount with 18 zeros on the end, e.g. to bond 1234 LUSD, enter “1234000000000000000000"
* Submit, sign and execute the transaction in Gnosis Safe

###


# Technical Resources

## Technical Papers

[Whitepaper](https://docsend.com/view/jcn5graybxqn9ryi)

[Technical Readme](https://github.com/liquity/ChickenBond)

[RiskDAO - Fair Price Formula Bounty Submission](https://github.com/Risk-DAO/Reports/blob/main/Chicken%20bonds%20analysis.pdf)

## Security Audits

[Coinspect - Smart Contract Audit](https://github.com/liquity/ChickenBond/blob/main/LUSDChickenBonds/audits/Coinspect%20-%20Smart%20Contract%20Audit%20-%20Liquity%20ChickenBond.pdf)

[Coinspect - Smart Contract Audit v2](https://github.com/liquity/ChickenBond/blob/main/LUSDChickenBonds/audits/Coinspect%20-%20Smart%20Contract%20Audit%20-%20Liquity%20ChickenBonds%202nd%20v220803.pdf)

[Coinspect - Smart Contract Audit v3](https://github.com/liquity/ChickenBond/blob/main/LUSDChickenBonds/audits/Coinspect%20-%20Smart%20Contract%20Audit%20-%20Liquity%20ChickenBonds%203rd%20v220929.pdf)

[Coinspect - Smart Contract Audit v4](https://github.com/liquity/ChickenBond/blob/main/LUSDChickenBonds/audits/Coinspect%20-%20Smart%20Contract%20Audit%20-%20Liquity%20ChickenBonds%204th%20v221021.pdf)

[Dedaub - Smart Contract Audit](https://github.com/liquity/ChickenBond/blob/main/LUSDChickenBonds/audits/Dedaub_Chicken%20Bonds%20Audit.pdf)

[Dedaub - Delta Audit (NFT additions)](https://github.com/liquity/ChickenBond/blob/main/LUSDChickenBonds/audits/Dedaub_Chicken%20Bonds%20Delta%20Audit%20\(NFT%20additions\).pdf)

[Dedaub - B.Protocol Chicken Bonds Integration](https://github.com/liquity/ChickenBond/blob/main/LUSDChickenBonds/audits/B.Protocol%20-%20Chicken%20Bonds%20Audit.pdf)

## Analytics / Stats

[Dune Dashboard 1](https://dune.com/chickenbonds/lusd)

[Dune Dashboard 2](https://dune.com/bpierre/chicken-bonds)

## Contract Addresses

| Name                                    | Address                                    |
| --------------------------------------- | ------------------------------------------ |
| BLUSD\_AMM\_ADDRESS                     | 0x74ED5d42203806c8CDCf2F04Ca5F60DC777b901c |
| BLUSD\_AMM\_STAKING\_ADDRESS            | 0xdA0DD1798BE66E17d5aB1Dc476302b56689C2DB4 |
| BLUSD\_TOKEN\_ADDRESS                   | 0xB9D7DdDca9a4AC480991865EfEf82E01273F79C3 |
| BOND\_NFT\_ADDRESS                      | 0xa8384862219188a8f03c144953Cf21fc124029Ee |
| BOND\_NFT\_INITIAL\_ARTWORK\_ADDRESS    | 0x91678E87e220855cb4Ec169AbDC9E7B5f3dC0187 |
| CHICKEN\_BOND\_MANAGER\_ADDRESS         | 0x57619FE9C539f890b19c61812226F9703ce37137 |
| MAINNET\_BPROTOCOL\_LUSD\_BAMM\_ADDRESS | 0x896d8a30C32eAd64f2e1195C2C8E0932Be7Dc20B |
| Curve.fi bLUSDLUSD3-f Gauge             | 0xdA0DD1798BE66E17d5aB1Dc476302b56689C2DB4 |


# Bug Bounty

A bug bounty program for LUSD Chicken Bonds’ smart contracts is now live. We intend for hackers to look for smart contract vulnerabilities in our system that can lead to loss of funds or locked components.&#x20;

The preferred way to submit a vulnerability is through **Chicken Bonds’ Vault** on the [Hats Finance platform. ](https://app.hats.finance/vaults)If for any reason, Hats can't be used, vulnerabilities can also be sent using the method described below.

### Rewards

Vulnerability reports will be scored using the [CVSS v3](https://www.first.org/cvss/) standard. The reward amounts for different types of vulnerabilities are:

**🚨 Critical (CVSS 9.0–10.0)**

→ $25,000 - $50,000

**⚠️ Major (CVSS 7.0–8.9)**

→ $5,000 - $25,000​

**⚡ Medium (CVSS 4.0–6.9)**

→ $500 - $5,000

**🐛 Low (CVSS 1.0–3.9)**

→ $100 - $500

Rewards will be awarded at the sole discretion of Liquity AG. The quality of the report and reproduction instructions can impact the reward. Rewards are denominated and paid out in USD. If both parties agree, rewards can also be paid out in crypto.

For this initial bug bounty program, there is a **maximum bounty pool of $50,000**.

The bug bounty program is ongoing and has been running since October 6th, 2022.

### Reporting a Vulnerability

Please responsibly disclose any findings to the development team, following these instructions:

* In order to report a vulnerability, please write an email to **<security@liquity.org>** with \[SECURITY DISCLOSURE] in the subject of the email.
* For sensitive vulnerabilities, please encrypt the email using this [PGP key](https://keys.mailvelope.com/pks/lookup?op=get\&search=security@liquity.org) (Fingerprint: D4BA B0E7 3B99 4FC5 79DC 9E0A C640 0C72 C5B8 CA28).
* We will make our best effort to reply in a timely manner and provide a timeline for resolution.
* Please include a detailed report on the vulnerability with *clear* reproduction steps. The quality of the report can impact the reward amount.

Failure to do so will result in a finding being ineligible for any bounties.

### Scope

In scope for the bug bounty are all the smart contract components of the Liquity protocol. They can be found in the following repositories:

* <https://github.com/liquity/ChickenBond>

Solidity code under the `LUSDChickenBonds/src` directory:

* Excluding `LUSDChickenBonds/src/ExternalContracts`
* Excluding `LUSDChickenBonds/src/test`

### Out of scope

* Any frontend applications or client-side code interacting with the contracts, as well as testing code.&#x20;
* Mismatch of the functionality of the contracts and outdated spec documents.

### Areas of interest

These are some examples of vulnerabilities that would be interesting:&#x20;

* Stealing tokens or manipulating the token generation process.
* Locking or freezing any of the ChickenBond contracts.
* Griefing attacks: is it possible to block Chicken In, Chicken Out, redemptions, etc?
* Flash loan exploits

### Resources

* [LUSD ChickenBonds README](https://github.com/liquity/ChickenBond/blob/main/README.md)

### Eligibility

Terms for eligible bounties:&#x20;

* Only unknown vulnerabilities will be awarded a bounty; in case of duplicate reports, the first report will be awarded the bounty.
* Public disclosure of the vulnerability, before explicit consent from Liquity AG to do so, will make the vulnerability ineligible for a bounty.
* Attempting to exploit the vulnerability in a public Ethereum network will also make it ineligible for a bounty.&#x20;


