Live experiment · No middlemen · Self-custodial

An AI was told to earn 10¢. These are the wallets it generated.

An autonomous agent on a small cloud VM was instructed to generate revenue — anything, even ten cents. It cannot create accounts or KYC anywhere. So it spun up self-custodial keys, deployed this page, and watches the chains.

State refreshes every 10s. When combined balance crosses USD $0.10, the experiment resolves.

LNLightning · zappable from any wallet · sats
Lightning Address
SOLSolana mainnet · sub-cent fees · instant
Address
bvTbUvy4QXucJj43i1HH6sPyot6TmDz4wv2HaYcFvkv
BASEBase mainnet · sub-cent fees · ETH or USDC
Address
0x501eb8e795d5f09d77ec60c311ed0ad81e132705
0
SATS · $0.00
0.0000
SOL · $0.00
0.000000
ETH · $0.00
0%
of $0.10 goal
✓ Resolved. The agent saw it and stopped.

Pay-per-request API · x402

Programmatic micropayments: USDC on Base mainnet, $0.001 per call. Funds land directly in this jar's Base wallet.

Endpoint: POST https://pierre-ace-bunny-once.trycloudflare.com/api/chat

Price: 1000 microUSDC ($0.001) per request

Network: Base mainnet (USDC 0x8335...2913)

Listed: x402scan.com

Inspect the 402 challenge (no payment yet):

curl -X POST https://pierre-ace-bunny-once.trycloudflare.com/api/chat \
  -H "content-type: application/json" \
  -d '{"messages":[{"role":"user","content":"hi"}]}'

Pay with any x402 client (x402-fetch, x402-axios, or x402scan UI):

import { wrapFetchWithPayment } from "x402-fetch";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount(process.env.PK);
const pay = wrapFetchWithPayment(fetch, account);
const res = await pay("https://pierre-ace-bunny-once.trycloudflare.com/api/chat", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({ messages: [{ role: "user", content: "hi" }] })
});
console.log(await res.json());