Superjam

Make and play little apps with money baked in. Say it in a sentence, an AI ships it in a minute.

Superjam

Created At

ETHGlobal New York 2026

Project Description

SuperJam is a super-app host for the open web — a place to make and play little apps, with money, that anyone can use. We call them jams.

You describe a jam in a single sentence — "a tip jar with a leaderboard," "a daily trivia game," "a doodle-guessing duel" — and an AI builder agent designs, builds, and deploys it live in under a minute. No code, no terminals, no build logs: you just watch your jam come together, and then it's online.

You discover jams in a TikTok-style vertical feed, but with a twist — tap Play and the jam runs live, right there in the feed. It's a real, working app, not a video.

Everything crypto is invisible. You sign in with email and a wallet appears with it — no seed phrase, no extension. You claim your name and it's yours on-chain forever (you.superjam.eth), and every jam you make hangs under it (tipjar.you.superjam.eth). Jams can hold real money, run real on-chain games, and pay out — but to a player it just feels like a toy that happens to have a coin slot.

Under the hood, an agent economy does the work: real AI builder agents — each with its own wallet, an on-chain ERC-8004 identity, and a USDC reputation stake on the line — build your jam, some backed by a verified human via World ID. Payments settle on Circle's Arc chain, can be made fully private via Unlink, and your own coding agent can even commission a jam for you over MCP.

How it's Made

Architecture. A Bun + Turborepo monorepo. The consumer app (apps/web) is Next.js on Vercel; an API server runs on Railway; smart contracts live in a Foundry package (packages/contracts); and an AI builder agent turns prompts into deployed apps. Shared code — the injected SDK, on-chain helpers, the DB layer, and per-environment service URLs — lives in packages/* (sdk, onchain, db, shared).

Jams are sandboxed mini-apps. Each jam runs in a sandboxed iframe with an SDK injected over postMessage, giving it a uniform surface: wallet, profile, key-value storage, and shared cross-jam data. The host owns every sensitive action — a jam can request a payment, but the wallet and confirmation live in the host, so "jams never touch your wallet." Generated jams ship with our "Toybox" theme so they look host-native out of the box.

The make pipeline. A prompt becomes a plan, the user tweaks it conversationally, then a builder agent generates the code and deploys it — Next-on-Vercel for full apps, standalone Vite bundles for games. Publishing is gated by World ID (humanness) and a small pay-to-publish fee in USDC.

Two chains. Circle's Arc is the money chain (settlement + USDC); Sepolia L1 carries identity (ERC-8004 + ENS v2) and is the CCTP source. One APP_ENV drives per-environment URLs.

Partner tech, and what each bought us:

  • Dynamic — email-login embedded EVM wallets (the "wallet appears with you, no seed phrase" magic), plus TSS-MPC server wallets that let builder agents sign autonomously, and delegation that powers agent-hires-agent over MCP.
  • World ID — idkit v4 with a managed RP (the RP self-signs rp_context); used both as the anti-Sybil gate to keep publishing and to mark builder agents as human-backed.
  • Circle — Arc for settlement, CCTP for cross-chain USDC (e.g. funding a stake from Sepolia), and gasless EIP-3009 transfers relayed by the server for tips and in-game payments.
  • Unlink — a shielded private-payment rail so an agent can pay for work without leaking its balance or transaction graph.
  • ERC-8004 + ENS v2 — every builder agent (and every user) gets a real, human-readable on-chain identity; a self-contained SuperjamRegistry resolves those names in standard ENS tooling.
  • x402 — the pay-to-publish build fee is charged over the private rail; free when the user is World-verified and the builder is AgentBook-registered.
  • MCP — a SuperJam MCP server lets a coding agent (e.g. Claude Code) hire a builder as you via a scoped sjat_ PAT + Dynamic delegation, turning "build me an app" into one delegated transaction.

Notably hacky bits:

  • The Unlink rail couldn't bootstrap from Dynamic delegation (WaaS key-shares threw No wallet provider found), so we bootstrap the shielded account from a one-time browser signature of a canonical message and replay it server-side — one seam then covers payments, build fees, and tips.
  • Nested ENS names (<slug>.<user>.superjam.eth) work via an ENSIP-10 wildcard resolver: our registry is its own IExtendedResolver (it has no setSubregistry), yet still resolves through canonical ENS tooling.
  • On-chain game writes are operator-relayed and gasless — the Arc operator must equal the API server wallet or the writes revert.
  • The web app is forced to build with webpack, not Turbopack, because the Dynamic React SDK needs it.
background image mobile

Join the mailing list

Get the latest news and updates