> For the complete documentation index, see [llms.txt](https://agent-x-1.gitbook.io/project-x/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://agent-x-1.gitbook.io/project-x/scripts/eth-warmup.md).

# ETH Warmup

{% tabs %}
{% tab title="Режимы" %}

<div data-with-frame="true"><figure><img src="/files/J3SDgBkzQdPRRs3HZ9Sg" alt=""><figcaption></figcaption></figure></div>

1. Run n accoints with n actions in n mode - запуск для выполенения активности из базы данных
2. (Re)Create database and choose mode - (пере)создание базы данных для выполнения активности

<div data-with-frame="true"><figure><img src="/files/0xRytoU2fIoMB5tlaZTw" alt=""><figcaption></figcaption></figure></div>

1. Ethereum Warmup - создание базы для транзакций, подробнее см. [Настройки](#nastroiki)
   {% endtab %}

{% tab title="Настройки" %}

<div data-with-frame="true"><figure><img src="/files/KkLyu4jweZcBZ8Je3QBX" alt=""><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/p500voszRIVO1mDMsGuy" alt=""><figcaption></figcaption></figure></div>

Найстроки находятся в settings.py

{% code title="Настройка Telegram-уведомлений" fullWidth="false" %}

```python
TG_BOT_API = ''  # https://t.me/BotFather
TG_USER_ID = 0  # https://t.me/username_to_id_bot
```

{% endcode %}

{% code title="Основные настройки" %}

```python
SHUFFLE_WALLETS = True
SHUFFLE_MODULES = True  # перемешивать ли порядок выполнения модулей
USE_PROXY = True

RETRY = 3
GWEI_MULTIPLIER = 1.1
WAIT_TX = 2  # сколько минут ждать подтверждение транзакции

MAX_ETH_GWEI = 3

THREADS = 3  # количество потоков
```

{% endcode %}

{% code title="Задержки" fullWidth="false" %}

```python
TO_SLEEP_MODULE = [50, 150]  # задержка между модулями в секундах
TO_SLEEP_ACCOUNT = [100, 200]  # задержка между кошельками в секундах, работает только если SHUFFLE_MODULES = False
TO_SLEEP_TX = [20, 100]  # задержка между транзакциями
TO_SLEEP_THREAD = [30, 100]  # задержка между потоками
```

{% endcode %}

{% code title="Настройка прогона модулей" %}

```python
WARMUP_SETTINGS = {
    'target_tx_number': [3, 5],  # целевое количество транзакций, если кошелек уже достигнул их, он пропускается
    'min_eth_balance': 0,  # минимальный баланс в Ethereum Mainnet, если баланс меньше, то кошелек пропускается. 0 - что бы отключить проверку
    'available_modules': [  # ['self_transfer', 'wrap_unwrap', 'transfer_to_exchange']
        'self_transfer',
        'wrap_unwrap',
        'transfer_to_exchange',
    ],
    'transfer_remaining_to_exchange': True  # True - в конце маршрута будет выводить оставшийся баланс на биржу (тот баланс который нужно оставить указывается ниже). False - отключает эту функцию
}
```

{% endcode %}

{% code title="Настройка модулей" %}

```python
MODULES_SETTINGS = {
    'self_transfer': {  # трансфер ETH самому себе
        'amount': ['5', '15'],  # [0.0001, 0.0002] - сумма ETH для отправки, ['10', '20'] - процент от баланса
    },
    'transfer_to_exchange': {  # трансфер ETH на биржу (для заключающего трансфера настройка ниже)
        'amount': ['1', '2'],  # [0.0001, 0.0002] - сумма ETH для отправки, ['10', '20'] - процент от баланса
    },
    'wrap_unwrap': {  # Wrap ETH и его Unwrap обратно 
        'amount': ['10', '20'],  # [0.0001, 0.0002] - сумма обертки в ETH, ['10', '20'] - процент от баланса. Unwrap обратно делается на весь баланс
    },
    'transfer_remaining_to_exchange': {  # вывод ETH на биржу в конце маршрута
        'leave_balance': ['5', '20'],  # [0.0001, 0.0002] - сумма ETH, которую нужно оставить на кошельке, ['1', '2'] - процент от баланса который нужно оставить
    },
}
```

{% endcode %}

{% code title="Настройки refuel" %}

```python
REFUEL_SETTINGS = {
    'make_refuel': True,  # True - будет делать рефуел, если не хватает баланса для транзакции
    'bridge': ['gas_zip'],  # ['relay', 'gas_zip']
    'refuel_amount': [2.5, 3],  # сумма рефуела в долларах
    'refuel_insufficient_amount': False,  # по возможности будет делать рефуел ровно на недостающую сумму
    'source_chains': ['optimism', 'zksync', 'lisk', 'arbitrum', 'base'],  # ['optimism', 'base', 'arbitrum', 'taiko', 'zksync', 'lisk']
    'withdraw_if_no_balance_in_source': True,  # True - сделает вывод с биржи если не будет хватать баланса для рефуела
    'withdraw_amount': [0.001, 0.002],  # если не хватает баланса для рефуела, софт сделает вывод на эту сумму
    'exchange': ['okx']  # биржи для вывода ['bitget', 'okx']
}
```

{% endcode %}

{% code title="Настройка OKX & Bitget для вывода" %}

```python
OKX_KEY = ""
OKX_SECRET = ""
OKX_PASSWORD = ""

BITGET_KEY = ""
BITGET_SECRET = ""
BITGET_PASSWORD = ""

WITHDRAW_PROXY = 'ip:port:login:pass'  # прокси для работы с биржами (формат: ip:port:login:pass), если не нужно оставьте как есть или пустую строку. Полезно для битгета, потому что у них апи закрепляется к айпи
```

{% endcode %}
{% endtab %}

{% tab title="Заполнение данных" %}

<div data-with-frame="true"><figure><img src="/files/VJQGGsSmaSauAP1wyYSv" alt=""><figcaption></figcaption></figure></div>

Для работы скрипта есть папка `/user_data`, где нужно подготовить определённые файлы. Поддерживаются два формата заполнения: **TXT** или **Excel**. Вот основные файлы и их назначение:

{% tabs %}
{% tab title="TXT" %}

<table><thead><tr><th width="170">Файл</th><th width="237">Формат строки</th><th>Примечание</th></tr></thead><tbody><tr><td><code>names.txt</code></td><td><code>Main 1</code> <br><code>Main 2</code></td><td>Названия аккаунтов. Используются для отображения в логах и идентификации действий.</td></tr><tr><td><code>keys.txt</code></td><td><p><code>0x_private_key</code></p><p><code>0x_private_key</code><br></p></td><td>Приватные ключи EVM-кошельков</td></tr><tr><td><code>proxies.txt</code></td><td><code>ip:port:login:pass</code><br><code>log:pass@ip:port</code><br><code>http://log:pass@ip:port</code></td><td>Прокси в любом из указанных форматов. Поддерживается <strong>только HTTP</strong>.</td></tr><tr><td><code>cex_addresses.txt</code></td><td><p><code>0x_wallet</code></p><p><code>0x_wallet</code></p></td><td>Адреса биржи для депозита</td></tr></tbody></table>
{% endtab %}

{% tab title="Excel" %}

<div data-with-frame="true"><figure><img src="/files/oZDpnkm3231Wkk56R09U" alt=""><figcaption></figcaption></figure></div>
{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}

{% hint style="info" %}
Подробные инструкции и видео по настройке доступны в Notion-разделе сообщества.\
GitBook содержит только описание функционала и интерфейса.
{% endhint %}


---

# 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://agent-x-1.gitbook.io/project-x/scripts/eth-warmup.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.
