# Bolide V1

![](/files/84aMEbi9htp6pz3IdQch)

Vaults have 2 types of smart contracts: Storage and Logic

#### Storage contract

A Storage contract is responsible for all interactions with users' wallets

* Users can deposit to Storage
* Users can withdraw from Storage
* Users can claim rewards&#x20;

Storage contract implements **Rewards Distribution Model**. More info about the distribution model can be found here:

{% embed url="<https://github.com/bolide-fi/contracts/tree/master/strategies/low_risk#blid-distribution-model>" %}

#### Logic contract

The logic contract is responsible for the implementation of the Yield aggregation strategy and its interaction with DeFi platforms according to the Strategy. It includes:

* Lending and borrowing algorithms
* Provide Liquidity to DEXes (create LP pairs)
* Farm LP pairs on DEXes
* Swap tokens to rerebalance LP pairs
* Claim rewards
* Byback BLID from the market&#x20;

#### Assets Management

The deposited assets are divided into 2 parts.&#x20;

* A small number of tokens is held on the Storage contract.
* After the user's deposit action, tokens are transferred to the Logic contract in order to begin to work on the Strategy. These assets are involved in the Strategy, which means they are held on the Logic contract (belong to).&#x20;

When a user wants to withdraw some assets:

1. If there is enough amount of assets on the Storage contract, the full amount of tokens can be withdrawn to the user's wallet.
2. If there are not enough assets on the Storage contract, the algorithm removes tokens from Farming and returns them to the Storage contract meaning that a full amount of tokens is withdrawn to the user's wallet.&#x20;

Note: The first option has a less expensive transaction, while the second one is more gas-consuming.

Contract addresses can be found here:&#x20;

{% content-ref url="/pages/sIStw2dNn1e01RX6dFwW" %}
[Protocol addresses](/bolide-earn/protocol-addresses.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bolide.fi/bolide-earn/strategies/bolide-v1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
