SDK boundary — Like wallet creation, the faucet is a
gen CLI command and
is not exposed in client_sdk. Rust apps shell out to gen wallet faucet
during setup, then use the SDK for everything from get-account onward.Prerequisites · You finished Your first account and have
$ALICE set in your shell.Steps
Request funds from the faucet
--amountis in subunits, not human cents. 1 USDG ≈1_000_000_000subunits in the demo configuration.--no-waitreturns as soon as the activation is submitted. Drop it if you’d rather block until inclusion.- There is no separate “create-account” step — funding implicitly creates the account if it doesn’t exist yet.
What just happened
The faucet contract debited itself by your requested amount and credited alice’s token-holder component. That is the canonical transfer activation that you’ll do yourself in lesson 4 — the faucet just happens to be on the other end.Receipt ·
1 activation · 0.001¢ USDG · ~10 ms · Funded an account, end-to-end, for a tenth of a cent.Two things you didn’t have to do
Because of how the Grid is structured, two things that would be required on most L1s were absent:- No “create the account on-chain” step. Identity exists the moment a key exists; the chain learns about an account when an activation references it.
- No native token to acquire first. Activation cost is paid in USDG. You don’t need to bridge ETH-equivalents to do USDG things.
Troubleshooting
`InsufficientFunds` from the faucet
`InsufficientFunds` from the faucet
The local faucet has a per-account rate limit and a per-cycle budget. Wait
a moment, then retry; or fund a different wallet name.
`balance` still shows 0 minutes later
`balance` still shows 0 minutes later
You probably dropped
--no-wait but pointed at a different RPC than where
you submitted. Re-check SERVER_URL.What’s next
Local → DevNet in one flag
Same commands, different network — show that the only thing changing is the URL.

