# Bloom V2

Bloom is a protocol that brings yields derived from the "risk-free"(1) treasury bill rate into the DeFi landscape. Bloom V2 has expanded this idea of permissionless lending into a commercial loan that tracks the risk-free rate with a novel RWA order-book design that provides a seamless experience for all participants in the system.&#x20;

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Bloom Basics</strong></td><td>Learn what Bloom is and why its important for DeFi and the greater financial landscape.</td><td><a href="/files/vxs1ER5I8VkIA0IaOqfo">/files/vxs1ER5I8VkIA0IaOqfo</a></td><td></td><td><a href="/pages/XhwG0OFdkSYD3nKPBwCO">/pages/XhwG0OFdkSYD3nKPBwCO</a></td></tr><tr><td><strong>Tokenized RWAs</strong></td><td>Our approach to using tokenized RWAs</td><td><a href="/files/WqTZslyWgLz3XWQj63oY">/files/WqTZslyWgLz3XWQj63oY</a></td><td></td><td><a href="/pages/jSkNRNtYsir57teH3GkO">/pages/jSkNRNtYsir57teH3GkO</a></td></tr><tr><td><strong>Technical Docs</strong></td><td>Technical documentation for more details on the inner-workings of the protocol and how to integrate Bloom.</td><td><a href="/files/UHF7zjwcq36zmrwja3ub">/files/UHF7zjwcq36zmrwja3ub</a></td><td></td><td><a href="/pages/BxZwsAXikfGRRZch4MnH">/pages/BxZwsAXikfGRRZch4MnH</a></td></tr><tr><td><strong>FAQs</strong></td><td>Frequently Asked Questions</td><td><a href="/files/UHF7zjwcq36zmrwja3ub">/files/UHF7zjwcq36zmrwja3ub</a></td><td></td><td><a href="/pages/JFnjAkGgNtTcgBCkCsNl">/pages/JFnjAkGgNtTcgBCkCsNl</a></td></tr><tr><td><strong>Audits</strong></td><td>All audits covering Bloom V2.</td><td><a href="/files/UHF7zjwcq36zmrwja3ub">/files/UHF7zjwcq36zmrwja3ub</a></td><td></td><td><a href="/pages/BjzPuh7MnBQ2HGwuGivS">/pages/BjzPuh7MnBQ2HGwuGivS</a></td></tr><tr><td><strong>Legal</strong></td><td>Our terms of service and privacy policy</td><td><a href="/files/UHF7zjwcq36zmrwja3ub">/files/UHF7zjwcq36zmrwja3ub</a></td><td></td><td><a href="/pages/HZsuOZZ1GFvPerLwb91I">/pages/HZsuOZZ1GFvPerLwb91I</a></td></tr></tbody></table>

{% hint style="info" %}

1. Treasuries are debt obligations of the U.S. government, and because these obligations are backed by the "full faith and credit" of the government, they are generally considered one of the safest of all investments. However, even treasuries carry some credit risk. See the “Risk” section of these documents for additional information.
   {% endhint %}


# Why Bloom?

## What problem does Bloom solve?

Yields in major DeFi money markets have troughed and are struggling to keep up with the traditional debt markets. Compare this with treasury bill rates, and consider the necessary risk premium for smart contracts and pooled token exposure, and it's no surprise lending TVL onchain has decreased considerably.

The "risk-free" rate is typically defined as the interest rate the U.S. federal government is willing to pay lenders. Because they are often considered the lowest-risk borrower in the market, the rest of the debt market naturally must pay a higher rate to reflect their entity's respective risk premium.

However, in DeFi, major money markets price rates are based solely on utilization. Utilization curves are non-reactive to external variables like the federal funds rate, at least directly. Of course, money may flow out of them towards the risk-free rate, which would affect utilization. The problem with these utilization-based curves is that to create a reasonable lend/borrow spread, yields can rarely exceed 3-4% for most stablecoins.

The second, and more important, problem, is that RWAs do not yet exist onchain in a meaningful and integrated capacity. The RWAs that do exist onchain require full KYC procedures, and once issued, are relegated to a siloed ecosystem of unused DeFi products that completely kneecap the utility of an asset being onchain.

It is our strongly held opinion that nearly all of the value of DeFi comes from boundless composability. Composability is the feature that unlocks hyper-scalability, democratized access, and ultimately unlocks the power of DeFi.

Bloom is the first step to DeFi's superiority and the beginning of the end of the old ways.


# How Bloom V2 Works

### Overview

The mechanics of Bloom V2 work similarly to a lending orderbook but with a multi-stage approach to support the three types of participants that make up the protocol, lenders, borrowers, and market makers.&#x20;

### Open Order

Open Orders are created whenever lenders lend to the `BloomPool`. When this occurs `USDC` is transferred to the `BloomPool` and held until the lender either cancels their order or a borrower matches their order request. Orders are grouped by the lenders address.

### Matched Order

Matched Orders are created whenever a borrower fills a lender's open order. Borrower's matches are leveraged, so they are not required to match the lender's full order size. Matched Orders are grouped by the lender's addresses as well as a secondary grouping of borrower's addresses who filled that specific lender's orders.&#x20;

Both lenders and borrowers can cancel match orders. If a lender cancels their matched order, the order will be closed out in a LIFO sequential method by the borrower that filled the order. During lender cancellations, the capital for borrowers does not get transferred back to them. Instead it will be converted to idle capital that can be used to fill future open orders, which can be withdrawn by the borrower at any time. If the borrower cancels an order, borrower's funds are transferred back to them and the lender's matched order gets converted to an open order.

Once an order is matched it is eligible to be turned into a `TBY` and start generating yield. This is done by market makers filling this request in batches lasting `48 hours`.

### Live Orders

