The faucet program mints small amounts of cUSDC to any wallet on a per-recipient cooldown. It exists exclusively for devnet - there is no faucet on mainnet (mainnet uses real USDC).Documentation Index
Fetch the complete documentation index at: https://continuum-ec12e897.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Accounts
FaucetState PDA
| Field | Type | Purpose |
|---|---|---|
mint | Pubkey | Token mint to drip |
authority | Pubkey | Admin (update_params, transfer_authority) |
drip_amount | u64 | Per-drip amount (default 1,000 cUSDC = 1_000_000_000 lamports) |
cooldown_seconds | i64 | Per-recipient cooldown |
total_dripped | u64 | Lifetime stats |
DripRecord PDA
| Field | Type | Purpose |
|---|---|---|
last_drip | i64 | Unix-ts of last drip |
Instructions
initialize(drip_amount, cooldown_seconds) (admin)
One-shot setup of FaucetState. The faucet’s mint_authority on the cUSDC mint is set in this call.
drip (anyone)
Mint drip_amount cUSDC to the caller’s ATA. Reverts with CooldownNotElapsed if the per-recipient cooldown hasn’t passed since last_drip.
The caller pays Solana fees but receives free cUSDC. There’s no rate limit beyond the cooldown - burst behavior is bounded only by SOL transaction fee.
update_params(drip_amount, cooldown_seconds) (admin)
Rare. Used to crank the drip up or down. The operator scripts that fund the global vault temporarily crank drip_amount to a large value, mint, and restore.
transfer_authority(new_authority) (admin)
Rotate admin. On devnet, the deployer wallet.
Errors
| Code | Name | Cause |
|---|---|---|
| 6000 | CooldownNotElapsed | Drip again too soon |
TypeScript
Cooldown semantics
The cooldown is per recipient, not per signer. Two wallets can both drip in the same block. The same wallet cannot drip twice within the cooldown window. The default cooldown is short enough for testing but long enough to deter naive cycling for free cUSDC speculation. On devnet there’s no real value at stake; the cooldown exists mostly as a behavioral hint.Operator usage
The protocol’s bootstrap scripts use the faucet to fund the CLP global vault on devnet. The flow:- Set
drip_amountto a large value (e.g., $200K). - Call
driponce. - Restore
drip_amountto the default. - Transfer the $200K to
global_clp_vault.
admin_fund repeatedly with a default-sized drip. On mainnet there is no equivalent - admin must hold real USDC.
See also
Devnet info
Cluster, RPC, full faucet usage.
Quickstart
First-time mint flow that uses the faucet.

