> For the complete documentation index, see [llms.txt](https://docs.rome.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rome.builders/ru/prilozheniya-na-rome/bloom/investing.md).

# Инвестирование

Bloom — это маркетплейс для **активов реального мира с ограниченным доступом**. Каждый актив — это обычный контракт Solidity, развернутый один раз в цепочке Rome, а правило о том, кто может им владеть, находится внутри этого контракта. Это руководство проведет покупателя со стартовой страницы через просмотр актива, проверку соответствия, подачу заявки на allowlist, покупку и владение — а затем рассмотрит единственное действительно отличающееся поведение для держателя, подписывающего с помощью кошелька Solana.

> **Правило следует вместе с активом.** Право владеть активом обеспечивается самим контрактом актива при каждом переводе — а не этим сайтом. Ничто на любом экране здесь не может это изменить, и обходного пути нет. Bloom — это окно в цепочку; решение принимает сама цепочка.

***

## Что означает «permissioned» для покупателя

Актив с ограниченным доступом имеет **allowlist**: набор адресов, которым эмитент разрешил им владеть. Allowlist — это не функция Bloom: он находится в модуле, подключенном к контракту актива, и актив обращается к нему при каждом mint, burn и transfer.

> **Цепочка хранит о вас один факт: один ответ «да» или «нет» относительно вашего адреса.** Никакие документы, персональные данные и заявления о личности никогда не хранятся в цепочке или в этом приложении. Когда эмитент допускает вас, в цепочку попадает только `isWhitelisted(yourAddress) = true`. Полная модель соответствия описана в [COMPLIANCE.md](/ru/prilozheniya-na-rome/bloom/compliance.md).

Из этого следуют два последствия, и оба видны в продукте:

* Перед тем как вы сможете купить, у актива спрашивают, может ли **ваш адрес** им владеть. Отказ — это факт о правиле актива, а не проблема с вашим кошельком.
* Перевод на адрес, который эмитент не одобрил, **откатывается в цепочке**. Актив сам отказывает; экрану это не требуется.

***

## Два мира кошельков

Один и тот же актив Bloom доступен из **обоих** кошельков — EVM-кошелька (например, MetaMask) и кошелька Solana (например, Phantom). Одновременно подключается только один кошелек.

| Кошелек            | Где хранится актив                                           | Что подписывает     |
| ------------------ | ------------------------------------------------------------ | ------------------- |
| **EVM-кошелек**    | Его собственный EVM-адрес, как в любой EVM-цепочке           | Транзакцию EVM      |
| **Кошелек Solana** | EVM-адрес **, полученный из вашего публичного ключа Solana** | Ваша подпись Solana |

Для EVM-кошелька нет ничего нового. Для кошелька Solana актив находится на *полученном* адресе — вычисляемом как `keccak256(solana_pubkey)[12..32]` — и управлять им может только ваша подпись Solana. Здесь нет **ни моста, ни второго токена, ни EVM-аккаунта** задействовано. Это полностью описано в [разделе о держателе Solana](#for-a-solana-holder) ниже и в [LANES.md](/ru/prilozheniya-na-rome/bloom/lanes.md).

***

## Стартовая страница

![Стартовая страница Bloom: заголовок, две строки о мирах кошельков и двери Investor и Issuer.](/files/a6db3414b31754d8dbad8bdd1d46d37131de8b04)

Стартовая страница (`/`) сообщает, что такое Bloom — *контракты Solidity, доступные и для Solana, и для EVM* — и предлагает вам две двери: **Investor** (которая ведет к открытым активам по адресу `/invest`) и **Issuer**. Как покупатель, выберите **Investor**.

Две строки, **кошельки Solana** и **EVM-кошельки**, перечисляют кошельки, которые ваш браузер фактически объявил через протоколы обнаружения EIP-6963 и Wallet Standard. Ничего лишнего не показывается: у каждого кошелька собственные имя и значок.

Внизу, **раздел Contracts** перечисляет адреса, с которыми это развертывание взаимодействует, — фабрику токенов, общую реализацию, маршрутизатор разрешений, витрину первичной продажи и cash token — каждый со ссылкой на блок-эксплорер, так что приложение никогда не утверждает адрес от собственного имени.

### «Как это возможно с Solana?»

![Пояснение о хранении: одна подпись входит слева, а актив допускает ее справа, без какого-либо моста между ними.](/files/4ddbc39eaf7e4a3320474f7e91c86b058150ec45)

Стартовая страница содержит пояснение, отвечающее на вопрос, как кошелек Solana может владеть контрактом Solidity. В нем выделяются три момента:

* **Одно развертывание.** Актив — это обычный контракт Solidity, развернутый один раз. Нигде нет его копии, перенесенной через мост — именно вторая копия и позволила бы ему выйти из-под правил.
* **Два мира кошельков.** Кошелек EVM обращается к контракту так же, как к любой другой цепочке. Кошелек Solana обращается к *тому же* контракту, потому что внутри Solana работает цепочка Rome: актив хранится по EVM-адресу, полученному из вашего ключа Solana, и ваша подпись — единственное, что может им управлять.
* **Актив хранит правило.** Право владеть им обеспечивается контрактом при каждом переводе — не этим сайтом и не мостом. Адрес, который эмитент не одобрил, просто не может его получить.

***

## Просмотр открытых активов

![Список открытых активов по адресу /invest, где цена и доступный объем читаются в реальном времени из цепочки.](/files/d4e688e4fd9571881c7e08ed5c762b8a6a3bbad0)

`/invest` перечисляет каждый актив, для которого сейчас открыта продажа. Для каждой строки вы видите:

| Столбец     | Значение                                                       |
| ----------- | -------------------------------------------------------------- |
| **Актив**   | Название и символ актива, считываемые непосредственно с токена |
| **Цена**    | Цена одной единицы, в `wUSDC`                                  |
| **Продано** | Проданные единицы из предложенных, с индикатором прогресса     |

Сводка над таблицей подсчитывает **Открыто сейчас** (сколько продаж активно), **Выпущено здесь** (сколько активов выпустила эта цепочка) и **Оплачено в** (`wUSDC`, денежный токен для каждой продажи в этом развертывании).

> **На этой странице ничего не задано заранее.** Цена, доступный объем и статус считываются из цепочки при каждом посещении. Если цепочка не отвечает, страница сообщает об этом — *«Цепочка не ответила…»* — вместо того чтобы показывать устаревшее число или утверждать, что ничего нет. *«Сейчас ничего не продается»* — это утверждение о цепочке, и оно появляется только когда цепочка действительно возвращает пустой список.

Вы можете просматривать цены и объем без подключения. Чтобы купить, вам понадобится кошелек: страница показывает **приглашение «Подключить кошелек»** , предлагая ваши EVM- и Solana-кошельки под двумя заголовками. Выбор строки открывает страницу подробностей этого актива.

***

## Один актив

![Страница подробностей актива: факты слева, карточка соответствия и панель покупки справа.](/files/9baa4c4de084557b9d6e8ec6db60655c060aa43f)

Страница актива (`/invest/[address]`) имеет две половины: факты и правила актива слева, а справа — ваше соответствие и панель покупки.

### Факты

| Факт                       | Значение                                               |
| -------------------------- | ------------------------------------------------------ |
| **Цена**                   | Цена одной единицы, в `wUSDC`                          |
| **Доступно**               | Единиц, оставшихся в открытой продаже                  |
| **Доход, выплачиваемый в** | Валюта, в которой распределяется любой доход (`wUSDC`) |

### Кто может им владеть

На странице приведены три правила, которые обеспечивает актив:

| Правило                   | Что оно означает                                                       |
| ------------------------- | ---------------------------------------------------------------------- |
| **Разрешенные держатели** | Адреса, одобренные эмитентом. Проверяются активом при каждом переводе. |
| **Минимум**               | 1 единица. Без блокировки.                                             |
| **Переводы**              | Только на другой разрешенный адрес, из любого мира кошельков.          |

> **Актив проверяет это сам при каждом переводе. Ничто на этой странице не может это изменить.** Правила сформулированы как факты о токене, а не как политика этого приложения, потому что так оно и есть.

***

## Соответствие — проверяется по токену, до любой покупки

![Карточка соответствия на странице актива: подключение, затем проверка, затем разрешено или не разрешено.](/files/76ab647863ef1524553f2da04b0afb964b684554)

Перед тем как предложить вам покупку, страница актива спрашивает у собственного модуля allowlist актива, может ли **ваш адрес** им владеть. Карточка соответствия показывает один из следующих статусов:

| Статус                            | Значение                                                                          |
| --------------------------------- | --------------------------------------------------------------------------------- |
| **Подключитесь, чтобы проверить** | Кошелек еще не подключен. Подключите один, чтобы выполнить проверку.              |
| **Проверка…**                     | Подключено; ончейн-проверка еще не завершена.                                     |
| **Разрешено**                     | Ваш адрес может владеть этим активом.                                             |
| **Не разрешено**                  | Правило актива отклоняет ваш адрес. Ссылка предлагает подать заявку на allowlist. |
| **Недоступно**                    | Сейчас не удалось прочитать проверку (это не отказ).                              |

> **Проверка двусторонняя.** Покупка переводит единицы *от витрины к вам*, поэтому обе стороны этого перевода должны быть в allowlist. Bloom задает вопрос именно так — односторонняя проверка назвала бы вас соответствующим требованиям, а затем увидела бы, что покупка откатилась, потому что витрина не указана в этом токене.

Как только ваш адрес добавлен в allowlist, та же карточка показывает **Разрешено**, и покупка становится доступной для вас:

![Карточка соответствия показывает «Разрешено» — покупатель в allowlist, и панель покупки активна.](/files/7a23eefd626b971cecb431fc3b89cb02c6ad56d2)

Когда вам отказывают, показывается причина: **самого токена**, дословно процитированная. Bloom никогда не пишет предложение о том, почему вам отказали. Если у актива еще не подключен модуль allowlist (черновик), он *без ограничений доступа* — ничто никого не ограничивает, и вам разрешено.

Если вам отказано, карточка содержит ссылку на **Подать заявку на allowlist**.

***

## Подача заявки на allowlist

![Форма подачи: адрес, юрисдикция, тип держателя и две декларации — без документов.](/files/4fe23ed7c87503814c3bb2af311cb9adaafcc880)

`/apply` — здесь вы просите эмитента допустить ваш адрес. Ее вступление говорит обо всей истории: **Никаких документов. Только декларации.**

> **В форме нет ничего, что стоило бы утечь, и она ничего не записывает в цепочку.** Заявка — это офчейн-запись, по которой эмитент принимает решение. Эмитент проводит собственные проверки в своей системе; запись в allowlist происходит на его стороне, а в цепочку попадает только итог да/нет относительно вашего адреса.

Вы предоставляете четыре вещи и ни одной пятой:

| Поле                                     | Примечания                                                                                                                                                                              |
| ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Адрес, который будет владеть активом** | Предзаполнен из вашего подключенного кошелька. Для кошелька Solana это ваш **полученном** адрес — адрес, на котором хранится актив, а не ключ, которым он подписывается.                |
| **Юрисдикция**                           | Одна из фиксированного списка (Сингапур, Объединенные Арабские Эмираты, Швейцария, Великобритания).                                                                                     |
| **Вы являетесь**                         | физическим лицом, аккредитованным физическим лицом или организацией.                                                                                                                    |
| **Две декларации**                       | Обе должны быть приняты: что вы действуете от своего имени и контролируете адрес, а также что вы принимаете, что эмитент решает, кто может владеть активом, и может отозвать это право. |

Текст `?`  рядом с вступлением объясняет, почему не запрашиваются документы: эмитенту нужно только то, на чем он будет основывать решение, ничего из того, что вы могли бы загрузить, не может храниться здесь, а в цепочке запись — это всего лишь да или нет.

**Чтобы подать заявку:**

1. Подтвердите адрес, выберите юрисдикцию и тип держателя и примите обе декларации.
2. Нажмите **Отправить заявку**. Форма проверяется локально, а хранилище повторно проверяет все на сервере, поскольку форму можно обойти, сделав лишь один запрос.
3. Вам выдается **личная ссылка** к форме `…/apply/status?ref=AP-XXXX-XXXX-XXXX`.

> **Сохраните ссылку — это единственный способ вернуться к вашей заявке.** Ссылка формируется из 60 бит криптографической случайности и *является* авторизацией: ничто другое не стоит перед вашими декларациями, и восстановить их получится ни с помощью аккаунта, ни с помощью пароля.

В демонстрации **Тестовая связка** примечание указывает вам на `/approve`, где вы можете одобрить собственную заявку, чтобы завершить цикл. Настоящий эмитент делает этот шаг в своей системе — [см. ниже](#approve--the-test-wiring-stand-in).

***

## Статус вашей заявки и удаление деклараций

![Страница статуса — ссылка, заявленные факты, временная шкала и управление удалением.](/files/7c61caaa0ee2d3d13bcf76167374b8fe473580b6)

`/apply/status` читает заявку по ее ссылке (из `?ref=` ссылки или последней, которую помнит этот браузер). Сессии нет; ссылка — это ключ.

Страница показывает, где вы находитесь — **У эмитента**, **Вы можете владеть этим активом**, или **Отклонено** — а также таблицу сведений (ссылка, дата подачи, адрес, актив, юрисдикция и строка **Проверки** ) и краткую временную шкалу произошедшего. Если вас одобрили, появляется ссылка **Купить актив** . При отказе показывается собственная причина эмитента, дословно.

Текст **Проверки** строка отражает собственную запись KYC эмитента. В этой демо-версии провайдер не подключен, поэтому отображается *«Только декларации — документы не запрашивались»* вместо того чтобы создавать впечатление о проверке, которой не было.

### Удаление того, что вы заявили

Вы можете удалить свои декларации в любое время с этой страницы.

> **Удаление уничтожает декларации и оставляет решение.** То, что вы сказали о себе, удаляется и не может быть восстановлено. Решение эмитента сохраняется, поскольку оно уже было принято публично, в цепочке — а отмена этого требует подписи эмитента, а не доступного вам удаления. (Собственная запись KYC эмитента, если она есть, тоже сохраняется, поскольку это доказательство эмитента для допуска адреса, который уже находится в публичной цепочке; удаление здесь не удалило бы ничего и у его провайдера.)

***

## `/approve` — стенд-заглушка тестовой связки

![Страница одобрения — баннер «тестовая связка, не эмитент», адрес, действие одобрения и его ончейн-требования, показанные ниже.](/files/160d526d181c2121520547c4b1fef796d188427e)

`/approve` существует, чтобы весь путь можно было пройти от начала до конца в демо. На нем есть баннер с надписью **«Тестовая связка — не эмитент»**, и именно поэтому его наличие честно: в production эмитент утверждает заявки в своем собственном рабочем процессе, а не здесь.

**Что в нем реально:** одобрение — это настоящее ончейн-записывание в allowlist. Страница вызывает развернутый `TestApprover` контракт, который *закреплен за демо-активом* (Mineral Vault I, `ARCV`, по адресу `0x2b13ba16a429bf630f94882e477fe775d34b7c74`). Этот контракт не требует **никакой роли** от вызывающего — через него может одобрить любой адрес кто угодно, и именно поэтому он существует: он позволяет завершить цикл демо для любого кошелька, из любого канала.

**Чтобы одобрить собственный адрес:**

1. Подключите кошелек, с которым вы подали заявку (EVM или Solana). Ваш адрес уже заполнен.
2. Нажмите **Одобрить этот адрес**. Предварительные условия и последствия записи показаны ниже кнопки — откройте *«Что это делает»* , чтобы точно увидеть, что произойдет до подписания.
3. При успехе страница показывает *«Одобрено. Заявитель теперь может владеть активом.»*

Если вы вошли кошельком Solana, примечание гласит *«Это одобрит адрес, полученный из вашего ключа Solana»* — адрес, которым выполняется запуск **для** — это полученный адрес; ключ, которым он подписывает, **с** — это ваш ключ Solana.

> **В production это решение эмитента, принимаемое в системе эмитента.** Демо-версия `TestApprover` открыта по замыслу, чтобы цикл можно было пройти; настоящая запись в allowlist ограничена ролью, которой располагает эмитент. Ничто в модели соответствия не меняется — это по-прежнему решение эмитента, по-прежнему одно булево значение в цепочке и по-прежнему никаких документов нигде.

После одобрения вернитесь на страницу актива; теперь ваше соответствие показывает **Разрешено**.

***

## Покупка

Панель покупки находится под карточкой соответствия на странице актива.

> **Нужны wUSDC сначала?** Каждая продажа оценивается в wUSDC, а у нового кошелька их нет. [Как перевести средства в Rome](/ru/prilozheniya-na-rome/bloom/funding.md) описывает внесение средств: переправьте USDC или ETH из Sepolia, затем оберните переправленный газ в wUSDC — все на экране `/bridge` .

![Панель покупки после завершения покупки показывает — «Куплено. Это отобразится в Positions.»](/files/c82dd11be571b2828b5a7e42cb9a0d949d18f9b6)

1. Введите количество **единиц** , которое хотите купить. Панель показывает цену за единицу и общую сумму к оплате в `wUSDC`. (Сумма, которую фактически списывает покупка, вычисляется из цены в базовых единицах, поэтому одобренная сумма всегда совпадает с указанной.)
2. Нажмите кнопку покупки. Покупка — это короткая последовательность, а не один клик: если у продажи еще нет разрешения списать ваши `wUSDC`, а **утверждение** появляется первым (*«Разрешить продаже списать ваши средства»*), затем **Купить** само действие.
3. Каждый шаг начинается с собственной кнопки и раскрывает свои **предварительные условия** и **последствия** ниже нее — в один клик до подписи — и называет свою фазу по мере выполнения — *«Ожидание вашего кошелька…»*, затем *«Переход в цепочку…»*. Последовательность перепроверяет условия между шагами, поэтому продажа, закрывшаяся после вашего утверждения, остановит покупку, а не откатит ее.
4. При успехе панель показывает *«Куплено. Это отобразится в Positions.»*

Если ваш кошелек в неправильной сети, панель сообщит об этом и предложит переключиться на цепочку актива, а не оставит кнопку бездействующей.

> **Покупка проходит через тот же allowlist-барьер, что и любой перевод.** Витрина переведет единицы вам только если и она, и ваш адрес разрешены. Никакой проверки на стороне Bloom, которая могла бы заменить собственную проверку актива, нет.

***

## Ваши позиции

`/portfolio` показывает, чем вы владеете. Подключите кошелек, на котором хранится актив, и вы получите:

![Страница позиций — актив, его стоимость и сводка.](/files/83b54e1229e57e76f89960af7a4bb4c9cbddd7ed)

* сводку — **Общая стоимость** (в `wUSDC`), **Активы** (сколько различных активов у вас находится), и **Полученный доход**;
* а **Активы** таблица, в которой перечислены каждый актив, ваши единицы и их стоимость.

Всё считывается в реальном времени из блокчейна. Когда у вас ещё ничего нет, страница прямо об этом сообщает и ведёт вас к открытым продажам. **Полученный доход** сейчас отображается тире: чтобы прочитать историю ваших выплат, нужно пройти по событиям распределения назад до первого блока актива, а эта работа ещё впереди — тире честнее там, где `0.00` иначе было бы заявлением.

> **Позиции — это представление, а не рынок.** Bloom отображает покупку актива из его первичной продажи и его удержание. Сам актив разрешает переводы на *другие разрешённые адреса* из любого из двух миров кошельков (это одно из заявленных правил актива), однако Bloom пока не предоставляет управление вторичным переводом или продажей.

***

## Для держателя Solana

Всё сказанное выше относится к вам без изменений. Этот раздел посвящён единственному сюрпризу, который действительно ваш: **актив хранится по адресу, который ваш кошелёк Solana никогда не покажет**, и почему это безопасно.

### Цепочка хранения

![Позиции держателя Solana — «Held for your Solana key», производный адрес хранения, цепочка хранения и владение ARCV, купленное на Solana-канале.](/files/23a411026ac5acf8d3de6835f0abf881825571ab)

Когда вы подключаете кошелёк Solana, `/portfolio` отображается **Хранится на** строка с EVM-адресом, на котором находится ваш актив, и **Как это хранится?** переключатель, который открывает панель хранения и объясняет производное значение в три шага:

1. **Ваш ключ Solana** — ключ, уже находящийся в вашем кошельке. Он подписывает; он никогда не покидает кошелёк.
2. **Вычисляется в — адрес, на котором хранится актив** — производный EVM-адрес. Это *арифметический результат, а не учётная запись*: он следует из вашего ключа, и для него не существует приватного ключа.
3. **Что может его переместить** — только подпись вашего ключа может переместить то, что находится по этому адресу.

> **Почему это безопасно.** Актив находится в состоянии EVM: его баланс хранится внутри учётных записей программы Rome. Там есть **не SPL-mint этого актива**, нет токен-аккаунта и ничего нативного для Solana, что можно было бы переместить — поэтому у инфраструктуры на стороне Solana нет инструкции, которая могла бы вывести его. Только ваша подпись Solana может управлять производным адресом, и любое перемещение, которое он может выразить, является вызовом контракта актива, где срабатывает allowlist-проверка. Перевод на неразрешённый адрес откатывается одинаково, подписан ли он ключом EVM или ключом Solana. Именно этого свойства и требует разрешённый актив — см. [LANES.md](/ru/prilozheniya-na-rome/bloom/lanes.md#custody-why-the-rwa-stays-at-the-synthetic).

Поскольку перечислять нечего в виде SPL-токена, **ваш кошелёк Solana не будет отображать владение RWA** — приложение Bloom является вашей поверхностью позиций. Утерянный ключ Solana восстанавливается через процедуру эмитента, а не путём вывода актива вне системы.

### Оплата и дополнительные запросы подписи

* **Вы оплачиваете лампортами из собственного кошелька.** Комиссию за транзакцию оплачивает ваш кошелёк Solana; производный EVM-адрес никогда не нужно пополнять.
* **Каждое действие — это одна атомарная транзакция Solana.** Перевод с ограничением, одобрение, покупка — каждое из них является отдельной полной транзакцией, подписываемой самостоятельно. Покупка — это *одобрение* затем *покупка*, так что это **две подписи** всего на Solana-канале.
* **Действия, требующие большого числа аккаунтов, могут добавлять запросы.** Большинство сценариев помещаются в одну транзакцию Solana (сегодня покупка в витрине использует 22 аккаунта и около 1 061 байта, что укладывается в лимит 1 232 байта). Состояние, которое затрагивает больше, — например, новый держатель, для которого ещё нужно создать токен-аккаунт, — может превысить этот лимит, и тогда клиент переходит к более крупному формату транзакции, построенному поверх таблицы подстановки, которую он создаёт специально для этой цели. Каждый такой шаг — отдельный запрос кошелька, поэтому одна покупка может превратиться в три или четыре подписи. Ваш кошелёк будет спрашивать каждый раз; подтверждать каждый запрос — нормально.

> **Solana-канал поддерживает только атомарные операции.** Каждый сценарий Bloom — это одна EVM-транзакция, выполняемая внутри одной транзакции Solana. «Многошаговое» действие (одобрение, затем покупка) — это несколько полных транзакций, каждая из которых атомарна сама по себе, а не одно выполнение, разбитое на несколько транзакций. Если вызов не помещается атомарно, решение — сделать вызов меньше, а не переходить на другой канал.

***

## Где на самом деле обеспечивается соответствие требованиям

Чтобы подытожить, что и где обеспечивается, и чтобы ничто здесь не было ошибочно принято за политику Bloom:

| Вопрос                          | Обеспечивается                                             | Не                                          |
| ------------------------------- | ---------------------------------------------------------- | ------------------------------------------- |
| Кто может владеть активом       | модулем allowlist актива при каждом переводе               | этим сайтом                                 |
| Перевод на неутверждённый адрес | Откатывается в блокчейне самим активом                     | Любым офчейн-фильтром                       |
| Какие данные о вас хранятся     | Одно логическое значение (`isWhitelisted`) на каждый адрес | Документы или персональные данные, где-либо |
| Кто может вас допустить         | Внесетевое решение эмитента                                | Bloom                                       |

Для полного описания модели см. [COMPLIANCE.md](/ru/prilozheniya-na-rome/bloom/compliance.md); о механике двух каналов — [LANES.md](/ru/prilozheniya-na-rome/bloom/lanes.md).

> **Это не макет.** Реальный покупатель приобрёл этот актив из EVM-кошелька, а реальный кошелёк Solana купил его на Solana-канале — тот же токен, тот же allowlist, тот же wUSDC. Каждая транзакция указана на [Доказательства](/ru/prilozheniya-na-rome/bloom/evidence-investor.md) странице. Карточка «Разрешено», позиции и цепочка хранения Solana в этом руководстве — это те покупатели, после тех транзакций.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.rome.builders/ru/prilozheniya-na-rome/bloom/investing.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