Matched Orders are converted into live orders as the market maker begins swapping `bIb01` tokens into the `BloomPool` in exchanged for `USDC` . The market maker has `48 hours` to complete as many orders as they would like. As the swaps occur, lenders will be minted `TBY`s representing their deposit into the system that will generate interest. These `TBY`s have a start time of `48 hours` after the first swap in a batch has occurred and a maturity date `180 days` after the start time.&#x20;

Live orders; `TBY`s cannot be canceled or redeemed early as it is a fixed-maturity commercial loan and is locked for that time period.&#x20;

### Matured Orders

At the end of the `180 days` `TBY`s will mature and market makers can fulfill their duties swapping `USDC` back into the `BloomPool` for `bIb01` tokens. This can occur at any time and in any number of batches. Lender's and borrower's must wait for all rwa collateral to be swapped from a given `tbyId` before their collateral and yield is redeemable.


# Participants

There are three key participants that allow Bloom operate

### Lenders

Lenders are non-kyced, non-permissioned participants who lend USDC to borrowers for short-dated 6 month maturity receipt tokens, called Term Bound Yield tokens or `TBYs` for short. At the end of the token's maturity the lender will have the ability to redeem their `TBY` for their original principal amount plus any yield that is generated during the 6-month time period.&#x20;

### Borrowers

Borrowers are fully KYCed and permissioned users who borrow lender's funds in order to facilitate the purchase of Backed Finance's bIb01 tracker token which derives it's price based on the [Blackrocks ib01 Treasury Bond ETF ](https://www.blackrock.com/americas-offshore/en/products/307243/ishares-treasury-bond-0-1yr-ucits-etf).&#x20;

### Market Makers

Market Makers are fully KYCed and permissioned users who swap Backed's `bIb01` token and USDC in and out of the `BloomPool` in order to kickstart the yield generating process of `TBY`s.


# Lenders

### Overview

Lenders are any participants who wish to lend USDC to qualified borrowers for fixed terms of 6-month maturities and receive receipt tokens, called Term Bound Yield tokens or `TBYs` for short.&#x20;

### Yield Generated

At the end of the token's maturity, the lender will have the ability to redeem their `TBY` for their original principal amount plus any interest that is generated during the 6-month time period.&#x20;

### How to participate

