# Robinhood Chain テストネットフォーセット

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

フォーセットを使用して、Robinhood Chain テストネット（`robinhood_testnet`、チェーン ID `46630`）上のトランザクションに必要なテスト ETH を取得します。取得は無料で CU を消費しません。その後のテストネット RPC 呼び出しは通常の CU 課金が適用されます。

## 取得前の準備

BlockVectra アカウントを登録し、自身が所有する API key のいずれかを使用してください。[コンソール](https://console.blockvectra.com/login/?next=%2Fkeys%2F)でキーを作成するか、[プログラムによる登録ガイド](https://docs.blockvectra.com/en/guides/programmatic-signup/)に従ってください。

`0x` に続く 40 文字の十六進数文字列を使用します。小文字または有効な EIP-55 チェックサムを持つ大文字小文字の混合表記が利用可能です。レスポンスでは小文字のアドレスが返されます。同じアドレスの異なる表記でも同じ取得制限を共有します。

## 取得リクエストの送信

`Content-Type: application/json` と `x-api-key` に自身のキーを指定して、`POST https://api.blockvectra.com/v1/faucet/robinhood_testnet` を呼び出します。このエンドポイントは 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 KiB 以内に収める必要があります。不明なフィールドや無効な JSON の場合は `400 invalid_request` が返されます。クエリパラメータを付与せず、正確なエンドポイントを使用してください。

## 取得ウィンドウと制限

* 各受理リクエストに対して **0.001 test ETH**（`1000000000000000` wei）が送信されます。
* 各アカウントおよび各受取先アドレスは、**ローリング 24 時間ごとに 1 回の新規取得**が可能です。同じアカウントの別のキーを使用しても上限は増加しません。
* フォーセットは、全ユーザーを合わせて **UTC 1 日あたり最大 1,000 件の新規取得**を受理します。
* リクエストは `/v1/account` と共有される**キーあたり毎秒 5 リクエスト**の制限が適用されます。

`next_eligible_at` は受理日時に 24 時間を加算した値で、RFC 3339 UTC タイムスタンプとして表されます。アカウントおよびアドレスのウィンドウは UTC 午前 0 時にリセットされません。取得制限による `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 エンドポイントを使用してトランザクションを確認します。`{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`                           | `address` のみを含む有効な JSON を送信してください。                                      |
| 401  | `missing_api_key` / `invalid_api_key`       | `x-api-key` に有効なキーを指定してください。                                            |
| 403  | `key_expired`                               | 新しい API keyを作成してください。                                                   |
| 404  | `not_found`                                 | パス、チェーン、POST メソッド、クエリパラメータの不在を確認してください。フォーセットが利用できない可能性があります。           |
| 413  | `request_too_large`                         | ボディを 64 KiB 以内に縮小してください。                                                |
| 429  | `rate_limited`                              | `Retry-After` を待機してください。存在する場合は `scope` と `next_eligible_at` を確認してください。 |
| 503  | `faucet_empty`                              | フォーセットの残高が取得金額と手数料に対して不足しています。`Retry-After` を待機してください。                  |
| 503  | `service_unavailable`                       | 取得処理が一時的に利用できないか、以前の取得のリクエストにまだ receipt がありません。`Retry-After` を待機してください。 |
| 503  | `auth_unavailable` / `upstream_unavailable` | `Retry-After` を待機してから再試行してください。                                         |

機械可読なガイダンスについては[エラーリファレンス](https://docs.blockvectra.com/en/errors/)または [/errors.json](https://docs.blockvectra.com/errors.json) を参照してください。RPC アクセスについては [Robinhood Chain ガイド](https://docs.blockvectra.com/en/guides/robinhood-chain/)を参照してください。

キー不要の読み取りや WebSocket ログについては、[Robinhood Chain テストネット RPC 入門](https://docs.blockvectra.com/en/guides/robinhood-testnet-starter/)に進んでください。公開 RPC URL と対応メソッドは[テストネットのチェーンページ](https://blockvectra.com/en/chains/robinhood_testnet/)で確認できます。
