Robinhood Chain testnet faucet
Claim test ETH with an API key: mainnet address eligibility, claim limits, accepted transactions, and error handling.
Use the faucet to obtain test ETH for transactions on Robinhood Chain testnet (robinhood_testnet, chain ID 46630). Claiming is free and consumes no CU; subsequent testnet RPC calls use normal CU billing.
Before claiming
You need a valid BlockVectra API key. Create one in the console or follow the programmatic sign-up guide.
The recipient address must have a balance greater than zero or a nonce greater than zero on robinhood_mainnet. An address with both values at zero, including a new wallet without mainnet funds or sent transactions, receives HTTP 403 with not_eligible. If eligibility cannot be checked, the request is rejected with a temporary service error; that does not mean the address is ineligible.
Use 0x followed by 40 hexadecimal characters, either lowercase or mixed case with a valid EIP-55 checksum. Responses use lowercase addresses; different spellings of the same address share the same claim limit.
Send a claim
Call POST https://api.blockvectra.com/v1/faucet/robinhood_testnet with Content-Type: application/json and your key in x-api-key. This endpoint does not read a key from the URL path or Authorization.
Replace {api_key} with your key and the example address with your eligible recipient address:
curl -i "https://api.blockvectra.com/v1/faucet/robinhood_testnet" \
-H "Content-Type: application/json" \
-H "x-api-key: {api_key}" \
-d '{"address":"0x1111111111111111111111111111111111111111"}'The JSON body contains only address and must fit within 64 KiB. Unknown fields or invalid JSON return 400 invalid_request. Use the exact endpoint without query parameters.
Eligibility window and limits
- Each accepted claim sends 0.01 test ETH (
10000000000000000wei). - Each account and each recipient address can have one new claim per rolling 24 hours. Using another key on the same account does not increase the limit.
- The faucet accepts at most 1,000 new claims per UTC day across all users.
- Requests share a 5 requests per second per key limit with
/v1/account.
next_eligible_at is the acceptance time plus 24 hours, expressed as an RFC 3339 UTC timestamp. The account and address windows do not reset at UTC midnight. A claim-limit 429 includes error.data.scope (account, address, or global) and error.data.next_eligible_at; for global, the timestamp is the start of the next UTC day. A request-frequency 429 has no scope.
Accepted does not mean confirmed
HTTP 202 means accepted, not successfully included on-chain. The JSON response contains:
| Field | Meaning |
|---|---|
chain / chain_id | robinhood_testnet / 46630 |
address | Lowercase recipient address |
amount_wei | Claim amount as a decimal integer string |
tx_hash | Stable hash of the accepted transaction |
next_eligible_at | Next eligibility time for the rolling window |
Retrying the same normalized address from the same account within 24 hours returns the original 202 response and the same tx_hash, including when using another valid key from that account. It does not send another payment. If a response is lost, retry the same address with the same account.
Check the transaction using the existing testnet RPC endpoint. Replace {tx_hash} with the hash from the accepted response; this RPC query uses normal CU billing:
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}"]}'Errors and retries
The error envelope contains error.code, error.message, and error.data. error.data.reason equals error.code; docs_url, retryable, and request_id provide the error reference, retry policy, and request identifier. For every 429 or 503, wait the number of seconds in the Retry-After response header before retrying. Without an accepted response, do not assume test ETH has been sent.
| HTTP | Error code | What to do |
|---|---|---|
| 400 | invalid_address | Correct the address format or EIP-55 checksum; error.data.field is /address. |
| 400 | invalid_request | Send valid JSON containing only address. |
| 401 | missing_api_key / invalid_api_key | Supply a valid key in x-api-key. |
| 403 | key_expired | Create a new API key. |
| 403 | not_eligible | Apply again after the address has a positive mainnet balance or nonce. |
| 404 | not_found | Check the path, chain, POST method, and absence of query parameters; the faucet may be unavailable. |
| 413 | request_too_large | Reduce the body to fit within 64 KiB. |
| 429 | rate_limited | Wait for Retry-After; inspect scope and next_eligible_at when present. |
| 503 | faucet_empty | The faucet has insufficient funds for the claim and fees. Wait for Retry-After. |
| 503 | service_unavailable | Eligibility checks or claim processing are temporarily unavailable, or a previous claim has no receipt yet. Wait for Retry-After. |
| 503 | auth_unavailable / upstream_unavailable | Wait for Retry-After, then retry. |
See the error reference or /errors.json for machine-readable guidance, and the Robinhood Chain guide for RPC access.
Last updated:
Robinhood Chain Testnet starter
A three-step viem starter for Robinhood Chain Testnet: keyless public JSON-RPC reads, programmatic wallet sign-in with WebSocket logs, then the same key on mainnet.
Stock token multiplier
Understand the Robinhood Chain stock token multiplier, convert balances to shares, read uiMultiplier via eth_call, and track holders and daily activity via the Data API.