# Introduction

These contracts are designed to facilitate borrowing, lending, and collateral management functionalities for deployments into outside protocols while utilizing the Blueberry Protocol

* [BasicSpell](/developer-guides/contracts/spell/basicspell.md) - Abstract contract that provides a set of functions to be implemented by its inheriting contracts.
* [AuraSpell](/developer-guides/contracts/spell/auraspell.md) - Contract that provides the functions to be used when interacting with Balancer Pools and stakes the BPT token on Aura.
* [ConvexSpell](/developer-guides/contracts/spell/convexspell.md) - Contract that provides the functions to be used when interacting with Curve Pools and stakes the LP token on Convex.&#x20;
* [IchiSpell](/developer-guides/contracts/spell/ichispell.md) - Contract that provides a set of functions to be used when interacting with the Ichi Vault ecosystem.&#x20;
* [LongShortSpell](/developer-guides/contracts/spell/longshortspell.md) - Contract that provides the functions to allow a user to go directionally long or short a specific asset.


---

# 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://v1.docs.blueberry.garden/developer-guides/contracts/spell/introduction.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.
