A pay-per-second content feed where money flows both ways.
You pay creators by the second while you watch β and when your balance runs low, your
autonomous agent plays a matching ad that pays you back. NetΒ βΒ β¬0.
Every cent settles on-chain on Tempo, in real time.
Tempo testnet Β· pathUSD (TIP-20) Β· verified on-chain Β· agent β no API key Β·
π Winner β Futura Γ Tempo Hackathon 2026
Subscriptions are all-or-nothing and ads are ignored-and-unpaid. TempoFlow makes both per-second and on-chain: you stream sub-cent payments to the exact creator you're watching, and an autonomous agent earns it back for you from advertisers who pay for proven attention β so watching is effectively free, and there's no blackbox middleman taking a hidden cut.
Pay-per-second-of-attention means thousands of sub-cent payments, to many recipients, settled
instantly β a creator at β¬0.002/s, an advertiser paying you β¬0.004/s, a 70/20/10 collab split.
On Ethereum or Solana the gas on a β¬0.002 payment dwarfs the payment itself. Tempo's fast,
near-free pathUSD (TIP-20) settlement is the only substrate where this micro-payment loop is
economically real. TempoFlow leans into that: it's a machine-payments app β autonomous agents
streaming value per second β settled on-chain on Tempo, with an /openapi.json
discovery document (npx mppx discover validate).
Both money directions produce real, mined Tempo transactions (not mocked). From an end-to-end run:
| Flow | What happens | Result |
|---|---|---|
| Watch (viewer β creator) | charged per second | β mined Β· the creator's pathUSD balance rose by the exact watched amount |
| Ad refill (advertiser β viewer) | paid per verified second of attention | β mined |
| Tip (viewer β creator) | one-tap / streamed boost | β mined |
Every transaction links to the testnet block explorer (explore.testnet.tempo.xyz) right in the UI.
When your credit runs low while watching, a deterministic agent (no LLM, no API key) reads what you're into (the tags of what you watch), picks the best-matching funded ad, plays it full-screen to refill your balance on-chain, then auto-resumes your video. Pure tag-overlap + budget policy β a real, auditable autonomous payment agent. The result is a self-financing feed: watch β balance drains β agent tops you up with a relevant ad β repeat, netting β 0 over time.
| When you⦠| Money flows⦠| How |
|---|---|---|
| Watch a creator | out: you β creator, per second | Watchtime, not subscriptions β pay only while you watch, stop anytime. |
| Run low on credit | in: advertiser β you, per second | Your agent auto-plays a matching ad and pays you for proven attention. |
Every feature is the same primitive β stream value in tiny units, settle on-chain β on a different surface:
| Feature | What it does |
|---|---|
| Live on camera | Go live from your webcam; viewers on other accounts see your real camera feed and pay you per second, while you watch a live income meter (watchers Β· combined $/s Β· π). |
| Tip / boost | One-tap tips or a streamed $X/sec boost on top of watchtime β settled on-chain. |
| Advertiser escrow + refund | Advertisers escrow real pathUSD on-chain to fund an ad; it pays viewers per proven second; the unspent remainder is refunded on-chain on Stop. |
| Transparent glass ledger | Every payment and the 3% platform margin shown openly on-chain β not a hidden cut. |
| Crowdfund goals | Back a creator's goal; pledges are escrowed and only captured if the goal is met, else auto-refunded. |
| Ask a creator's AI | Chat a creator's AI persona billed per generated token, split to the creator. |
"Ads pay you" only works if you can't get paid for ignoring the ad. Payment is gated on a
three-layer proof (server/src/attention.ts):
- Passive signals β counts only while the tab is visible and the player is on-screen.
- Active challenge β at random intervals you must tap a target to keep earning (eyes-on-screen).
- Session binding β every heartbeat carries a per-session token; a scripted
curlloop earns nothing.
Demo-grade, not Sybil-proof β Layer-1 signals are client-reported. We label this honestly rather than overclaiming "bot-proof." See docs/01-architecture.md.
shared/ types, Tempo chain + pathUSD constants, wallet helpers
server/ Hono + node:sqlite β per-second charging, on-chain settlement, attention proof,
the interest-matching ad agent, /openapi.json discovery
web/ Vite + React β the feed, the watch + live experience, the agent ad takeover,
the glass ledger, on-chain receipts
agent/ headless autonomous agents (curator + advertiser) that settle on-chain
Reliability note: high-frequency per-second charges are batch-settled on-chain by the server every few seconds (signing from each wallet) rather than one tx per second β so the demo stays robust under real network conditions while every payment still lands on Tempo. See docs/06-decisions.md.
pnpm install
pnpm wallets:setup # generate + fund testnet wallets, writes .env (TESTNET ONLY)
pnpm dev # one command β server :3000 + web :5173Open http://localhost:5173. Optional headless agents:
pnpm agent:advertiser -- --budget 0.08 # pays viewers for proven attention
pnpm agent:curator -- --budget 0.05 # pays creators, earns from ads, net-aware- Watch any video on Home β the
β to creatormeter ticks up per second (real, on-chain). - Keep watching β your credit runs low β the agent's matching ad takes over full-screen and the
+ ad refillmeter pays you back β the video auto-resumes. That's the self-financing loop. - Click any on-chain receipt β it opens the payment on the testnet explorer.
- Studio β π΄ Go live (allow camera) β open the stream from a second account β you see the real camera feed + pay the host per second; the host sees their income meter.
- Ledger β the transparent feed of every payment + the visible 3% margin.
00 Vision Β· 01 Architecture Β· 02 MPP Integration Β· 03 Agents Β· 06 Decisions Β· 07 Demo Script Β· 08 Pitch Β· 09 API
π Winner β Futura Γ Tempo Hackathon 2026.