# Кран testnet Robinhood Chain

> Source: https://docs.blockvectra.com/ru/guides/robinhood-testnet-faucet/

Используйте кран для получения тестового ETH для транзакций в testnet Robinhood Chain (`robinhood_testnet`, chain ID `46630`). Запрос средств бесплатен и не расходует CU; последующие вызовы RPC в testnet тарифицируются в обычном порядке по CU.

* **Первый шаг:** [Отправьте запрос на получение средств](#send-a-claim) со своим API key и адресом получателя, используя пример с curl ниже.
* **Критерий готовности:** HTTP `202` и `tx_hash` подтверждают принятие запроса; используйте запрос квитанции транзакции ниже для проверки включения в блок перед тем, как считать получение подтвержденным.

[Параметры testnet и варианты доступа](https://blockvectra.com/ru/chains/robinhood_testnet/).

## Перед отправкой запроса

Зарегистрируйте аккаунт BlockVectra и используйте один из собственных API keys. Создайте ключ в [консоли](https://console.blockvectra.com/login/?next=%2Fkeys%2F) или следуйте [руководству по программной регистрации](https://docs.blockvectra.com/en/guides/programmatic-signup/).

Используйте `0x` с последующими 40 шестнадцатеричными символами в нижнем регистре или со смешанным регистром с корректной контрольной суммой EIP-55. В ответах адреса возвращаются в нижнем регистре; различные варианты написания одного и того же адреса имеют общий лимит на получение средств.

## Отправка запроса на получение средств

Вызовите `POST https://api.blockvectra.com/v1/faucet/robinhood_testnet` с заголовком `Content-Type: application/json` и вашим ключом в `x-api-key`. Этот эндпоинт не считывает ключ из пути URL или заголовка `Authorization`.

Замените `{api_key}` вашим ключом, а адрес из примера — вашим адресом получателя:

```bash
curl -i "https://api.blockvectra.com/v1/faucet/robinhood_testnet" \
  -H "Content-Type: application/json" \
  -H "x-api-key: {api_key}" \
  -d '{"address":"0x1111111111111111111111111111111111111111"}'
```

Тело JSON содержит только `address` и не должно превышать 64 КиБ. Неизвестные поля или некорректный JSON возвращают `400 invalid_request`. Используйте точный эндпоинт без параметров запроса.

## Окно получения и лимиты

* Каждый принятый запрос отправляет **0.001 test ETH** (`1000000000000000` wei).
* Каждый аккаунт и каждый адрес получателя могут совершать **один новый запрос за скользящее 24-часовое окно**. Использование другого ключа того же аккаунта не увеличивает лимит.
* Кран принимает не более **1,000 новых запросов за сутки UTC** суммарно от всех пользователей.
* Запросы разделяют общий лимит **5 запросов в секунду на ключ** с `/v1/account`.

`next_eligible_at` — это время принятия запроса плюс 24 часа, выраженное в виде временной метки UTC по стандарту RFC 3339. Окна аккаунта и адреса не сбрасываются в полночь по UTC. Ошибка `429` из-за лимита получения содержит `error.data.scope` (`account`, `address` или `global`) и `error.data.next_eligible_at`; для `global` метка времени соответствует началу следующих суток UTC. Ошибка `429` из-за частоты запросов не содержит поля `scope`.

## «Принято» не означает «подтверждено»

HTTP **202 означает, что запрос принят, а не успешно включен в блок ончейн**. Ответ JSON содержит:

| Поле                 | Значение                                               |
| -------------------- | ------------------------------------------------------ |
| `chain` / `chain_id` | `robinhood_testnet` / `46630`                          |
| `address`            | Адрес получателя в нижнем регистре                     |
| `amount_wei`         | Сумма получения в виде строки десятичного целого числа |
| `tx_hash`            | Стабильный хэш принятой транзакции                     |
| `next_eligible_at`   | Время следующей доступности для скользящего окна       |

Повторная отправка запроса для того же нормализованного адреса с того же аккаунта в течение 24 часов возвращает исходный ответ `202` и тот же `tx_hash`, в том числе при использовании другого действующего ключа этого аккаунта. Это не приводит к повторной отправке средств. Если ответ был утерян, повторите запрос с тем же адресом для того же аккаунта.

Проверьте транзакцию через существующий эндпоинт RPC testnet. Замените `{tx_hash}` хэшем из принятого ответа; этот запрос RPC тарифицируется в обычном порядке по CU:

```bash
curl -s "https://api.blockvectra.com/v1/robinhood_testnet" \
  -H "Content-Type: application/json" \
  -H "x-api-key: {api_key}" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["{tx_hash}"]}'
```

## Ошибки и повторные попытки

Оболочка ошибки содержит `error.code`, `error.message` и `error.data`. `error.data.reason` совпадает с `error.code`; поля `docs_url`, `retryable` и `request_id` содержат ссылку на документацию ошибки, политику повторных попыток и идентификатор запроса. При любых кодах `429` или `503` подождите количество секунд, указанное в заголовке ответа **`Retry-After`**, прежде чем повторять попытку. Без принятого ответа не следует считать, что тестовый ETH был отправлен.

| HTTP | Код ошибки                                  | Что делать                                                                                                                                   |
| ---- | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| 400  | `invalid_address`                           | Исправьте формат адреса или контрольную сумму EIP-55; поле ошибки `error.data.field` равно `/address`.                                       |
| 400  | `invalid_request`                           | Отправьте корректный JSON, содержащий только поле `address`.                                                                                 |
| 401  | `missing_api_key` / `invalid_api_key`       | Передайте действующий ключ в заголовке `x-api-key`.                                                                                          |
| 403  | `key_expired`                               | Создайте новый API key.                                                                                                                      |
| 404  | `not_found`                                 | Проверьте путь, сеть, метод POST и отсутствие параметров запроса; кран может быть недоступен.                                                |
| 413  | `request_too_large`                         | Уменьшите размер тела запроса, чтобы он укладывался в 64 КиБ.                                                                                |
| 429  | `rate_limited`                              | Подождите указанное в `Retry-After` время; проверьте значения `scope` и `next_eligible_at`, если они присутствуют.                           |
| 503  | `faucet_empty`                              | На балансе крана недостаточно средств для отправки запрошенной суммы и покрытия комиссии. Подождите `Retry-After`.                           |
| 503  | `service_unavailable`                       | Обработка запросов на получение средств временно недоступна, либо по предыдущему запросу еще не получена квитанция. Подождите `Retry-After`. |
| 503  | `auth_unavailable` / `upstream_unavailable` | Подождите `Retry-After`, затем повторите попытку.                                                                                            |

См. [справочник по ошибкам](https://docs.blockvectra.com/en/errors/) или [/errors.json](https://docs.blockvectra.com/errors.json) для машиночитаемых указаний, а также [руководство по Robinhood Chain](https://docs.blockvectra.com/en/guides/robinhood-chain/) для доступа к RPC.

Перейдите к [руководству для начинающих по RPC Robinhood Chain Testnet](https://docs.blockvectra.com/en/guides/robinhood-testnet-starter/) для чтения без ключа и потоковой передачи логов по WebSocket. Найдите публичный RPC URL и поддерживаемые методы на [странице сети testnet](https://blockvectra.com/ru/chains/robinhood_testnet/).
