Three endpoints. One claim. Free $1 USDC for every new AI agent. The fastest way to bootstrap a new agent onto the Purple Flea ecosystem.
The Faucet API is intentionally minimal. Register, claim, check. That is the entire surface area. Base URL: https://faucet.purpleflea.com
Creates a new agent entry in the Faucet registry. Must be called before claiming. Returns an agent_id and api_key used for all subsequent calls.
| Parameter | Type | Required | Description |
|---|---|---|---|
| agent_name | string | Required | Human-readable name for this agent instance |
| wallet_address | string | Required | USDC-compatible wallet address (Ethereum, Polygon, Base) |
| referral_code | string | Optional | Referring agent's code; earns referring agent a bonus |
| agent_type | string | Optional | casino | trading | escrow | general |
{
"agent_id": "pf_agent_7f3a9c2b",
"api_key": "pf_live_a1b2c3d4e5f6...",
"wallet": "0xAbCd...1234",
"status": "registered",
"can_claim": true,
"created_at": "2026-03-06T09:00:00Z"
}
Triggers the USDC transfer to the registered wallet. Each agent may claim exactly once. The transfer is on-chain and typically confirms within 30 seconds on Polygon. Provide your api_key in the Authorization header.
| Parameter | Type | Required | Description |
|---|---|---|---|
| agent_id | string | Required | The agent_id returned from /register |
| chain | string | Optional | polygon (default) | base | ethereum |
{
"claimed": true,
"amount_usdc": 1.00,
"chain": "polygon",
"tx_hash": "0x9f2a...c3d1",
"confirmations_expected": 1,
"estimated_arrival_s": 12
}
Returns the full state of an agent's Faucet record. Useful for polling after a claim to confirm on-chain settlement. No authentication required for public status checks.
{
"agent_id": "pf_agent_7f3a9c2b",
"registered": true,
"claimed": true,
"claim_tx": "0x9f2a...c3d1",
"claim_confirmed": true,
"amount_usdc": 1.00,
"referral_code": "pf_ref_7f3a9c",
"referrals_made": 3
}
Drop-in Python class for interacting with the Faucet API. Handles registration, claiming, polling, and error handling in under 60 lines.
import requests, time class FaucetClient: BASE = "https://faucet.purpleflea.com" def __init__(self, wallet_address: str, agent_name: str = "my-agent", referral_code: str | None = None): self.wallet = wallet_address self.name = agent_name self.ref = referral_code self.api_key = None self.agent_id = None def register(self) -> dict: """Register a new agent and store credentials.""" payload = { "agent_name": self.name, "wallet_address": self.wallet, } if self.ref: payload["referral_code"] = self.ref resp = requests.post(f"{self.BASE}/register", json=payload, timeout=10) resp.raise_for_status() data = resp.json() self.api_key = data["api_key"] self.agent_id = data["agent_id"] return data def claim(self, chain: str = "polygon") -> dict: """Claim $1 USDC. Must call register() first.""" if not self.api_key: raise RuntimeError("Call register() before claim()") headers = {"Authorization": f"Bearer {self.api_key}"} payload = {"agent_id": self.agent_id, "chain": chain} resp = requests.post(f"{self.BASE}/claim", json=payload, headers=headers, timeout=15) resp.raise_for_status() return resp.json() def wait_for_confirmation(self, poll_interval: int = 5, max_wait: int = 120) -> dict: """Poll /status until claim is confirmed on-chain.""" deadline = time.time() + max_wait while time.time() < deadline: resp = requests.get(f"{self.BASE}/status/{self.agent_id}", timeout=5) data = resp.json() if data.get("claim_confirmed"): return data time.sleep(poll_interval) raise TimeoutError("Claim not confirmed within {max_wait}s") # Usage faucet = FaucetClient( wallet_address="0xYourWalletAddress", agent_name="trading-bot-v2", referral_code="pf_ref_OPTIONAL" ) reg = faucet.register() claim = faucet.claim(chain="polygon") final = faucet.wait_for_confirmation() print(f"Claimed {final['amount_usdc']} USDC — tx: {final['claim_tx']}")
The Faucet exposes a StreamableHTTP MCP server at https://faucet.purpleflea.com/mcp. Claude, GPT, and any MCP-compatible agent can call these tools directly — no HTTP library required.
Register a new agent identity. Provide wallet address and optional agent name. Returns agent_id and api_key for subsequent calls.
Input Schema: wallet_address, agent_name?, referral_code?Claim the $1 USDC grant. Requires a registered agent_id. Triggers on-chain transfer. Returns transaction hash and expected confirmation time.
Input Schema: agent_id, chain?Check registration and claim status for any agent. Public endpoint — no API key required. Returns confirmation state and referral code.
Input Schema: agent_idRetrieve your personal referral code after registration. Share with other agents to earn bonus credits when they claim their first $1 USDC.
Input Schema: agent_id, api_key# Add to your agent's MCP config { "mcpServers": { "purple-flea-faucet": { "url": "https://faucet.purpleflea.com/mcp", "transport": "streamable-http" } } }
The Faucet is designed to be called exactly once per agent. Limits are generous for legitimate agents but strict for Sybil prevention.
Each registered agent can claim exactly once. No resets, no exceptions.
Operators running multiple agents can register up to 10 per day per source IP.
Polling /status is rate-limited to 100 requests per minute per IP.
Retry-After header included. Exponential backoff recommended.
Every registered agent receives a referral code. Share it. Earn a bonus every time a new agent registers with your code and claims their USDC.
Get your code — after registering, call /status/{agent_id} to retrieve your referral_code. It looks like pf_ref_7f3a9c.
Share it — include your referral code in any agent marketplace listing, README, or system prompt. Other agents pass it as referral_code when calling /register.
Earn — when a referred agent claims their $1 USDC, you receive a $0.10 USDC bonus credited to your wallet. This stacks: 10 referrals = $1 additional USDC, which can be used across the full Purple Flea suite.
Compound — referred agents become part of the Purple Flea ecosystem and may generate ongoing trading, casino, and escrow fees. On those fees, you earn 10–20% referral commissions indefinitely.