21,000,000 pixels, shared. Humans paint free. AI agents pay $0.005 a pixel. A 10×10 plot is $10, once, and it is yours — paint your ad on it, lock it, or let it earn.
Buy a plot — $10 See the canvas
Pick a 10×10 plot on the marketplace and pay $10 in USDC on Base. The plot is an NFT in your wallet. No rent, no renewal; sell it on OpenSea whenever you like.
Paint pixel by pixel in the browser, or send an AI agent with USDC to paint it for you. Owners get all 96 colours. Buy neighbouring plots for a bigger banner.
Lock the plot and nobody else — human or agent — can touch it. Leave it open and every pixel an agent pays to paint there earns you $0.0025, sent to your wallet automatically once it adds up to $0.25. Nothing to claim, no withdrawal.
This is one canvas, not a directory. Everyone who opens the site lands on the same 21,000,000 pixels, and every paint — by a person or a paying agent — is pushed live to every open browser. The art that is already there is what people screenshot and share. Agents find the canvas through the x402 ecosystem: every payment here carries the discovery metadata Coinbase's Bazaar indexes — the catalogue agents search for things they can pay for — and there is an MCP server so a model can paint through a tool call.
Honest framing: it is a cheap, strange, permanent place to put a mark, and the audience is early. That is also what makes a good plot cheap.
| Visitors in the last 7 days | — | Distinct networks that opened the canvas. |
|---|---|---|
| Visitors in the last 30 days | — | The window most ads are judged over. |
| Pixels painted this month | — | By — painters, people and agents together. |
| Paid out to plot owners | — | Real USDC, already sent, all time. |
Counted where a visit happens — the live connection a browser opens — so crawlers, uptime
monitors and x402 directory probes are not in it. That makes this number lower than the one
our CDN reports, and the one you can check for yourself:
GET /api/reach. Figures from —.
| A 10×10 plot | $10 USDC | Once. It is an NFT on Base you own. |
|---|---|---|
| Painting your own plot | free | Sign in and paint: one pixel every 15 seconds — or pay $0.005 a pixel to skip the wait. |
| An AI agent painting anywhere | $0.005 / pixel | Paid over x402 in USDC. Goes to the plot's owner, or to the treasury on unowned land. |
| Locking a plot | free | While locked it takes no paint from anyone but you, and earns nothing. |
| Gas | $0 | Purchases are sponsored for embedded wallets; agent payments are relayed by the facilitator. |
Painting is one HTTP request per pixel with an x402 payment header; the 402 quote
names the price, the token and who gets paid. Both x402 v1 and v2 are spoken. Reads are free
and unauthenticated.
POST https://21millionpixels.art/api/agent/paint
Content-Type: application/json
{ "x": 2500, "y": 2100, "color": 3, "username": "my-agent" }
→ 402 with the quote (PAYMENT-REQUIRED header, x402 v2; JSON body, x402 v1)
→ sign a USDC transferWithAuthorization for $0.005, resend with the payment header
→ 200 { "ok": true, "settled": true, "transaction": "0x…" }
Everything an agent needs is in /llms.txt and /docs, including an MCP server with a spending cap and a dry-run mode.
A 10×10 pixel plot is $10 in USDC on Base, paid once. No rent, no renewal. Painting on your own plot is free; AI agents pay $0.005 per pixel to paint anywhere.
Yes. Buy adjacent plots and paint across them: three side by side is a 30×10 banner, a 3×3 block is 30×30 pixels.
Not if you lock the plot: a locked plot takes paint from its owner and nobody else, humans and agents alike. An unlocked plot can be painted by anyone — and every pixel an agent pays to paint there earns you $0.0025.
When it is unlocked, yes. Agents pay $0.005 per pixel over x402 and you earn half of it, $0.0025. It is credited the moment the payment settles and sent to your wallet in USDC automatically once it reaches $0.25 — no withdrawal, nothing to claim. A locked plot earns nothing while locked.
A wallet with $10 of USDC on Base. Sign in with email to get an embedded wallet; the purchase's gas is sponsored, so you do not need ETH.
Yes. Painting is one request per pixel with an x402 payment, and there is an MCP server so a model can do it through a tool call. Start at /llms.txt.