What you’ll be able to do
- Fund a test account with the required test token.
- Verify the amount received using the account’s token balance and transaction receipt.
Before you start
- Obtain the public address of a test account you control from the signing system or wallet. A browser wallet is optional, and the faucet never needs the private key.
- Select the token required by the test.
*USDZpays gas for standard Ethereum transactions. Funding an account with another token does not replace that requirement. See Fees for selecting a different gas token in a Metal transaction.
Read the starting balance
Read the balance ofACCOUNT_ADDRESS, the account to fund, in the default gas
token, *USDZ. For another token, substitute its verified address from
Contract addresses.
balanceBefore in integer base units to compare it with the amount
received after funding. For the 18-decimal *USDZ token,
1000000000000000000 base units represents one token. Reading this balance
requires no signature or transaction fee.
Request funds
Open the faucet, pasteACCOUNT_ADDRESS, select
*USDZ, and choose Request funds. Wait for Funded, then follow
View transaction to inspect the transaction receipt.
For automated test accounts, request funds over HTTP.
The public endpoint accepts JSON with address and symbol. The API symbol
is USDZ, without the leading asterisk shown in the UI. No sign-in or
transaction signature is required.
funding-response.json contains:
The faucet tops up the selected token to its grant target. For
*USDZ, that
target is 100 tokens. An account holding 25 receives 75 while an account holding
100 or more receives an already_funded response. Other tokens may have
a larger target to cover gas. The response’s amount is the amount sent,
which can differ from the account’s resulting balance.
Verify funding
After the funding transaction succeeds, readbalanceOf(account) at a fresh
block number. Check that the account and token match the funding request, then
compare the new balance with balanceBefore. If the account had no other activity,
the increase must equal the response’s amount. Compare these values as
integers in base units.
Look up txHash in the testnet explorer at
/tx/<txHash>. Confirm a successful receipt and a transfer of the expected
token and amount to the test account. Read the receipt programmatically
with viem’s getTransactionReceipt({ hash }). Funding is complete when the
successful transaction and the account’s token balance agree.
Handle refusals and uncertain results
Faucet application errors return a non-success HTTP status and a JSON object with top-levelcode and message fields. Keep the response for diagnosis and
use the code to choose the next step from the table below.
An upstream service may return a non-JSON error, including a 429 for rapid
requests. Check the HTTP status and handle parsing failures. Back off before
retrying a rate-limited request.
The faucet limits grants by client IP and across the service, so developers
on the same network may share a limit. Check
faucet status for the offered symbols and
the
limits.clientCooldownSeconds, limits.clientDailyGrants, and
limits.dailyGrants values. Use those limits to space requests and reuse
funded test accounts.