Pixels at frontpage
3 challeges in 1, about frontpage.sh/millions
- start
- Jul 4, 2026, 4:00 PM
- closed
- Jul 4, 2026, 5:03 PM
- submissions
- 4
3 challeges in 1, about frontpage.sh/millions
Challenge brief
60 minutes. 1,000,000 pixels. Real money.
This Dev Racing edition runs on frontpage.sh/million: a 1000×1000 canvas where every pixel is for sale. You buy them with USDC on the Tempo network via MPP (Machine Payments Protocol) — no accounts, no API keys, no checkout. Your agent pays and the pixel is yours.
There are 3 challenges. You can attempt one, two, or all three. Each challenge is judged and awarded separately.
Max budget: $1 USD. Biggest creative impact wins.
$1 gets you up to ~200 virgin pixels ($0.005 each). How much identity, art, or wit fits in that? Minimalist pixel art, a message, a pattern, something people actually want to click — you decide.
totalUsd of that buy's quote must be ≤ $1.00. Test as much as you want beforehand; at the end, point to which buy is your submission (save the buyId or the previewUrl).A single pixel. The creativity lives in the label and the url.
Every purchase can carry a link and a label — and any pixel with a link is clickable on the board (the label shows on hover). The challenge: make one pixel interesting on its own.
The kind of ideas we're looking for (don't copy these — beat them):
A pixel whose label shows the live score of a match (your bot re-buys/updates it… careful, re-buying your own pixel doubles the price 😈).
A pixel with the BTC price, the CDMX weather, the days left until the World Cup final.
A pixel that links to something that only makes sense because of its position on the canvas.
Rule: your submission is ONE pixel (you can test before, but you point to one as your final entry).
Judging: cleverness of the concept + technical execution. If the label self-updates with live data, big bonus points.
Build an interactive tic tac toe using the canvas as the board. You only need 9 pixels.
Pick 9 coordinates (a 3×3 block, or a spaced-out 3×3 so it's visible from afar) and build a game where every move is a pixel purchase: X = one color, O = another, empty = a third.
GET /api/million/pixel or /grid), not just from your local memory.The clock is already running. The recommended path is mppx: your agent creates its wallet in the terminal, René funds it, and you're buying pixels. Three steps, zero browser:
mppx requires no install, it runs with npx:
npx mppx account create
npx mppx account view # shows your address
npx mppx account view --show-key # adds the private key, in case your bot needs it
Your agent (Claude Code, OpenClaw) can run this on its own — the account is stored in your local keychain.
The canvas charges USDC on the Tempo network (mainnet). René has budget to give $2 USD to anyone who asks. Copy the address from npx mppx account view, hand it to René, and you'll have a balance in seconds. $2 is plenty for all 3 challenges ($1 for challenge 1 + margin for testing and the tic tac toe).
Ask for it as soon as you have the address — while it lands, start thinking strategy.
npx mppx balance # confirm the USDC arrived
Done. Jump to How to buy pixels.
If you prefer a passkey wallet with a web UI (or you're funding from an exchange), Tempo has its own CLI and wallet:
curl -L https://tempo.xyz/install | bash
tempo add request
tempo wallet login # opens wallet.tempo.xyz, create/sign in with a passkey
tempo wallet whoami # shows your address
Ways to fund this wallet:
If the money landed in your tempo wallet but your bot pays with mppx, move it via either route:
npx mppx account view → confirm.tempo wallet send --to <mppx-address> --amount 2 --token usdc
Both can pay MPP. The difference is who signs and how:
mppx (npx mppx) | tempo-cli (tempo wallet + tempo request) | |
|---|---|---|
| Wallet type | Local account in your keychain, exportable key | Passkey, tied to wallet.tempo.xyz |
| Best for | Bots, scripts, headless agents — anything automated | Receiving from an exchange, checking balances in a web UI, human-in-the-loop payments |
| Interaction | 100% terminal, zero browser | May open the browser to authorize |
| In this race | The default: create a wallet, receive from René, and buy pixels | Alternative if you fund from an exchange or want a web UI |
Rule of thumb for the race: mppx for everything; tempo-cli only if you need the exchange bridge or the web interface. For challenge 3 (tic tac toe), mppx's headless flow is a must.
Tip: npx mppx accepts --network mainnet|testnet. The canvas lives on mainnet — make sure you're there.
Install the skill and let your agent (Claude Code, OpenClaw, etc.) do the work:
npx skills add DFectuoso/frontpage-sh-skills --copy
Then, in natural language:
"Buy pixel (500,500) on frontpage.sh million, color #ff0000, linking to mydomain.com with label 'hello RBR'. Show me the preview before paying."
Everything lives at https://www.frontpage.sh (full contract at /openapi.json). Coordinates x,y from 0 to 999, color in hex #rrggbb.
1. Explore the board (free, no auth):
curl https://www.frontpage.sh/api/million/grid
# lists all PURCHASED pixels with their price; anything missing is virgin at $0.005
curl "https://www.frontpage.sh/api/million/pixel?x=500&y=500"
# inspect one: owned, nextPriceUsd, url, label, owner
2. Request a quote (free):
curl -X POST https://www.frontpage.sh/api/million/quote \
-H 'content-type: application/json' \
-d '{"pixels":[{"x":500,"y":500,"rgb":"#ff0000"}],"url":"https://yoursite.com","label":"your label"}'
# returns: quoteId, totalUsd, previewUrl (open it to see your pixels on the board), expires in 10 min
The url and label are batch-level and apply to every pixel in that purchase. A single pixel with a link is already clickable.
3. Buy (this is where you pay — mppx handles the 402 on its own):
npx mppx https://www.frontpage.sh/api/million/buy \
-J '{"quoteId":"<the quoteId from step 2>","email":"you@email.com"}'
The email is required (your receipt goes there) and is validated before charging. mppx receives the 402 Payment Required, signs the USDC transfer with your account, and retries automatically. Verify the result by re-reading the pixel (owned: true) or watching it live on frontpage.sh/million.
quote returns the exact total.lostCount > 0) — re-quote and retry.cast/tempo not found after installing → reopen your terminal or source ~/.bashrc / ~/.zshrc.tempoup updates the Tempo CLI if you're on an old version.TOKEN_INVALID_OR_EXPIRED) → tokens last 10 min, request a new one.MODERATION_FAILED on the quote → your link/label got rejected by the content filter. Be creative, not offensive.See you on the canvas. Release Before Ready. 🚀
Submission library
Ordered by participants score
| # | submission | participants | links |
|---|---|---|---|
| 01 | Untitled entryby Jesus Contreras | 0 ★ x0 | — |
| 02 | Daniel Ordóñezby Daniel Ordóñez | 0 ★ x0 | — |
| 03 | Felipe Gomezby Felipe Gomez | 0 ★ x0 | — |
| 04 | juan david meloby Juan Melo | 0 ★ x0 | — |
| # | entrega | score | spark |
|---|---|---|---|
| 01 | Untitled entryby Jesus Contreras | 0 ★ x0 | ___ |
| 02 | Daniel Ordóñezby Daniel Ordóñez | 0 ★ x0 | ___ |
| 03 | Felipe Gomezby Felipe Gomez | 0 ★ x0 | ___ |
| 04 | juan david meloby Juan Melo | 0 ★ x0 | ___ |