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 (10000000000000000 wei).
  • 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:

FieldMeaning
chain / chain_idrobinhood_testnet / 46630
addressLowercase recipient address
amount_weiClaim amount as a decimal integer string
tx_hashStable hash of the accepted transaction
next_eligible_atNext 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.

HTTPError codeWhat to do
400invalid_addressCorrect the address format or EIP-55 checksum; error.data.field is /address.
400invalid_requestSend valid JSON containing only address.
401missing_api_key / invalid_api_keySupply a valid key in x-api-key.
403key_expiredCreate a new API key.
403not_eligibleApply again after the address has a positive mainnet balance or nonce.
404not_foundCheck the path, chain, POST method, and absence of query parameters; the faucet may be unavailable.
413request_too_largeReduce the body to fit within 64 KiB.
429rate_limitedWait for Retry-After; inspect scope and next_eligible_at when present.
503faucet_emptyThe faucet has insufficient funds for the claim and fees. Wait for Retry-After.
503service_unavailableEligibility checks or claim processing are temporarily unavailable, or a previous claim has no receipt yet. Wait for Retry-After.
503auth_unavailable / upstream_unavailableWait 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:

On this page