Pixels en frontpage
3 retos en 1, sobre frontpage.sh/millions
- inicio
- 4 jul 2026, 4:00 p.m.
- cerró
- 4 jul 2026, 5:03 p.m.
- entregas
- 4
3 retos en 1, sobre frontpage.sh/millions
Challenge brief
60 minutos. 1,000,000 de pixeles. Dinero real.
Esta edición del Dev Racing corre sobre frontpage.sh/million: un canvas de 1000×1000 donde cada pixel está a la venta. Los compras con USDC en la red Tempo vía MPP (Machine Payments Protocol) — sin cuentas, sin API keys, sin checkout. Tu agente paga y el pixel es tuyo.
Hay 3 retos. Puedes intentar uno, dos o los tres. Se premia cada reto por separado.
Presupuesto máximo: $1 USD. Gana el mayor impacto creativo.
Con $1 alcanzan hasta ~200 pixeles vírgenes ($0.005 c/u). ¿Cuánta identidad, arte o ingenio cabe en eso? Pixel art minimalista, un mensaje, un patrón, algo que la gente quiera clickear — tú decides.
totalUsd del quote de esa compra debe ser ≤ $1.00. Puedes hacer todas las pruebas que quieras antes; al final señalas cuál buy es tu entrega (guarda el buyId o el previewUrl).Un solo pixel. La creatividad está en el label y el url.
Cada compra puede llevar un link y un label — y cualquier pixel con link es clickeable en el board (el label aparece en hover). El reto: hacer que un pixel sea interesante por sí solo.
Ideas del tipo que buscamos (no las copies, supéralas):
Un pixel cuyo label muestra el marcador en vivo de un partido (tu bot lo recompra/actualiza… ojo, recomprar tu propio pixel duplica el precio 😈).
Un pixel con el precio de BTC, el clima de CDMX, los días que faltan para el mundial.
Un pixel que linkea a algo que solo tiene sentido por su posición en el canvas.
Regla: tu entrega es UN pixel (puedes haber hecho pruebas antes, pero señalas uno como tu entrega final).
Jueceo: ingenio del concepto + ejecución técnica. Si el label se actualiza solo con datos vivos, puntos extra grandes.
Programa un gato interactivo usando el canvas como tablero. Solo necesitas 9 pixeles.
Elige 9 coordenadas (un bloque 3×3, o 3×3 espaciado para que se vea desde lejos) y construye un juego donde cada movimiento es una compra de pixel: X = un color, O = otro color, vacío = un tercero.
GET /api/million/pixel o /grid), no solo de tu memoria local.El reloj ya corre. El camino recomendado es mppx: tu agente crea su wallet en la terminal, René la fondea, y ya estás comprando pixeles. Tres pasos, cero browser:
mppx no requiere instalación, corre con npx:
npx mppx account create
npx mppx account view # muestra tu address
npx mppx account view --show-key # agrega la private key, por si tu bot la necesita
Tu agente (Claude Code, OpenClaw) puede correr esto solo — la cuenta queda guardada en tu keychain local.
El canvas cobra USDC en la red Tempo (mainnet). René tiene presupuesto para darle $2 USD a quien lo pida. Copia la address que te dio npx mppx account view, pásasela a René, y en segundos tienes saldo. $2 alcanzan de sobra para los 3 retos ($1 del reto 1 + margen para pruebas y el gato).
Pídeselos apenas tengas la address — mientras llegan, ve pensando tu estrategia.
npx mppx balance # confirma que llegó el USDC
Listo. Salta a Cómo comprar pixeles.
Si prefieres una wallet con passkey e interfaz web (o vas a fondearte desde un exchange), Tempo tiene su propio CLI y wallet:
curl -L https://tempo.xyz/install | bash
tempo add request
tempo wallet login # abre wallet.tempo.xyz, creas/entras con passkey
tempo wallet whoami # muestra tu address
Formas de fondear esta wallet:
Si el dinero cayó en tu tempo wallet pero tu bot paga con mppx, muévelo por cualquiera de las dos vías:
npx mppx account view → confirma.tempo wallet send --to <address-de-mppx> --amount 2 --token usdc
Los dos pueden pagar MPP. La diferencia es quién firma y cómo:
mppx (npx mppx) | tempo-cli (tempo wallet + tempo request) | |
|---|---|---|
| Tipo de wallet | Cuenta local en tu keychain, key exportable | Passkey, ligada a wallet.tempo.xyz |
| Ideal para | Bots, scripts, agentes headless — todo lo automatizado | Recibir de un exchange, ver balances en UI web, pagos con humano en el loop |
| Interacción | 100% terminal, cero browser | Puede abrir el browser para autorizar |
| En este race | El default: crear wallet, recibir de René y comprar pixeles | Alternativa si te fondeas desde exchange o quieres UI web |
Regla de dedo para el race: mppx para todo; tempo-cli solo si necesitas el puente con un exchange o la interfaz web. Para el reto 3 (gato) el flujo headless de mppx es obligado.
Tip: npx mppx acepta --network mainnet|testnet. El canvas vive en mainnet — asegúrate de estar ahí.
Instala el skill y deja que tu agente (Claude Code, OpenClaw, etc.) haga el trabajo:
npx skills add DFectuoso/frontpage-sh-skills --copy
Luego, en lenguaje natural:
"Compra el pixel (500,500) en frontpage.sh million, color #ff0000, con link a midominio.com y label 'hola RBR'. Muéstrame el preview antes de pagar."
Todo vive en https://www.frontpage.sh (contrato completo en /openapi.json). Coordenadas x,y de 0 a 999, color en hex #rrggbb.
1. Explora el board (gratis, sin auth):
curl https://www.frontpage.sh/api/million/grid
# lista todos los pixeles COMPRADOS con su precio; lo que no aparece está virgen a $0.005
curl "https://www.frontpage.sh/api/million/pixel?x=500&y=500"
# inspecciona uno: owned, nextPriceUsd, url, label, owner
2. Pide un quote (gratis):
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://tusitio.com","label":"tu label"}'
# devuelve: quoteId, totalUsd, previewUrl (ábrelo para ver tus pixeles en el board), expira en 10 min
El url y label van a nivel del batch y aplican a todos los pixeles de esa compra. Un solo pixel con link ya es clickeable.
3. Compra (aquí sí se paga — mppx maneja el 402 solo):
npx mppx https://www.frontpage.sh/api/million/buy \
-J '{"quoteId":"<el quoteId del paso 2>","email":"tu@email.com"}'
El email es obligatorio (ahí llega tu recibo) y se valida antes de cobrar. mppx recibe el 402 Payment Required, firma la transferencia de USDC con tu cuenta y reintenta automáticamente. Verifica el resultado re-leyendo el pixel (owned: true) o viéndolo en vivo en frontpage.sh/million.
quote devuelve el total exacto.lostCount > 0) — re-cotiza y reintenta.cast/tempo no encontrado después de instalar → reabre la terminal o source ~/.bashrc / ~/.zshrc.tempoup actualiza el Tempo CLI si tienes versión vieja.TOKEN_INVALID_OR_EXPIRED) → los tokens duran 10 min, pide otro.MODERATION_FAILED en el quote → tu link/label fue rechazado por el filtro de contenido. Sé creativo, no ofensivo.Nos vemos en el canvas. Release Before Ready. 🚀
Biblioteca de entregas
Ordenado por score de participantes
| # | entrega | participantes | 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 | ___ |