# DeFi Composer

DeFi Composer позволяет создавать многопротокольные хранилища в стиле Yearn, написанные на Solidity, которые атомарно компонуются между несколькими DeFi-протоколами Solana через CPI.

## Обзор

Одна функция Solidity может координировать операции между Jupiter, Kamino, Drift, Meteora и другими протоколами Solana — и всё это атомарно. Если любой шаг завершается ошибкой, откатывается вся транзакция.

```solidity
function executeStrategy(uint256 amount) external {
    // 1. Обменять 50% USDC на SOL через Jupiter
    IJupiter(JUPITER).swap(USDC, SOL, amount / 2, minSolOut);

    // 2. Внести SOL в качестве залога в Kamino
    IKamino(KAMINO).deposit(SOL, solAmount);

    // 3. Занять USDC под залог SOL
    IKamino(KAMINO).borrow(USDC, borrowAmount);

    // 4. Открыть короткую позицию по SOL-PERP в Drift (дельта-хедж)
    IDrift(DRIFT).placeOrder(SOL_PERP, SHORT, size, leverage);

    // Всё атомарно. Одна функция Solidity. Четыре перехода CPI.
}
```

## Почему Solidity для компоновки DeFi?

* **Привычный инструментарий** — разработчикам Solidity не нужно изучать Rust/Anchor
* **Зрелая экосистема** — используйте OpenZeppelin, существующие инструменты аудита, рабочие процессы Hardhat/Foundry
* **Компонуемость** — в Solidity `try/catch`, модификаторы и наследование работают естественным образом
* **Атомарное исполнение** — модель транзакций Solana гарантирует принцип «всё или ничего»

## Эталонные стратегии (планируются)

| Стратегия                  | Протоколы              | Описание                                                                           |
| -------------------------- | ---------------------- | ---------------------------------------------------------------------------------- |
| Оптимизатор доходности SOL | Kamino, Drift          | Предоставление SOL, заимствование стейблкоинов, дельта-хеджирование на перпетуалах |
| Доходность стейблкоинов    | Kamino, Orca           | LP стейблкоинов в разных пулах, автоматическая ребалансировка                      |
| Дельта-нейтральная         | Jupiter, Kamino, Drift | Обмен + предоставление + хеджирование для получения доходности без экспозиции      |
| Арбитраж LST               | Jupiter, Marinade      | Использование разницы цен LST                                                      |

## Статус

**Спроектировано** — зависит от Rome SDK Phase 2 (интерфейсы IJupiter, IDrift, IKamino). Базовая CPI-инфраструктура уже работает; типизированные интерфейсы для конкретных протоколов находятся в разработке.

## Что дальше

* [Rome SDK](/ru/produkty/rome-sdk.md) — типизированные интерфейсы Solidity для программ Solana
* [Вызов Solana из EVM](/ru/rukovodstva-dlya-razrabotchikov/call-solana-from-evm.md) — руководство по CPI
* [Ограничения](/ru/osnovnye-koncepcii/constraints.md) — ограничения глубины CPI и бюджет вычислений


---

# 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.rome.builders/ru/produkty/defi-composer.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.