If you are interested in becoming a lender within the `BloomPool` system, visit our [website](https://bloom.garden/), and lend your USDC today!


# Borrowers

### Overview

Borrowers are fully KYCed and qualified users who can borrow lender's funds to strictly facilitate the purchase of Backed Finance's `bIb01` token, which represents [Blackrocks ib01 Treasury Bond ETF](https://www.blackrock.com/americas-offshore/en/products/307243/ishares-treasury-bond-0-1yr-ucits-etf).&#x20;

### Yield Generated

Borrowers generate returns based on the spread between the value of a given `TBY` and the value generated from the `bIb01` token during the 6-month duration of the `TBY`.  At the end of the 6-month maturity date, market makers complete the final swap, borrowers can redeem their yield by calling `BloomPool::redeemBorrower` and passing the token `id` of the relevant `TBY`. This will withdraw the maximum amount of liquidity available for the borrower.

### How to participate

Borrowers must be fully KYCed to participate in the system. If you are interested in becoming a borrower please reach out to us at <Support@Bloom.garden>


# Market Makers

### Overview

Market Makers facility the swapping of borrower's USDC and Backed Finance's `bIb01` token at the beginning and end of the `TBY` lifecycle.&#x20;

### How to participate

Market Makers must be fully KYCed to participate in the system. If you are interested in becoming a borrower please reach out to us at <Support@bloom.garden>

{% hint style="info" %}
It should be noted that Market Makers do not turn a profit from their contribution to the system. They provide support in keeping open sourced public goods alive.
{% endhint %}


# Fee Structure

**Lender Fees**: Bloom Protocol takes no fees associated with lenders

**Borrower Fees**: Bloom Protocol takes no fees associated with borrowers&#x20;

**Performance Fees**: Bloom Protocol takes no fees associated with performance

**Bloom was designed to be a public good and charges no fees to any of participants.**&#x20;


# Backed Finance's bIb01

### Overview

The Backed IB01 $ Treasury Bond 0-1yr, `bIb01` , is an ERC20 tracker certificate token issued by Backed Finance. It tracks the price of Blackrock's iShares $ Treasury Bond 0-1yr UCITS ETF.&#x20;

### Purpose

For borrowers to be able to use the funds they borrowed to purchase `bIb01` tokens. To be able to have an increased exposure to the current federal funds rate.&#x20;

For more information on Backed's `bIb01` token visit <https://assets.backed.fi/products/bib01>.


# TBYs

### Overview

Term Bound Yield tokens or `TBY`s for short are receipt tokens minted to lenders within the `BloomPool` whose orders have been matched to a borrower and subsequently processed by market makers.

### Mint Process

The minting process occurs once market makers fill a lender's matched order.

`TBY`s all share the same deployment address and are differentiated by token Ids.  The token Id will correspond to the start time and end time of the `TBY`s yield generating window and will start at `Id=0` and increment up with every unique maturity period.&#x20;

### Yield&#x20;

`TBY`'s rate is determined by the given `rwaPriceFeed`, which is a Chainlink Price Feed for the `rwa` asset, and the borrower's spread. To get the value of a `TBY` simply call `BloomPool::getRate` and pass in the token `id`. Once the `TBY` is fully mature all yield accrual stops. <br>

{% hint style="info" %}
The spread is only taken on the yield generated from the `rwa`. In the event that the rate is less than or equal to `1e18`, no spread will be taken.
{% endhint %}

### Maturity

All `TBY`s have a `180 day` maturity from their `start` time to their `end` time.

### Redemption Process&#x20;

Once the maturity date has been reached and the market maker has completed their swap of `bIb01` to `USDC` within the `BloomPool`, lenders are free to redeem their `TBY`s for their principal and yield by calling `BloomPool::redeemLender` and passing their token `id` and the `amount` of `TBY`s they are redeeming.


# Smart Contracts


# BloomPool

## Overview

The core smart contract of the Bloom Ecosystem. Acting as the main entry point for users accessing permissionless RWA yield.

It is made up of three components.&#x20;

* The core logic of handling market maker swaps, `TBY` yield and redemptions.
* The `Orderbook`
* Global `PoolStorage`

This page will break down the first of the three with the `Orderbook` and `PoolStorage` being covered extensively within the following subsections.

## Contract API

### `getRate`

```solidity
function getRate(uint256 id) public view override returns (uint256);
```

Returns the current rate of a `TBY` in terms of USD.

### `redeemLender`

```solidity
function redeemLender(uint256 id, uint256 amount) external returns (uint256 reward);
```

Redeems the callers `TBY` . Burning the token and sending the user their share of rewards generated during the tokens lifecycle.

{% hint style="info" %}
Lenders can only redeem if market makers have done their job swapping the `rwa` for the `asset`.&#x20;
{% endhint %}

### `redeemBorrower`

```solidity
function redeemBorrower(uint256 id) external returns (uint256 reward);
```

Redeem the borrowers's share of rewards generated from the `rwa` at the time of maturity.

{% hint style="info" %}
Borrowers can only redeem if market makers have done their job swapping the `rwa` for the `asset`.&#x20;
{% endhint %}

### `borrowerAmount`

```solidity
function borrowerAmount(address account, uint256 id) external view returns (uint256);
```

Returns the total amount of assets a borrower has contributed for a given `TbyId`

### `swapIn`

```solidity
function swapIn(address[] memory accounts, uint256 assetAmount)
    external
    KycMarketMaker
    returns (uint256 id, uint256 amountSwapped);
```

Swaps in `asset`s for `rwa` tokens, starting the `TBY` minting process. If interacted with multiple times in a `48 hour` period the `TBY`s that get minted will have the same token `id`, `start` , and `end` time. For system efficiency it is recommended that market makers batch as many matched orders as possible.

Returns the `id` of the `TBY` the swap was for, as well as `amountSwapped` , representing the total amount of `asset`s swapped out of the pool.

{% hint style="info" %}
This is a permissioned function. Only fully KYCed Market Makers can call this function.
{% endhint %}

### `swapOut`

{% hint style="info" %}
This is a permissioned function. Only fully KYCed Market Makers can call this function.
{% endhint %}

```solidity
function swapOut(uint256 id, uint256 rwaAmount) external KycMarketMaker returns (uint256 assetAmount);
```

Swaps `asset` tokens in and `rwa` tokens out, ending the TBY life cycle.

Returns `assetAmount`, representing the total amount of `asset`s swapped into the pool.


# Orderbook

## Overview

The `Orderbook` contains modified order-book functionality, matching lenders to borrower within the `BloomPool` .

## Contract API

### `openDepth`

```solidity
function openDepth(uint256 amount) external;
```

Returns the current total depth of open orders in terms of `asset` tokens.

### `amountOpen`

```solidity
function amountOpen(address account) external view returns (uint256);
```

Returns the total amount of underlying `asset`s in open orders for a users `account`.

### `lendOrder`

```solidity
function lendOrder(uint256 amount) external;
```

Opens a lend order for a user.

{% hint style="info" %}
Users have the right at anytime to cancel their lend order and withdraw their assets.
{% endhint %}

{% hint style="warning" %}
Assets will be transferred to the `BloomPool` contract when executing this function, but no receipt token will be given. `TBY`s are only minted after orders have been matched and market makers have performed their swaps.
{% endhint %}

### `killOpenOrder`

```solidity
function killOpenOrder(uint256 amount) external;
```

Allows users to cancel their open lend order and withdraw their underlying assets.

### `matchedDepth`

```solidity
function matchedDepth() external view returns (uint256);
```

Returns the current total depth of matched orders.

### `amountMatched`

```solidity
function amountMatched(address account) external view returns (uint256 amount);
```

Returns the total `amount` of underlying assets in matched orders for a users `account`.

### `matchedOrder`

```solidity
function matchedOrder(address account, uint256 index) external view returns (MatchOrder memory);
```

Returns the matched order details for a users `account` in the form of a `MatchOrder` struct.&#x20;

```solidity
/**
 * @notice Struct to store the details of a lend order that has been matched.
 * @param lCollateral The amount of underlying assets the lender used as collateral.
 * @param bCollateral The amount of underlying assets the borrower used as collateral.
 * @param borrower The address of the borrower who filled the order.
*/
struct MatchOrder {
   uint128 lCollateral;
   uint128 bCollateral;
   address borrower;
}
```

### `matchedOrderCount`

```solidity
function matchedOrderCount(address account) external view returns (uint256);
```

Returns the number of matched orders for a users `account`.

### `killMatchOrder`

```solidity
function killMatchOrder(uint256 amount) external returns (uint256 totalRemoved);
```

Allows users to cancel their match lend orders and withdraw their underlying assets.&#x20;

Returns the `totalRemoved` amount in terms of `asset` tokens.

### `killBorrowerMatch`

```solidity
function killBorrowerMatch(address lender) external returns (uint256 lenderAmount, uint256 borrowerReturn);
```

Allows borrowers to cancel their match orders and withdraw their underlying assets

Returns the `lenderAmount` and `borrowerReturn` in terms of underlying assets that were returned to the various users.

### `fillOrder`

{% hint style="info" %}
This is a permissioned function. Only KYCed borrowers can call this function.
{% endhint %}

```solidity
function fillOrder(address account, uint256 amount) external returns (uint256 filled);
```

Allows borrowers to fill a single `account`s lend order with a specified `amount` of underlying assets.

Returns the amount of liquidity filled in terms of `asset` tokens.

### `fillOrders`

{% hint style="info" %}
This is a permissioned function. Only KYCed borrowers can call this function.
{% endhint %}

```solidity
function fillOrders(address[] calldata accounts, uint256 amount) external returns (uint256 filled);
```

Allows borrowers to fill a multiple `account`s lend orders with a specified `amount` of underlying assets.

Returns the amount of liquidity filled in terms of `asset` tokens.

### `idleCapital`

```solidity
function idleCapital(address account) external view returns (uint256);
```

Returns the idle capital of the borrower.

### `withdrawIdleCapital`

```solidity
function withdrawIdleCapital(uint256 amount) external;
```

Allows borrowers to withdraw idle capital from the system.


# PoolStorage

## Overview

`PoolStorage` contains the global state variables that are accessed throughout all components of the `BloomPool`.

## Contract API

### `tby`

```solidity
function tby() external view returns (address);
```

Returns the address of the `TBY` token.

### `asset`

```solidity
function asset() external view returns (address);
```

Returns the address of the underlying asset of the pool.

### `assetDecimals`

```solidity
function assetDecimals() external view returns (uint8);
```

Returns the number of decimals for the underlying asset of the pool.

### `rwa`

```solidity
function rwa() external view returns (address);
```

Returns the address of the RWA token of the pool.

### `rwaDecimals`

```solidity
function rwaDecimals() external view returns (uint8);
```

Returns the number of decimals for the RWA token of the pool.

### `isKYCedBorrower`

```solidity
function isKYCedBorrower(address account) external view returns (bool);
```

Returns `true` if the `account` is a valid borrower and `false` if it is not.

### `isKYCedMarketMaker`

```solidity
function isKYCedMarketMaker(address account) external view returns (bool);
```

Returns `true` if the `account` is a valid market maker and `false` if it is not.


# TBY

## Overview

Term Bound Yield tokens or `TBY`s for shorts are the yield generating receipt tokens for lenders within `BloomPool`s. `TBY`s are `ERC1155` compatible multi-tokens who's token `id`s represent specific yield generating periods. Token `id`s will start at `0` and increment sequential by one. For me information on `TBY`s please refer to the `Tokenized Rwa` section of the docs.&#x20;

Below is the unique interface of `TBY`s.  Additionally, all `ERC1155` functions are present within the contract as well.

## Contract API

### `bloomPool`

```solidity
function bloomPool() external view returns (address);
```

Returns the address of the BloomPool contract.

### `name`

```solidity
function name() external view returns (string memory);
```

Returns the name of the token. Will return `Term Bound Yield`.

### `symbol`

```solidity
function symbol() external view returns (string memory);
```

Returns the symbol of the token. Will always return `TBY`

### `decimals`

```solidity
function decimals() external view returns (uint8);
```

Returns the number of decimals for the token. This value will match the `asset` of the associated `BloomPool`.

### `totalSupply`

```solidity
function totalSupply(uint256 id) external view returns (uint256);
```

Returns the total supply of a given token `id`.


# BloomErrors

Below are a list of error codes within the Bloom ecosystem.

```solidity
/*///////////////////////////////////////////////////////////////
                            Pool Errors
//////////////////////////////////////////////////////////////*/

/// @notice Emitted when a user tries to redeem a TBY that is not redeemable.
error TBYNotRedeemable();

/// @notice Emitted when a user tries to redeem a TBY but has no rewards to claim.
error ZeroRewards();

/// @notice Emitted when the owner tries to set the spread to a value that is too large.
error InvalidSpread();

/// @notice Emitted when getting the price of a Tby that does not exist.
error InvalidTby();

/// @notice Emitted when a market maker tries to swap out too small of a percentage of RWA tokens.
error SwapOutTooSmall();

/// @notice Emitted when a borrower tries to redeem a TBY but the total borrowed for that TBY is zero.
error TotalBorrowedZero();

/*///////////////////////////////////////////////////////////////
                        Orderbook Errors    
//////////////////////////////////////////////////////////////*/

/// @notice Emitted when an operation is trying to access more liquidity than there is depth.
error InsufficientDepth();

/// @notice Emitted the admin inputs a leverage value that is not within the bounds. (0, 100)
error InvalidLeverage();

/// @notice Emitted when a borrower matches an order or orders that are too small to be filled.
///         Amount post leverage must be greater than 0.
error InvalidMatchSize();

/// @notice Emitted when a borrower tries to kill a match order that does not exist.
error MatchOrderNotFound();

/*///////////////////////////////////////////////////////////////
                            KYC Errors    
//////////////////////////////////////////////////////////////*/

/// @notice Emitted when a users tries to interact with a function that requires KYC verification.
error KYCFailed();

/*///////////////////////////////////////////////////////////////
                            Token Errors
//////////////////////////////////////////////////////////////*/

/// @notice Emitted when a user tries to call a function only for the BloomPool.
error NotBloom();

/// @notice Emitted when trying to swap out TBYs that have not matured.
error TBYNotMatured();

/// @notice Emitted when a user tries to check the total supply of a order that isnt a live TBY.
error InvalidId();

/// @notice Emitted when a borrower or lender has no shares of lTBY or bTBY.
error ZeroShares();

/*///////////////////////////////////////////////////////////////
                            General Errors    
//////////////////////////////////////////////////////////////*/

/// @notice Emitted when a users inputs an invalid amount.
error ZeroAmount();

/// @notice Emitted when a user inputs an invalid address.
error ZeroAddress();

/// @notice Emiited when a user tries to spend more than their balance.
error InsufficientBalance();

/*///////////////////////////////////////////////////////////////
                            Price Feeds    
//////////////////////////////////////////////////////////////*/

/// @notice Emitted when the rwa price feed is out of date.
error OutOfDate();

/// @notice Invalid Price Feed
error InvalidPriceFeed();
```


# API

Coming soon...


# Audits

Coming soon...


# Risk

The Bloom protocol represents a new and exciting way for lenders to earn near U.S. treasury bill rates. However, we take disclosures of risks seriously and want users to be making an informed decision when they use the protocol. The primary risks include the following:

**Smart Contract** **Risk**: The Bloom protocol is created to isolate the actions any participant can take. In addition, we’ve completed security audits of the protocol (see the [Audit](/technical-docs/audits) section of these documents). However, smart contracts and other security risks will always exist.

**Custodial Risk**: Custodial risk for RWAs can never be fully eliminated, but we believe that the custodian structure utilized by Backed to hold the underlying indirectly purchased by borrowers on the Bloom protocol represents the best way to hold such assets.

Please see the Risk Disclosures section in our Terms of Service for additional information on the risks associated with using the Bloom protocol. All users must agree to these terms prior to using the protocol.


# Terms of Service

Last updated and effective date: September 7, 2023

Please read these Terms of Service (“Agreement” or “Terms”) carefully. Your use or access of the Protocol (as defined below) constitutes your consent to this Agreement. This Agreement is between you and Blueberry Protocol Foundation (Panama City, Panama), for itself and on behalf of each of its respective affiliates and third-party development companies, including Composable Corp. (together, “Blueberry”, “we”, “our” or “us”), and applies to your use of the Interface and use of the borrowing and lending services facilitated by the Interface (collectively, “Services”).

The "Interface" is the website available athttps\://bloom.garden.

The "Protocol" is the commercial lending DeFi protocol deployed on the Ethereum blockchain where non-U.S. lenders can loan USDC stablecoins to permissioned borrowers in order for such borrowers to purchase tokenized open-ended "Tracker Certificates" issued by Backed Finance AG, a company incorporated under the laws of Switzerland (together with its affiliates, "Backed"), which are specifically designed to replicate the price movement of shares in the BlackRock iShares Treasury Bond 0-1yr UCITS ETF (the "Underlying"). When a borrower purchases these tokenized "Tracker Certificates" through the Protocol, Backed contemporaneously purchases an equivalent number of Underlyings. These Underlyings are custodied by Maerki Baumann & Co. AG, a Swiss private bank unaffiliated with Backed, or another custodian chosen in its discretion the "Custodian").

The interfaces provides a web-based means of access to the Protocol. It is distinct from the Protocol and is one, but not the exclusive, means of accessing the Protocol.

This Agreement hereby incorporates by this reference any additional terms and conditions with respect to the Interface, Protocol Services posted by Blueberry to the Interface or Protocol or otherwise made available to you by Blueberry, including without limitation, during the creation, acquisition, transfer or modification of cryptocurrency, our Services, and software provided on or in connection with those Services.

If you are an individual accessing or using the Protocol or Services on behalf of, or for the benefit of, any corporation, partnership or other entity with which you are associated (“Organization”), then you are agreeing to this Agreement on behalf of yourself and such Organization, and you represent and warrant that you have the legal authority to bind such Organization to this Agreement. References to “you” and “your” in this Agreement will refer to both the individual using the Protocol or Services and to any such Organization.

THIS AGREEMENT CONTAINS A BINDING ARBITRATION CLAUSE AND CLASS ACTION WAIVER THAT IMPACT YOUR RIGHTS ABOUT HOW TO RESOLVE DISPUTES. PLEASE READ IT CAREFULLY.

We shall have no liability for any failure or delay resulting from any abnormal or unforeseeable circumstances outside our reasonable control, the consequences of which would have been unavoidable despite all efforts to the contrary, including without limitation governmental action or acts of terrorism, war, earthquake, fire, flood, or other acts of God, labor conditions, delays or failures caused by problems with another system or network, mechanical breakdown or data-processing failures or where we are bound by other legal obligations.

### Third-Party Disputes

ANY DISPUTE YOU HAVE WITH ANY THIRD-PARTY, INCLUDING, BUT NOT LIMITED TO, OTHER USERS, IN CONNECTION WITH YOUR USE OF THE INTERFACE, PROTOCOL, OR SERVICES IS DIRECTLY BETWEEN YOU AND SUCH THIRD-PARTY. ACCORDINGLY, TO THE FULLEST EXTENT PERMITTED BY LAW, YOU IRREVOCABLY RELEASE BLUEBERRY AND ITS ASSOCIATES FROM ANY AND ALL CLAIMS, DEMANDS AND DAMAGES (DIRECT, INDIRECT, AND CONSEQUENTIAL) OF EVERY KIND AND NATURE, KNOWN AND UNKNOWN, ARISING OUT OF OR IN ANY WAY CONNECTED WITH SUCH DISPUTES.

### Assignments

This Agreement will inure to the benefit of our successors and assigns. Blueberry may assign this Agreement, including all its rights hereunder, without restriction. You may not assign this Agreement or any of the rights or licenses granted hereunder without the prior express written consent of Blueberry.

### Amendments

We reserve the right to change this Agreement at any time upon notice. We may give notice by posting the updated Agreement on the Interface or Protocol or by any other reasonable means. You can review the most current version of this Agreement at any time. This Agreement in effect at the time of your use of the Interface or Protocol apply. Updated versions of the Agreement are binding on you with respect to your use of the Interface or Protocol on or after the date indicated in the updated Agreement. If you do not agree to the updated Agreement, you must stop using the Interface and Protocol. Your continued use of the Interface or Protocol after the date of the updated Agreement will constitute your acceptance of the updated Agreement.

### Survival

The respective indemnities, representations, warranties and agreements of the parties hereto or made by or on behalf of the parties hereto pursuant to this Agreement will survive the termination of this Agreement indefinitely and will remain in full force and effect and all defined terms used therein will survive the termination of this Agreement indefinitely.

### Waiver and Conflict

No waiver of by Blueberry of any term or condition set out in these Terms will be deemed a further or continuing waiver of such term or condition or a waiver of any other term or condition, and any failure of Blueberry to assert a right or provision under these Terms will not constitute a waiver of such right or provision.

If any provision of these Terms is held by a court or other tribunal of competent jurisdiction to be invalid, illegal or unenforceable for any reason, such provision will be eliminated or limited to the minimum extent such that the remaining provisions of the Terms will continue in full force and effect.

### Entire Agreement

This Agreement and the Privacy Policy constitute the sole and entire agreement between you and Blueberry with respect to the Protocol and supersede all prior and contemporaneous understandings, agreements, representations and warranties, both written and oral, with respect to the Protocol. This Agreement does not, and will not be construed to, create any partnership, joint venture, employer- employee, agency or franchisor-franchisee relationship between you and Blueberry.

### Third-Party Rights

This Agreement is not intended and shall not be construed to create any rights or remedies in any parties other than you and us and any affiliates which each shall be a third-party beneficiary of this Agreement, and no other person shall assert any rights as a third-party beneficiary hereunder.

### Questions & Comments

If you have any questions or comments about these Terms; please contact us at <info@blueberry.garden>


# Privacy Policy

Last updated and effective date: July 10, 2023

To help us meet our commitment to protecting your personal information, we have created this Policy. This Policy governs data protection matters across the Bloom protocol currently available at <https://bloom.garden> (the “Protocol”). This Privacy Policy, along with our Terms of Use, form an integral and binding part of our relationship with you.

By providing personal information to us or by using our Protocol, you agree to our collection, use, disclosure, and storage of personal information as described in this Privacy Policy. This Policy describes how we use, share, and protect the personal information of individuals who use our Protocol. It also describes your rights and choices regarding the use, access to, and correction of personal information.

### **What Our Privacy Policy Covers**

This Policy describes how we use, share, and protect the personal information of our Users. It also describes the rights and choices regarding use, access to, and correction of personal information available.\
\
Our websites may include links to websites and/or applications operated and maintained by third-parties. Please note that we have no control over the privacy practices of websites or applications that we do not own. We encourage you to review the privacy practices of those third-parties.

### **What Personal Information We Collect**  The types of personal information we obtain about you depends on how you interact with us and our products and services. When we use the term “personal information,” we are referring to information that identifies, relates to, describes, or can be associated with you. The following are the categories and specific types of personal information that we collect:

### **Personal Identifiers**

Including your email, social media handles, such as your Discord username and Twitter username or other similar identifiers.

### **Device Information and Other Unique Identifiers**

Including browser type, screen resolution, IP address, unique device identifiers or similar unique identifiers.

### **Internet or Other Network Activity**<br>

Including website(s) visited before browsing our website, how long you spend on a page or screen, navigation paths between pages or screens, date and time of use, pages viewed and links clicked.

1. **How We Collect Personal Information**\
   \
   We collect personal information about you from various sources. For example, we collect and obtain information:<br>

   **Directly from you**<br>

   We collect personal information that you voluntarily submit to us, such as when you use our website or Protocol or contact us.<br>

   **Using cookies and other automatic data collection technologies**<br>

   When you visit our websites, use our Protocol or services, we or third-parties we work with automatically collect certain information using technologies such as cookies, web server logs, and other data collection tools. For more information, please see "Cookies and Similar Tracking Technologies"<br>

   **From Social Media**<br>

   If you interact with us on social media in connection with Blueberry, we collect information that you share with us, or that the social media platforms, please review the privacy policies and settings of the social media platforms and networks that you use.

   \
   **From Other Sources**<br>

   For example, we may obtain information about you from other sources, such as data analytics providers, marketing or advertising service providers, fraud prevention service providers, vendors that provide services on our behalf, or publicly available sources. We also create information based on our analysis of the information we have collected from you.

2. **Cookies and Tracking Technologies**\
   We and our third-party service providers (such as advertising and analytics providers) use cookies and other similar tracking technologies (collectively, “tracking technologies”) to gather information when you interact with our website and Protocol. Some tracking technologies help us maintain the security of our websites and your account, prevent crashes, fix bugs, save your preferences, and assist with basic site functions. These tracking technologies are “required” because we need them for the websites to work properly. We don’t provide the option to opt-out of these tracking technologies, but you can remove these “required” tracking technologies by modifying your browser settings. Please note, some features of our websites may not be available to you as a result.<br>

   We permit third-parties to use tracking technologies on our website and Protocol for analytics to understand how visitors interact with our website and Protocol. For example, we use Google Analytics to evaluate website traffic and usage data to help us improve our products and services. For more information about how Google collects and processes data visit <https://policies.google.com/technologies/partner-sites>.<br>

   For more information about how to opt out of having your information used by Google Analytics, visit <https://tools.google.com/dlpage/gaoptout/>, and for Adobe please visit\
   <https://www.adobe.com/privacy/opt-out.html>.

3. **How We Use Personal Information**\
   \
   In general, personal information you submit to us is used either to respond to requests that you make, or to aid us in serving you better. We use your personal information in the following ways:<br>

   **Providing Services**<br>

   We use your personal information to provide the Protocol and services.

   \
   **Communicating With You**<br>

   We use your personal information to communicate with you, such as to send security or maintenance advisories, respond to and/or follow-up on your requests, inquiries, issues or feedback.

   \
   **Analytics**

   \
   We use personal information to conduct research and analytics, including to improve our services; to understand how you interact with our Protocol.

   \
   **Security and Fraud Prevention**

   \
   We use personal information to detect, investigate, prevent, and take action against potential malicious, deceptive, fraudulent, or illegal activity, including attempts to manipulate or violate our policies, procedures, and terms and conditions, security incidents, and harm to the rights or property of Blueberry and our users, employees, or others.

   \
   **Legal Obligations**

   \
   We use personal information to comply with our legal or regulatory obligations, to establish or exercise our rights, and to defend against a legal claim.

   \
   **Core Business Functions**

   \
   We use personal information to support core business functions, including to maintain records related to business process management; loss and fraud prevention, and to collect amounts owing to us; and to provide and maintain the functionality of our Protocol, including identifying and repairing errors or problems.

4. **How We Share Personal Information**\
   \
   We disclose personal information only to the third-parties as indicated below, in addition to any specified disclosures described elsewhere in this Policy:

   \
   **Business Affiliates**<br>

   We may share your personal information with our business affiliates, including any affiliated companies, subsidiaries or sister companies. Our business affiliates process personal information as our service providers, where necessary to provide the Protocol and services that you have requested, including to administer our Protocol, or in other circumstances with your consent or as permitted or required by law.

   \
   **Business Transfers**<br>

   We may disclose personal information to a buyer or successor in the event of a merger, divestiture, restructuring, reorganization, dissolution, or other sale or transfer of some or all of Blueberry’s assets, whether as a going concern or as part of bankruptcy, liquidation, receivership, or similar proceeding in which personal information held by Blueberry are among the assets to be transferred.

   \
   **Law Enforcement and Legal Request**<br>

   We may disclose personal information to comply with applicable legal and our regulatory monitoring and reporting obligations (which may include laws outside your country of residence), to respond to requests from public and government authorities (which may include authorities outside your country of residence), to cooperate with law enforcement, or for other legal reasons.

   \
   **Enforcement of Legal Rights**<br>

   We may disclose personal information to the extent they are necessary to enforce or protect our rights, privacy, safety or property, and/or that of our affiliates, you or others, including enforcing our Terms of Use and any other agreements (such as for billing and collection purposes and fraud prevention).

5. **Personal Information of Minors**\
   \
   We do not knowingly collect personal information from children under the age of eighteen (18) without authorization by a holder of parental responsibility. If you believe that we may have collected personal information from or about a child under the age of eighteen (18) without such authorization, please contact us at <info@blueberry.garden>.

6. **How We Protect Personal Information**\
   \
   We take the protection of your personal information seriously. Blueberry employees who have access to your personal information are made aware of the importance of keeping it confidential. We care about the security of the information and use various administrative, and technological safeguards to preserve the integrity and security of all information collected through our Protocol.<br>

   However, no data security measures can guarantee complete security; we also depend on you to take common sense steps to ensure your personal information remains secure. Unfortunately, the transmission of information via the Internet is not completely secure. Although we do our best to protect your personal information, we cannot guarantee the security of your personal information transmitted to our Protocol. Any transmission of personal information is at your own risk. We are not responsible for circumvention of any privacy settings or security measures contained on our Protocol.<br>

7. **How Long We Retain Personal Information**\
   \
   In general, we retain your personal information for only as long as necessary to fulfill the purposes outlined in this Privacy Policy, unless a longer retention period is required or permitted by law. In the event that you make a verifiable request to delete your personal information and no exceptions apply, we will no longer retain your personal information. Please note that in many circumstances we are required to retain all, or a portion, of your personal information to comply with our legal obligations, resolve disputes, enforce our agreements, to protect against fraudulent, deceptive, or illegal activity, or for another one of our business purposes.\
   \
   The criteria used to determine our retention periods includes, without limitation:\
   \
   \- The length of time we have an ongoing relationship with you and provide the Protocol to you;\
   \- Whether there is a legal obligation to which we are subject (for example, certain laws require us to keep records of your transactions for a certain period of time before we can delete them); or\
   \- Whether retention is advisable in light of our legal position (such as in regard to applicable statutes of limitations, litigation or regulatory investigations).\ <br>

8. **Your Privacy Rights**\
   \
   Depending on where you reside or applicable law, you may exercise the rights described below. Please note that some of the rights may vary depending on your country, state, or province of residence.<br>

   **Accessing, Updating, Correcting, and Deleting Personal Information**<br>

   You may have the right to request (1) access to and receive details about the personal information we maintain about you and how we process it; (2) updates your personal information or correct any inaccuracies; (3) a copy of your personal information that we have collected and processed and (4) that we delete your personal information. You may also have the right to withdraw your consent to our processing of your personal information. There may be limitations to these rights based on your specific circumstances and applicable law.

   You can submit a privacy rights request by emailing <info@blueberry.garden>.<br>

9. **Information for California Residents**\
   \
   This section of our Privacy Policy is specifically for California residents and explains how we collect, use, and disclose personal information relating to California residents covered by the California Consumer Privacy Act (the “CCPA”). The CCPA defines “personal information” as any information that identifies, relates to, describes, is capable of being associated with, or could reasonably be linked, directly or indirectly, with a particular California resident or household. \
   \
   **Categories of Personal Information We Collect and Our Purposes for Collection and Use**<br>

   You can find a list of the categories of personal information that we collect in Section 2 above. For details regarding the sources form which we obtain personal information, please see Section 3 above. We collect and use personal information for the business or commercial purposes described in Section 5 above.<br>

   Blueberry does not collect any sensitive personal information for any individuals.<br>

   **Categories of Personal Information Disclosed and Categories of Recipients**<br>

   We disclose the following categories of personal information for business or commercial purposes to the categories of recipients as described in Section 6 above.\
   \
   **Sale of Personal Information / Do Not Sell**<br>

   Blueberry does not sell, trade, or rent out personal information for compensation that would constitute a sale under California law, nor have we done so in the preceding 12 months. In the event that Blueberry sells, trades, or rents out personal information that would constitute a sale, Blueberry will provide disclosures in this section of the Policy as well as the option to opt out of the sale of personal information using global privacy controls.

   \
   **Retention of Personal Information**<br>

   Blueberry retains personal information for only as long as necessary to provide you with access to the Protocol and the services or until you have made a verifiable request to delete your personal information, unless a longer retention period is required or permitted by law. For additional information about retention of your personal information, please see section 9 above.

   \
   **Your California Rights**

   \
   California residents are entitled to contact us to request information about whether we have disclosed personal information to third-parties for direct marketing purposes. Currently, Blueberry does not disclose personal information to third-parties for direct marketing purposes. Upon receipt of such a request by a California resident, we will either (1) respond with a confirmation that we have not disclosed any personal information to third-parties in the previous calendar year; or (2) if our practices have changed, we will provide the categories of personal information that has been shared in the past 12 months and categories of third-parties to whom such personal information was disclosed, whichever is relevant.\
   \
   California residents have the right to:\
   \
   \- Request disclosure of the categories and specific pieces of personal information that Blueberry has collected about you; \
   \- Request disclosure of the categories of third-party sources, if any, from which Blueberry has collected personal information about you; \
   \- Disclosure of the business or commercial purpose(s) for which your personal information has been collected by Blueberry;\
   \- Receive a list of the categories of third-parties with whom Blueberry has shared your personal information;\
   \- Request that Blueberry delete any personal information that it has collected from you (subject to exceptions);\
   \- Request that Blueberry correct any inaccurate personal information held about you; Opt out of the sharing or disclosure of your personal information and sensitive personal information to third-parties; and\
   \- Not be discriminated against by Blueberry (e.g., charged different rates, provided different levels of service, denied goods or services, or suggested any of the preceding) for exercising any of the individual rights granted above.\
   \
   To exercise any of your rights as a California resident, you can submit a request to <info@blueberry.garden>.<br>

   Before complying with your request, we will need to verify that it is you that is making the request. To accomplish this, you may be requested to (1) confirm specific personal information that we already know about you; or (2) provide us with appropriate identification and documentation. California residents are limited to two requests for personal information per 12-month period. Only you or an authorized agent may make a verifiable data subject request related to your personal information. The verifiable data subject request must provide sufficient information and documentation to allow us to verify that you (or an authorized agent) are the person about whom we collected personal information. We will not provide you with personal information if we cannot verify your identity and/or authority to make the data subject request and confirm the personal information belongs to you or the represented individual. Making a verifiable data subject request does not require you to create an account with us. We use personal information provided in a verifiable data subject request solely to verify the requestor's identity or authority to make the request.<br>

   We will respond to a verifiable data subject request within 45 days of its receipt. If we require more time (up to 90 days), we will inform you of the reason and extension period. If you have an account with us, we will deliver our response to the email address for that account. If you do not have an account with us, we will deliver our response by US mail or electronically at the email address in your request, at your option. All disclosures we provide will only cover the 12-month period preceding the verifiable employee request's receipt. The response we provide will also explain the reasons we cannot comply with a request, if applicable.\
   \
   We do not charge a fee to process or respond to your verifiable data subject request unless it is excessive, repetitive, or manifestly unfounded. If we determine that the request warrants a fee, we will tell you why we made that decision and provide you with a cost estimate before completing your request.

   <br>

10. **Information for EU Residents**\
    \
    This section of the Policy applies only to users who use the Protocol from a country that is a Member State of the European Union (“EU Users”) and supplements the information in the Privacy Policy.<br>

    Blueberry is the data controller for processing of personal information or personal data as defined under applicable data protection law. For purposes of this Policy, personal information and personal data are used synonymously.<br>

    Under the General Data Protection Regulation (“GDPR”) (and subject to any relevant exceptions) you have the right to access, correct, change, delete, restrict, exercise your right to data portability, or object to the processing of personal information.\
    \
    **Legal Basis for Processing**\
    \
    We process personal information for the purposes set out in this Privacy Policy, as described above. Our legal bases to process personal information includes processing that is:

    * Necessary for the performance of the contract between you and Blueberry (for example, to provide you with the products and services you request and to identify and authenticate you so you may use the Protocol);
    * Necessary to comply with legal requirements (for example, to comply with applicable accounting rules and to make mandatory disclosures to law enforcement);
    * Necessary for our legitimate interests (for example, to manage our relationship with you and to improve the Websites and our products and services); and
    * Based on consent by our customers (for example, to communicate with you about our products and services and provide you with marketing information), which may subsequently be withdrawn at any time without affecting the lawfulness of processing based on consent before its withdrawal.

    You are not required, as a necessity to enter into a contract, to provide us with personal information for processing as described above.\
    \
    **Your EU Rights**\
    \
    As an individual residing in, or located in, the European Union or European Economic Area, you can exercise your GDPR rights. We may first request verification of your identity prior to facilitating the exercise of your rights.<br>

    If you wish to confirm that Blueberry is processing your personal information, or to have access to the personal information Blueberry may have about you, please contact us at <info@blueberry.garden>.\
    \
    You may also request information about: the purpose of the processing; the categories of personal information concerned; who else outside Blueberry might have received the data from Blueberry; what the source of the information was (if you didn’t provide it directly to Blueberry); and how long it will be stored. You have a right to correct (rectify) the record of your personal information maintained by Blueberry if it is inaccurate. You may request that Blueberry erase that data or cease processing it, subject to certain exceptions. You may also request that we cease using your data for direct marketing purposes. In many countries, you have a right to lodge a complaint with the appropriate data protection authority if you have concerns about how Blueberry processes your personal information. When technically feasible, Blueberry will—at your request—provide your personal information to you or transmit it directly to another controller.<br>

    Reasonable access to your personal information will be provided at no cost upon request. If access cannot be provided within a reasonable time frame, we will provide you with a date when the information will be provided. If for some reason access is denied, we will provide an explanation as to why access has been denied.\
    For questions or complaints concerning the processing of your personal information, you can contact us. Alternatively, if you are located in the European Union, you can also have recourse to the European Data Protection Supervisor or with your nation’s data protection authority.

11. **Communicating with Us**\
    \
    If you have any questions or complaints related to our practices with respect to the collection, use, or disclosure of personal information, or if you would like to update your information, please contact us at <info@blueberry.garden>.<br>

12. **Updates to the Privacy Policy**\
    \
    It is our intent to post any changes we make to our Privacy Policy on this page, with a notice that it has been updated on our main homepage. If we make material changes to how we treat your personal information, we will notify you through a notice on the homepage. The date that this Privacy Policy was last revised is listed at the top of the page. You are responsible for visiting our website and this Privacy Policy to check for any changes.


# FAQs


