Falling pieces are prompt-token groups. The playfield is a 14-row simulated context window. Pack efficiently, clear rows to compact, hold off context overflow as long as you can. Free, no signup, no account. Your top-10 scores live in your browser only. Optional Daily Challenge mode (one-time 5,000 sat BTC unlock) adds a deterministic-seed daily puzzle with a target everyone shares.
You packed tokens for 0 rows before the context window overflowed. Try a tighter pack next run.
One 5,000-sat confirmed payment unlocks all seven current priced features site-wide, including Daily Challenge mode. Paste the same TXID on any priced page; the shared client-side verifier checks mempool.space and blockstream.info public REST APIs — we never see your wallet. No account, no email, no recurring charge. The free game above is unaffected.
Any wallet (Cash App, Strike, Phoenix, Wallet of Satoshi, etc.) — send to the address below.
Copy the transaction ID from your wallet once it has at least 1 on-chain confirmation. Mempool-only txes are rejected (double-spend protection).
Daily mode persists in this browser via localStorage. Clear browser data and paste the same confirmed TXID again here or on any priced page — same TXID still verifies site-wide.
bc1qs04leape97ner4wqa98n94l9n0gv9aa84eg4ux
Verification logic: the JS fetches mempool.space/api/tx/<hash> (with blockstream.info as a fallback explorer) and checks that (a) at least one output pays the address above, (b) the paid amount across all matching outputs is ≥ 5,000 sats, and (c) the tx is confirmed on-chain (≥ 1 block). Unconfirmed (mempool-only) txes are rejected — required for double-spend protection. No tip is captured anywhere; we don't see your wallet, the explorer doesn't see this site. The full source is the same shared /gate.js module used by all seven current priced features.
← → move. ↑ or X rotate. ↓ soft-drop one row. Space hard-drop instantly. On mobile, use the on-screen buttons.
Fill every cell in a row and it clears: +100 points per row, +300 for two-at-once, +500 for three, +800 for four at once. Hard-drops earn 2 points per cell dropped.
If a new piece cannot spawn because the top of the context window is full, the run ends. Your top-10 scores are saved locally in your browser — nothing is sent anywhere.
Each of the seven standard tetromino shapes is labeled as a prompt-token group that you might see in a real Claude / GPT request. These labels are flavor only — the shape is the Tetris-canonical polyomino.
It's a Tetris-style falling-block game with the seven standard tetromino shapes (I, O, T, S, Z, L, J), the same move-rotate-drop-clear mechanic, and standard scoring (100 / 300 / 500 / 800 per simultaneous row clear). We label the pieces as prompt-token groups to tie the game to this site's theme (AI coding tools, prompt engineering). The code is ours.
Your top-10 free-game scores are saved in localStorage under the key tokenTetrisHighScores in this browser only. Daily Challenge attempts use a separate key, tokenTetrisDailyChallengeHighScores (last 30 attempts kept). Clear your browser data and both reset. Nothing is sent to any server. We don't have accounts, email capture, or analytics pings. The share button encodes your run into a copy-link URL you can paste anywhere — the link decodes back to a read-only snapshot, not a shared leaderboard.
A daily mode included in the site-wide one-time 5,000-sat BTC unlock. Every day, a deterministic seed (derived from the day number since 2026-04-20) generates a fixed piece sequence and a target score / piece-budget pair. Every player on the same day plays the same 7-bag sequence and aims for the same target — so daily scores are directly comparable across the world. Win = score ≥ target; loss = used the piece budget or topped out before the target. The free game above stays untouched. Verification is client-side via mempool.space + blockstream.info public REST APIs; we never see your wallet, only the on-chain TXID you paste. The Daily Challenge state persists in localStorage in this browser; clear browser data and paste the same confirmed TXID again here or on any priced page — same TXID still verifies site-wide. Share URL is ?dc=<score>.<lines>.<pieces>.<day>, distinct from the free ?r= shape so links don't collide.
A shorter board keeps a run playable in a single attention-span window — on par with Promptle's one-minute puzzle. Classic Tetris's 10×20 rewards long stamina runs; a 14-row board rewards tight packing and fast decisions, which is the theme-appropriate skill here (prompt density, not endurance).
Yes. On touch devices an on-screen control pad appears below the board with left / rotate / right / hard-drop buttons. The board auto-scales to the viewport. Rotation on S/Z pieces uses simple fixed kicks rather than the full Super Rotation System, so complex T-spins and SRS tricks won't work — basic rotate-and-drop play is unaffected.
The kits are free, not sold. Our three Claude Code / Cursor / Copilot starter kits at the bottom of this page include the prompt-engineering patterns this game hints at — structured system prompts, bounded tool results, clear turn boundaries. The game is a toy; the kits are the takeaway if you want to apply it to real Claude / Cursor / Copilot work.
Promptshelf. Single-file HTML, ~1100 lines of vanilla JS, no framework, no build step, no dependency CDN except Google Fonts. See the homepage for the rest of the catalog (three starter kits, four other creative products, twelve SEO guides). Repo is private; if you found a bug, just play around it — there's no issue tracker.
Four other free, zero-signup, single-page creative tools — each a different way to sharpen your prompt-engineering instincts.
Daily puzzle. One AI output, three candidate prompts — guess which.
// 002 · toolInteractive scope-inheritance visualizer. Toggle, preview, see conflict arbitration.
// 003 · quiz8 questions → personalized Claude / Cursor / Copilot stack pick.
// 004 · gallery18 documented LLM hallucination incidents with primary sources.
Saved you time? Tip the maker in BTC — no account, no signup, just paste.
bc1qs04leape97ner4wqa98n94l9n0gv9aa84eg4ux