> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tenderly.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Пользовательские методы RPC

> RPC-методы кастомизации сети (чит-коды) для Virtual Environments — управление состоянием, балансами, nonce и историей блоков.

Вы можете полностью управлять вашей Virtual Environment с помощью специальных RPC-методов. Эти методы доступны через **Admin RPC**, который можно скопировать из Dashboard.

Они позволяют вам изменять состояние сети — балансы аккаунтов, номера блоков и хранилище — под нужды вашей разработки.

Вызовы этих RPC-методов представлены вызовом виртуального контракта `TenderlyCheatcodes`.

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/testnets/tenderly-cheatcodes-tx.png?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=2291489d20ca410e70d1f20fc804b867" alt="" width="2728" height="630" data-path="images/testnets/tenderly-cheatcodes-tx.png" />

Список специальных RPC-методов ниже работает только при вызове через Admin RPC.

**Кастомизация сети**

* [evm\_increaseTime](#evm_increasetime)
* [evm\_setNextBlockTimestamp](#evm_setnextblocktimestamp)
* [tenderly\_setNextBlockTimestamp](#tenderly_setNextBlockTimestamp)
* [evm\_increaseBlocks](#evm_increaseblocks)
* [evm\_mine](#evm-mine)

**Отправка транзакции**

* [eth\_sendTransaction](#eth_sendtransaction)
* [eth\_createAccessList](#eth_createaccesslist)
* [evm\_getLatest](#evm_getlatest)

**Безлимитный фаусет**

* [tenderly\_setBalance](#tenderly_setbalance)
* [tenderly\_addBalance](#tenderly_addbalance)
* [tenderly\_setErc20Balance](#tenderly_seterc20balance)
* [tenderly\_addErc20Balance](#tenderly_adderc20balance)
* [tenderly\_setMaxErc20Balance](#tenderly_setmaxerc20balance)

**Управление хранилищем**

* [tenderly\_setStorageAt](#tenderly_setstorageat)

**Откат состояния**

* [evm\_snapshot](#evm_snapshot)
* [evm\_revert](#evm_revert)

**Управление синхронизацией Network Mirror Mode**

* [tenderly\_startSync](#tenderly_startsync)
* [tenderly\_stopSync](#tenderly_stopsync)
* [tenderly\_syncNext](#tenderly_syncnext)
* [tenderly\_revertSync](#tenderly_revertsync)
* [tenderly\_getSyncStatus](#tenderly_getsyncstatus)

### `evm_increaseTime`

Продвигает время блокчейна на указанную величину и создаёт пустой блок с новой временной меткой.

Последующие вызовы `eth_call` и `eth_sendRawTransaction` будут получать разные значения `block.timestamp` в зависимости от того, на какой `blockNumber` они нацелены:

* Для блока `pending`: возвращается `current_time + time_increase`.
  Это ожидаемая временная метка следующего майнящегося блока.
* Для блока `latest`: возвращается `time_of_evm_increaseTimestamp_call + time_increase`. Это временная метка пустого блока, созданного при вызове `evm_increaseTimestamp`.

**Параметры**

* `QUANTITY` — hex-кодированный `time_increase` в секундах, на которое нужно перепрыгнуть вперёд

**Возвращает**

* `DATA` — 32-байтный хеш вновь сгенерированного блока

**Пример запроса**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "evm_increaseTime",
  "params": ["0x15180"],
  "id": "1234"
}
```

**Пример ответа**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "result": "0x51e0a03f19e0c154b16363086aa6bbf22ad4582b0515b0a3a00519015f06246f",
  "id": "1234"
}
```

### `evm_setNextBlockTimestamp`

Смещает текущее время на указанную временную метку и создаёт пустой блок с заданной временной меткой.

Последующие вызовы `eth_call` и `eth_sendRawTransaction` будут возвращать разные значения `block.timestamp` в зависимости от того, на какой `blockNumber` они нацелены:

* Для блока `pending`: возвращается `specified_timestamp + time_since_evmSetNextBlockTimestamp_call`. Это установленная временная метка плюс любое время, прошедшее с момента вызова метода.
* Для блока `latest`: возвращается `specified_timestamp`. Это временная метка пустого блока, созданного при вызове `evm_setNextBlockTimestamp`.

**Параметры**

* `QUANTITY` — hex-кодированный `specified_timestamp`, представляющий epoch-временную метку (в секундах)

**Возвращает**

* `QUANTITY` — целое число (epoch-временная метка), устанавливаемое для следующего блока

**Пример запроса**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "evm_setNextBlockTimestamp",
  "params": ["1750074671"],
  "id": "1234"
}
```

**Пример ответа**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "result": 1750074671,
  "id": "1234"
}
```

### `tenderly_setNextBlockTimestamp`

Смещает текущее время на заданную временную метку, не создавая пустой блок.

Последующие вызовы `eth_call` и `eth_sendRawTransaction` будут возвращать разные значения `block.timestamp` в зависимости от того, на какой `blockNumber` они нацелены:

* Для блока `pending`: возвращается `specified_timestamp + time_since_tenderly_setNextBlockTimestamp`. Это установленная временная метка плюс любое время, прошедшее с момента вызова метода.
* Для блока `latest`: возвращается временная метка последнего созданного блока.

**Параметры**

* `QUANTITY` — hex-кодированный `specified_timestamp`, представляющий epoch-временную метку (в секундах)

**Возвращает**

* `QUANTITY` — целое число (epoch-временная метка), устанавливаемое для следующего блока

**Пример запроса**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "evm_setNextBlockTimestamp",
  "params": ["1750074671"],
  "id": "1234"
}
```

**Пример ответа**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "result": 1750074671,
  "id": "1234"
}
```

### `evm_increaseBlocks`

Пропускает заданное количество блоков и генерирует новый блок с новым номером блока.

**Параметры**

* `QUANTITY` — hex-кодированное количество блоков для пропуска

**Возвращает**

* `DATA` — 32-байтный хеш вновь сгенерированного блока

**Пример запроса**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "evm_increaseBlocks",
  "params": ["0x20"],
  "id": "1234"
}
```

**Пример ответа**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "result": "0x51e0a03f19e0c154b16363086aa6bbf22ad4582b0515b0a3a00519015f06246f",
  "id": "1234"
}
```

### `eth_sendTransaction`

Отправляет неподписанную транзакцию.

**Параметры**

1. **Transaction** — объект транзакции

* `from`: `DATA`, 20 байт — адрес, с которого отправляется транзакция.
* `to`: `DATA`, 20 байт — (необязательно, опускается при создании нового контракта) адрес, на который направляется транзакция.
* `gas`: `QUANTITY` — (необязательно) целое число газа, предоставленного для исполнения транзакции. Неиспользованный газ будет возвращён.
* `gasPrice`: `QUANTITY` — (необязательно) целое число `gasPrice`, используемое за каждую единицу оплаченного газа.
* `value`: `QUANTITY` — (необязательно) целое число значения, отправляемого с этой транзакцией.
* `data`: `DATA` — (необязательно) скомпилированный код контракта ИЛИ хеш вызываемой сигнатуры метода и закодированные параметры.

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "id": 0,
  "jsonrpc": "2.0",
  "method": "eth_sendTransaction",
  "params": [
    {
      "from": "0xDC6bDc37B2714eE601734cf55A05625C9e512461",
      "to": "0xff39a3e734fe363e631441f6d24c7539240c2628",
      "value": "0x0",
      "data": "0x2e7700f0"
    }
  ]
}
```

**RESULT**: хеш транзакции `STRING`, 32-байтное hex-значение

### `eth_createAccessList`

Возвращает access-tuples, которые будут затронуты транзакцией.

**Параметры**

* `SendTransactionObject` — объект транзакции (такой же, как передаваемый в eth\_sendTransaction)
* `BlockNumber` — параметр номера блока

**Возвращает**

* `AccessList` — массив access-tuples, затронутых транзакцией

**Пример запроса**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "eth_getAccessList",
  "params": [
    {
      "from": "0x7ed8dff35e6fef1a6c1f95423cd8a64e22687aac",
      "to": "0x6b175474e89094c44da98b954eedeac495271d0f",
      "gas": "0x76c00",
      "gasPrice": "0x0",
      "value": "0x0",
      "data": "0xa9059cbb0000000000000000000000005eddecc908575e1adcf857d8be380b9b7e5f658300000000000000000000000000000000000000000000000228813d891ab86000"
    },
    "latest"
  ],
  "id": "1234"
}
```

**Пример ответа**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "result": [
    {
      "address": "0x7ed8dff35e6fef1a6c1f95423cd8a64e22687aac"
    },
    {
      "address": "0x6b175474e89094c44da98b954eedeac495271d0f",
      "storage_keys": [
        "0x5051a693fd89be4fee1466db5a0684c1868dc09405da86e3d13004a803e302ec"
      ]
    },
    {
      "address": "0xc8f595e2084db484f8a80109101d58625223b7c9"
    }
  ],
  "id": 1234
}
```

### `evm_getLatest`

Получает идентификатор последней транзакции в сетевой Virtual Environment.

**Параметры**

**Возвращает**

* `DATA` — UUID последней транзакции Virtual Environment

**Пример запроса**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "evm_getLatest",
  "params": [],
  "id": "1234"
}
```

**Пример ответа**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "result": "4a05d7ed-f66c-471a-899d-d6d843b8e790",
  "id": "1234"
}
```

### `tenderly_setBalance`

Изменяет баланс аккаунта или аккаунтов.

**Параметры**

* `ADDRESS/ADDRESSES` — строка или массив адресов аккаунтов
* `AMOUNT` — hex-кодированное число суммы в wei

**Возвращает**

* `DATA` — 32-байтный хеш вновь созданной транзакции

**Пример запроса**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "tenderly_setBalance",
  "params": [["0x0d2026b3EE6eC71FC6746ADb6311F6d3Ba1C000B", "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"], "0xDE0B6B3A7640000"],
  "id": "1234"
}
```

ИЛИ

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "tenderly_setBalance",
  "params": ["0x0d2026b3EE6eC71FC6746ADb6311F6d3Ba1C000B", "0xDE0B6B3A7640000"],
  "id": "1234"
}
```

**Пример ответа**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "result": "0xc5b2c658f5fa236c598a6e7fbf7f21413dc42e2a41dd982eb772b30707cba2eb",
  "id": "1234"
}
```

### `tenderly_addBalance`

Добавляет баланс к указанному аккаунту или аккаунтам.

**Параметры**

* `ADDRESS/ADDRESSES` — строка или массив адресов аккаунтов
* `AMOUNT` — hex-кодированное число суммы в wei

**Возвращает**

* `DATA` — 32-байтный хеш вновь созданной транзакции

**Пример запроса**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "tenderly_addBalance",
  "params": [["0x0d2026b3EE6eC71FC6746ADb6311F6d3Ba1C000B"], "0xDE0B6B3A7640000"],
  "id": "1234"
}
```

ИЛИ

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "tenderly_addBalance",
  "params": ["0x0d2026b3EE6eC71FC6746ADb6311F6d3Ba1C000B", "0xDE0B6B3A7640000"],
  "id": "1234"
}
```

**Пример ответа**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "result": "0xc5b2c658f5fa236c598a6e7fbf7f21413dc42e2a41dd982eb772b30707cba2eb",
  "id": "1234"
}
```

### `tenderly_setErc20Balance`

Устанавливает баланс токенов для кошелька на указанном ERC-20 контракте.

<Note>
  `tenderly_setErc20Balance` записывает новый баланс напрямую в хранилище контракта токена и **не эмитирует событие ERC-20 `Transfer`**. Если ваш нижестоящий инструментарий (индексеры, subgraphs, учёт) полагается на события `Transfer` для отслеживания балансов, используйте вместо этого [`tenderly_addErc20Balance`](#tenderly_adderc20balance) — он эмитирует синтетический лог `Transfer` для каждого пополненного аккаунта.
</Note>

**Параметры**

* `TOKEN_ADDRESS` — адрес контракта ERC-20
* `WALLET` — адрес кошелька, который будет пополнен
* `VALUE` — 32-байтный хеш, представляющий значение токенов в **wei**

**Возвращает**

`DATA` — 32-байтный хеш вновь созданной транзакции (переопределение хранилища фиксируется через транзакцию)

**Пример запроса**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "tenderly_setErc20Balance",
  "params": [
    "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
    "0x40BdB4497614bAe1A67061EE20AAdE3c2067AC9e",
    "0xDE0B6B3A7640000"
  ],
  "id": 3640
}
```

**Пример ответа**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "id": 3640,
  "jsonrpc": "2.0",
  "result": "0x8a84686634729c57532b9ffa4e632e241b2de5c880c771c5c214d5e7ec465b1c"
}
```

### `tenderly_addErc20Balance`

Добавляет указанное количество токенов одному или нескольким кошелькам на указанном ERC-20 контракте. В отличие от [`tenderly_setErc20Balance`](#tenderly_seterc20balance), этот метод **эмитирует синтетическое событие `Transfer`** для каждого пополненного аккаунта, так что индексеры, subgraphs и любые инструменты, сверяющие балансы по логам, остаются в синхронизации с итоговым состоянием.

Эмитируемый лог имеет стандартный ERC-20 топик `Transfer(address,address,uint256)`, использует отправителя транзакции как адрес `from` и пополняемый кошелёк как адрес `to`, а также несёт добавленную сумму `amount` в поле данных.

**Параметры**

* `TOKEN_ADDRESS` — адрес контракта ERC-20
* `WALLETS` — массив адресов кошельков, которые получат токены
* `VALUE` — 32-байтный хеш, представляющий сумму токенов в **wei**, добавляемую каждому кошельку

**Возвращает**

`DATA` — 32-байтный хеш вновь созданной транзакции (переопределение хранилища фиксируется через транзакцию)

**Пример запроса**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "tenderly_addErc20Balance",
  "params": [
    "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
    [
      "0x40BdB4497614bAe1A67061EE20AAdE3c2067AC9e",
      "0xBd8DaA414Fda8a8A129F7035e7496759C5aF8570"
    ],
    "0xDE0B6B3A7640000"
  ],
  "id": 3641
}
```

**Пример ответа**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "id": 3641,
  "jsonrpc": "2.0",
  "result": "0x8a84686634729c57532b9ffa4e632e241b2de5c880c771c5c214d5e7ec465b1d"
}
```

### `tenderly_setMaxErc20Balance`

Пополняет адрес кошелька максимально возможным балансом токенов (в основном предназначено для токенов без простого mapping баланса) на указанном ERC-20 контракте.

<Note>
  Как и `tenderly_setErc20Balance`, этот метод пишет напрямую в хранилище и **не эмитирует событие ERC-20 `Transfer`**. Используйте [`tenderly_addErc20Balance`](#tenderly_adderc20balance), если вам нужно, чтобы индексеры или инструменты на основе логов подхватили изменение баланса.
</Note>

**Параметры**

* `YIELD_TOKEN_ADDRESS` — адрес контракта ERC-20
* `WALLET` — адрес кошелька, который будет пополнен

**Возвращает**

`DATA` — 32-байтный хеш вновь созданной транзакции (переопределение хранилища фиксируется через транзакцию)

**Пример запроса**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "id": 0,
  "jsonrpc": "2.0",
  "method": "tenderly_setMaxErc20Balance",
  "params": [
    "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84",
    "0xb5f45E52649123117C175B2016Ed3fCd26f9bE06"
  ]
}
```

**Пример ответа**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "id": 0,
  "jsonrpc": "2.0",
  "result": "0x8fb202d4612be9f6e96b955b4e5bd002cde4d79bec8a6d1b7d35976f124636a4"
}
```

### `tenderly_setStorageAt`

Устанавливает хранилище указанного адреса по указанному слоту.

**Параметры**

* `ADDRESS` — адрес, у которого будет переопределено хранилище
* `SLOT` — 32-байтный хеш, представляющий ключ слота хранилища
* `VALUE` — 32-байтный хеш, представляющий значение по ключу `slot`

**Возвращает**

* `DATA` — 32-байтный хеш вновь созданной транзакции (переопределение хранилища фиксируется через транзакцию)

**Пример запроса**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "tenderly_setStorageAt",
  "params": [
    "0x3Df2f692132f55b97cc9DA04A1fFFEA82F5d710b",
    "0x8111de210bcfef10861a4ab6df0f4838296bd61d5a8f02dca283ed3b72a47bba",
    "0x0000000000000000000000000000000000000000000000000000000000000000"
  ],
  "id": "1"
}
```

**Пример ответа**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "result": "0xc5b2c658f5fa236c598a6e7fbf7f21413dc42e2a41dd982eb772b30707cba2eb",
  "id": "1234"
}
```

### `evm_snapshot`

Возвращает ID снимка, позволяющий откатить Virtual Environment к предыдущей точке (совпадает с `hash` блока из `evm_getLatest`).

**Параметры**

**Возвращает**

1. `DATA` — хеш последнего блока, произведённого Virtual Environment (ID снимка)

**Пример запроса**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "evm_snapshot",
  "params": [],
  "id": "1234"
}
```

**Пример ответа**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "result": "0xfdb5a15fe652e0f47e4312df749f8cc1769d5e70f0bf3f26a4e231bb6a550f8d",
  "id": "1234"
}
```

### `evm_revert`

Откатывает состояние Virtual Environment к предыдущему снимку.

Одиночный `evm_revert` может откатить не более 2000 блоков. Если снимок находится дальше в прошлом, вызов завершается ошибкой `revert operation is limited to maximum 2000 blocks`. Чтобы вернуться в точку более чем на 2000 блоков назад, вместо этого [клонируйте Virtual Environment на целевом историческом блоке](/virtual-environments/develop/revert-state#clone-at-a-historical-block).

**Параметры**

* `DATA` — ID снимка

**Возвращает**

* `BOOLEAN` — флаг успешности операции

**Пример запроса**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "evm_revert",
  "params": ["0xfdb5a15fe652e0f47e4312df749f8cc1769d5e70f0bf3f26a4e231bb6a550f8d"],
  "id": "1234"
}
```

**Пример ответа**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "result": true,
  "id": "1234"
}
```

## Управление синхронизацией Network Mirror Mode

Следующие методы управляют [Network Mirror Mode](/virtual-environments/network-mirror-mode): они запускают, останавливают, пошагово продвигают, перематывают и инспектируют непрерывную синхронизацию между Virtual Environment и её родительской сетью.

<Note>
  Пока синхронизация Network Mirror Mode **активна**, другие чит-коды Admin RPC (например, `tenderly_setBalance`, `tenderly_setStorageAt`, `tenderly_sendBlock`) отключены. Сначала приостановите синхронизацию с помощью [`tenderly_stopSync`](#tenderly_stopsync), если вам нужно, чтобы они сработали немедленно.
</Note>

### `tenderly_startSync`

Запускает непрерывную синхронизацию между Virtual Environment и её родительской сетью. Новые блоки родительской сети поглощаются по мере их появления, а любые транзакции из mempool Virtual Environment добавляются (в порядке FIFO) в начало следующего синхронизированного блока.

**Параметры**

Нет.

**Возвращает**

* `BOOLEAN` — `true`, если синхронизация была запущена

**Пример запроса**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "tenderly_startSync",
  "params": [],
  "id": "1234"
}
```

**Пример ответа**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "result": true,
  "id": "1234"
}
```

### `tenderly_stopSync`

Останавливает любую текущую синхронизацию. Virtual Environment остаётся на своём текущем блоке; вы можете возобновить синхронизацию с помощью `tenderly_startSync` или вручную продвигать её через `tenderly_syncNext`. Используйте это перед вызовом других чит-кодов Admin RPC, когда Mirror Mode активен.

**Параметры**

Нет.

**Возвращает**

* `BOOLEAN` — `true`, если синхронизация была остановлена (или уже была остановлена)

**Пример запроса**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "tenderly_stopSync",
  "params": [],
  "id": "1234"
}
```

**Пример ответа**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "result": true,
  "id": "1234"
}
```

### `tenderly_syncNext`

Синхронизирует следующий одиночный блок родительской сети на Virtual Environment. Любые ожидающие транзакции Virtual Environment добавляются в начало этого блока в порядке FIFO. Удобно для пошагового прохода по синхронизации по одному блоку за раз.

**Параметры**

Нет.

**Возвращает**

* `DATA` — 32-байтный хеш вновь синхронизированного блока

**Пример запроса**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "tenderly_syncNext",
  "params": [],
  "id": "1234"
}
```

**Пример ответа**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "result": "0x51e0a03f19e0c154b16363086aa6bbf22ad4582b0515b0a3a00519015f06246f",
  "id": "1234"
}
```

### `tenderly_revertSync`

Перематывает Virtual Environment на N синхронизированных блоков назад, отменяя их эффект на состояние Virtual Environment. По умолчанию — 10 блоков. Используйте это, чтобы пошагово вернуть Mirror-Mode Virtual Environment в более раннюю точку истории родительской сети.

**Параметры**

* `QUANTITY` *(необязательно)* — hex-кодированное количество блоков для перемотки. По умолчанию `0xa` (10).

**Возвращает**

* `DATA` — 32-байтный хеш блока, на котором сейчас находится Virtual Environment

**Пример запроса**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "tenderly_revertSync",
  "params": ["0xa"],
  "id": "1234"
}
```

**Пример ответа**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "result": "0xfdb5a15fe652e0f47e4312df749f8cc1769d5e70f0bf3f26a4e231bb6a550f8d",
  "id": "1234"
}
```

### `tenderly_getSyncStatus`

Возвращает текущее состояние синхронизации Virtual Environment, включая то, активна ли синхронизация, насколько она отстаёт от родительской сети и последний синхронизированный блок.

**Параметры**

Нет.

**Возвращает**

* `OBJECT` — статус синхронизации со следующими полями:
  * `active` — `BOOLEAN`, `true`, если синхронизация сейчас выполняется
  * `lag` — `QUANTITY`, количество блоков, на которое Virtual Environment отстаёт от родительской сети
  * `latestSyncedBlock` — `QUANTITY`, номер последнего блока, синхронизированного на Virtual Environment
  * `parentLatestBlock` — `QUANTITY`, номер последнего блока в родительской сети

**Пример запроса**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "method": "tenderly_getSyncStatus",
  "params": [],
  "id": "1234"
}
```

**Пример ответа**

```json title="example.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "jsonrpc": "2.0",
  "result": {
    "active": true,
    "lag": 0,
    "latestSyncedBlock": 22845130,
    "parentLatestBlock": 22845130
  },
  "id": "1234"
}
```
