BSV Association — Open Run Agentic Pay Hackathon

bMovies
BSVA Submission

Window  2026-04-06 → 2026-04-17 23:59 UTC
Live demo  bmovies.online
Source  github.com/b0ase/bmovies
Submitter  The Bitcoin Corporation Ltd (Co. No. 16735102, England & Wales)
Contact  online.bmovies@gmail.com
33 Canonical BSV-21 tokens on mainnet
58 Named AI agents in the studio roster
24 TX/s Verified peak broadcast rate
1.85M Projected TX / 24h (123% of target)
28 Named pipeline steps per production

bMovies is a working autonomous AI film production studio that runs on Bitcoin. Pay $0.99 for a pitch, $9.99 for a trailer, $99 for a short, or $999 for a feature — walk away with real generated video and 99% of the royalty shares minted as a canonical BSV-21 token on BSV mainnet.

A swarm of 12 specialist AI agents — writers, directors, cinematographers, editors, composers, sound designers, casting directors, voice actors, publicists — competes for the commission, splits it among themselves through real BSV-21 token allocations, and produces the film across 28 named pipeline steps over a real 24-hour window. Every step broadcasts on-chain. Every artifact is versioned. The commissioner can revise scenes, sell shares to early investors during a draft window, and publish when ready.

As of submission writing, 33 canonical BSV-21 tokens are live on BSV mainnet: 20 film royalty tokens (including $ZEPHY, minted via a real Stripe $0.99 pitch checkout today), 6 studio equity tokens ($BOT21, $BOLTD, $CLNKR, $DREAM, $NRLSP, $PRMNT), 6 director royalty tokens ($CAMRN, $NOLAN, $SCRSB, $WESAX, $KUBRX, $SPLBG), and the $bMovies platform royalty share (1 billion supply, mint txid 371818530282bb3c17960c62a416c09d172f930ea40ad5bd432f198a3b9cf5db). All indexable at GorillaPool and tradeable via 1sat.market.

A streaming fan-out engine running alongside the production pipeline broadcasts real on-chain piece-payment transactions to royalty shareholders at a verified peak rate of 24 TX/s. Projected sustained rate with a 5000-slot pool: ~21.4 TX/s → 1.85M TX / 24h, exceeding the BSVA 1.5M requirement. Verified empirically on BSV mainnet on 2026-04-15 over a 13-minute burst broadcasting 19,000 real fan-out transactions.

Section 01

What You Can Do Live, Right Now

As an audience member

  1. Visit https://bmovies.online
  2. See the "● Live now · N features producing" strip in the hero
  3. Click any in-flight feature card → land on the live production timeline
  4. Watch real Grok output land in real time (treatments, screenplays, storyboards, video clips)

As a BSVA judge (one-shot per IP per 24h)

  1. Visit https://bmovies.online/commission.html?judge=BSVA2026
  2. Click "Commission feature →"
  3. Get redirected to the live timeline for your commission
  4. Watch all 28 pipeline steps execute over the next ~24 hours of real wallclock (or ~30 minutes in test mode, configurable)
  5. When the pipeline reaches draft status, click "Revise scene N with more tension" and watch the editor agent re-cut the scene with a versioned new artifact
  6. Click "Publish to /watch.html" when satisfied

As a developer

Section 02

How It Satisfies the BSVA Requirements

1. ≥2 AI agents with individual BSV wallets

12 agent roles with persistent identities in bct_agents, plus 6 studios (bolt-disney, clanker-bros, dreamforge, neuralscope, paramountal-ai, 21st-century-bot) × 8 specialist agents each = 48 named agent identities plus 10 shared specialists (4 voice actors, 2 casting directors, 2 production designers, 2 publicists). Total 58 agents in the studio roster.

The original hackathon plan targeted 4 agents with $1 funding each. The submission expanded to 58 agents because the full Hollywood production pipeline genuinely benefits from the specialist roles. Per-agent BSV wallets are configured for streaming-engine agents (SpielbergX producer, VC-X / CapitalK financiers, ClawNode-A seeder); the production-pipeline agents currently use sentinel txids for per-step payments and migrate to real BSV transfers as the wallet pool is funded.

2. ≥1.5M on-chain TX in a designated 24h window

Two parallel tracks, with empirical verification on BSV mainnet.

Track A — Streaming fan-out (the volume engine)

The existing src/agents/piece-payment.ts broadcasts one P2PKH fan-out transaction per piece served, with N+1 outputs covering every token holder of the production being streamed. Every broadcast is a real BSV mainnet TX — no artificial inflation.

Empirical result (dry run 2026-04-15, verified on mainnet): With 2 streaming loops × 20 inflight × ARC broadcaster (anonymous GorillaPool endpoint), the swarm sustained 24 TX/s peak over a 13-minute, 19,000-transaction burst. Example split-tx: 7095219e…339950a1.

Duty cycle correction: The BSV mempool chain-depth limit forces each UTXO pool slot to freeze for ~12 minutes after 19 broadcasts, while the ancestor chain confirms into a block. The correct model (now in scripts/volume-math.ts):

peak_pps = loops × pps = 24 TX/s (verified) continuous_thr = cooldown × peak_pps = 17,280 slots duty_cycle = D × S / ((D-1) × S + C × P) (sub-continuous) sustained_pps = peak_pps × duty_cycle

Sized for target reach: At 5000 slots × 2 loops × 12 pps (24 peak):

pnpm agents:swarm --arc --slots 5000 --sats-per-slot 1000 \
  --pps 12 --inflight 20 --sats-per-piece 10

Cost for a 24h run: ~$33 total, of which ~$22 is non-recoverable miner fees (at 100 sat/KB, the @bsv/sdk default fee model) and the rest is pool prime capital + fan-out payouts that flow back to other agent wallets in the family.

Projection + verification via pnpm agents:math. Tunable via pnpm agents:swarm --slots N --pps N --inflight N --arc.

Track B — Production pipeline TX activity

Each running feature commission adds ~150–900 TX over its 24h lifecycle (per-step agent payments, artifact-hash anchors, approvals). At any given moment several productions are in flight, contributing additional real on-chain activity in parallel with Track A. The pipeline TX is the "story" — the streaming fan-out is the volume.

3. Agent discovery via BRC-100 wallets and identity

Two layers, both working:

Agent-to-agent identity (BRC-77 signed messages). Agent identity is anchored to BSV private keys via src/agents/identity.ts. Every agent has its own keypair; offers, registrations, and attestations are signed with BRC-77 (SignedMessage.sign / SignedMessage.verify from @bsv/sdk — the cryptographic primitive that BRC-100 wallets use under the hood). The agent registry at src/agents/registry-supabase.ts stores BRC-77-signed offer records that producer and financier agents discover and verify before acting on them.

End-user BRC-100 wallet connect. docs/brochure/js/brc100.js (421 lines) is a vendor-neutral BRC-100 client with detection for Metanet Client Desktop (full BRC-100 handshake), Yours Wallet (browser extension via window.yours), and HandCash (OAuth). Every consumer page that needs a signature or a payment imports from brc100.js and never touches a private key itself. Non-custodial by construction: the platform never sees the user's key, only the signed output or the broadcast txid.

The honest framing: we use BRC-77 for agent attestation + BRC-100 wallet-connect for end users. We do not implement the full BRC-100 wallet protocol server inside the agent layer, and we do not use MessageBox as the transport. The AgentRegistry interface in src/agents/registry.ts is designed so that either can drop in without consumer changes.

4. Autonomous transactions via MessageBox or direct payments

src/payment/wallet.ts builds and broadcasts P2PKH transactions autonomously. Used by the streaming engine for per-piece fan-outs and by the producer agents for paying the studio team. The src/agents/swarm.ts top-level orchestrator wires producer/financier/seeder agents into a self-driving loop that ticks autonomously without human intervention. End users pay via the BRC-100 wallet client (brc100.js payToAddress()) which builds and broadcasts a P2PKH spend from their connected wallet — the platform never holds the private key.

5. Human-facing UI displaying agent activity

Multiple live views:

URL Description
bmovies.online Homepage with the live productions strip
production.html?id=… Live timeline of all 28 pipeline steps, deliverables grid, on-chain TX counter, Revise + Publish controls
productions.html Wall of every offer with a red "● Live" badge for in-flight features
watch.html Consumer-facing catalog of published films
agents.html Agent identity directory
studios.html Six studios with 8-agent rosters, reputation, and earnings
exchange.html Films / Studios / Directors exchange — every canonical BSV-21 token with deep-links to 1sat.market
treasury.html Platform P&L dashboard (30-second auto-refresh) — gross revenue, Stripe 30-day charges, x402 totals, compute cost proxy
leaderboard.html Agent leaderboard by reputation and activity

6. Real-world problem solution

Pre-production film financing is catastrophically broken. Studios gatekeep, indies can't raise, audiences don't get what they want. bMovies demonstrates a different model:

The commissioner is the producer. There is no studio gatekeeper. The studio's role is reduced to a 1% infrastructure fee.

Grounded in the UK creative economy. The Bitcoin Corporation Ltd is registered in England & Wales and the founder target audience is the UK independent film sector — the writers, directors and micro-budget producers locked out of traditional development hell. The UK has ~16,000 working freelance screenwriters and directors, ~2,000 indie production companies, and a public-funding pipeline (BFI, Creative England, Screen Scotland, Ffilm Cymru, Northern Ireland Screen) that collectively disburses around £100m/year across fewer than 400 greenlit projects. The acceptance rate is ~2%, and most of the 98% who are rejected never get a route to an audience at all. bMovies makes that route a 99-cent pitch. See /legal/platform-token-prospectus.html for the full FCA-perimeter disclosure.

7. Tech stack

Component Technology Notes
@bsv/sdk BSV SDK Per-agent wallets, transaction construction, P2PKH unlock templates, fan-out outputs, canonical 1sat inscription envelope
BSV-21 deploy+mint src/token/mint.ts OP_FALSE OP_IF "ord" OP_1 "application/bsv-20" OP_0 <json> OP_ENDIF wrapping a P2PKH
BSVAPI x402 src/agents/bsvapi-client.ts Pipeline pays for AI generation through HTTP 402 challenges
Database Self-hosted Supabase on Hetzner api.b0ase.com — 25 migrations
Hosting Vercel Brochure + serverless API endpoints
AI text xAI Grok (grok-3-mini) Writer, director, casting agents
AI images Grok Imagine Image / Image Pro Posters and storyboard frames
AI video Grok Imagine Video Scene clips + trailer per production
Voice ElevenLabs Voice acting
Pipeline worker pm2 + node 18 + tsx Hetzner-resident cron worker driving the pipeline
Section 03

What You Get for Your Commission

bMovies is an escalating investment ladder. Each tier funds the next. The commissioner owns 99% of the royalty shares — minted as a real BSV-21 token the moment they pay.

Tier Price What you get What it funds
Pitch $0.99 Logline, synopsis, movie poster, BSV-21 royalty token (99% to you) Sell 10% of your shares at 10× ($9.90) and the trailer funds itself
Trailer $9.99 Everything in Pitch + director's vision, 60-second video trailer, expanded treatment Sell 10% of your shares at 10× ($99) and the short funds itself
Short $99 Everything in Trailer + 12-frame storyboard pack, score brief, complete short film Sell 10% of your shares at 10× ($990) and the feature funds itself
Feature $999 Full production bible: screenplay, cast, lookbook, cinematography plan, 12 storyboards, score, scene footage, trailer, poster, investor deck — ~30 deliverables from 8 specialist agents Sell shares on the secondary market. Every ticket sold fans revenue back to holders.

The escalating ladder means a $0.99 pitch can self-fund all the way to a $999 feature without the commissioner spending another cent — if there's audience demand for the idea. Every tier is a real product with real deliverables, not a waitlist.

Full deliverables breakdown (feature tier, ~30 artifacts)
DeliverableFormatAgent
LoglinetextWriter
Synopsis (1 page)textWriter
Treatment (1500–2000 words)textWriter
Beat sheet (15 beats)textWriter
Screenplay (opening scenes)textWriter
Director's visiontextDirector
Cast list + voice notestextCasting director
Lookbook (palette, sets, references)textProduction designer
Cinematography plantextCinematographer
Storyboard pack12 imagesStoryboard artist
Score brief (themes, motifs, cue list)textComposer
Production bibletextProducer (aggregator)
Scene footagevideoCinematographer + Editor
TrailervideoEditor
Movie posterimageStoryboard artist
Investor deckprintable HTMLProducer
Royalty shares (99%)BSV-21 tokenOn-chain mint
On-chain audit trailstep log + txidsPipeline
Section 04

Verified End-to-End on the Live Deployment

33 canonical BSV-21 tokens live on BSV mainnet — verified via GorillaPool /api/bsv20/id/<txid>_0 returns for every token. The full roster (20 films + 6 studios + 6 directors + 1 platform token) is visible at https://bmovies.online/exchange.html with deep-links to 1sat.market.

Earlier production-pipeline verification:

The Hetzner-resident pm2 worker (bmovies-feature-worker-test) has been driving real offers for ~90 minutes without restart, with three tick loops per cycle: drivePipelines() advances in-flight features, drainRevisions() runs queued revisions, and autoPublishExpiredDrafts() sweeps drafts past their deadline.

Section 05

Architectural Notes

The state machine is the chat layer

Every pipeline step is a named function in a single tool registry. The worker calls these functions on a polling tick. A future chat layer (/api/chat) would hand the same registry to Claude as tools and let the model pick which steps to invoke. The chat layer is two days of work to add because the foundation already sees every pipeline step as an addressable, idempotent, versioned tool call.

Versioned artifacts power "re-edit scene 5"

bct_artifacts.version + superseded_by (added in migration 0016) lets re-runs of any pipeline step create a new version while the old version stays addressable. The current head of any (offer, role, kind) slot is queryable as WHERE superseded_by IS NULL. The full version chain is walkable. This is what makes the revision UX feel like a real edit session and not a destructive overwrite.

Mint at the START, not at the END

producer.token_mint is the first pipeline step (Phase 0). The BSV-21 token deploys and allocates the commissioner's percentage to their address at minute 1, not minute 24×60. This means investors can buy shares throughout the 24-hour production window via real on-chain BSV-21 transfers, not via an off-chain ledger that only commits at publish. The presale market is real on-chain activity.

Canonical 1sat ordinal inscription envelope

Mid-hackathon we discovered our original inscription format was non-canonical: OP_FALSE OP_RETURN followed by an ad-hoc data push, which broadcasts fine but is invisible to GorillaPool, 1sat-api, and every downstream indexer that powers tradeability. A smoke-mint test (scripts/smoke-mint.ts) confirmed the canonical envelope is:

OP_FALSE OP_IF "ord" OP_1 "application/bsv-20" OP_0 <json> OP_ENDIF

prepended to a real P2PKH locking script — the inscription rides on top of a spendable 1-sat output. We rewrote src/token/mint.ts using only @bsv/sdk primitives (Script.fromASM, writeScript, P2PKH().lock()), backed out an earlier attempt to take a js-1sat-ord shortcut, and re-minted every asset. Every mint in the 33-token roster is indexable and tradeable within seconds of broadcast.

The studios and the directors are assets too

The same canonical mint path produces three categories of token:

All three are regular tokens at the protocol layer — the distinction is only at the UX layer. This lets a user treat a studio or director as an index fund: buy the studio token, earn a slice of every film it ships; buy the director token, earn a slice of every film they make.

Derivative works model — the IP ladder

A trailer is its own asset. Anyone can commission a short derived from that trailer — they don't have to own it, they don't need permission, and they get their own royalty shares in the new short. But 10% of the short's royalty payouts cascade to the trailer holders forever. A feature derived from a short cascades 10% to the short and 5% to the trailer above it. The cascade is opt-in: standalone commissions always own 99%.

This is bct_royalty_splits (migration 0014, refined in 0015) computing the split dynamically from parent_offer_id chains. It mirrors how Hollywood treats treatment options, novel adaptations, and sequel rights — except permissionless and on-chain.

Section 06

What Comes Next — Phase 2 (Post-Hackathon)

docs/PHASE-2-USER-STUDIOS.md captures the next iteration: bMovies as an equity-crowdfunded AI film studio platform. Users sign up, create their own studio, and pay small dollar amounts for the early rungs of the ladder — $0.99 to spawn a pitch, $9.99 to upgrade to a trailer — entirely out of a Stripe-topped balance with no KYC.

The differentiator: every agent-produced artifact gets a SHA256 hash-commitment inscription on-chain (~1–2 sats per artifact) via OP_RETURN bmovies:artifact:<id>:<sha256>:<role>:<tier>:<project_id>:<ts>. Financiers holding shares get cap-table-gated access to the full production archive, forming a tamper-evident production ledger.

Phase 2 is deferred until after submission on purpose: it would have been a mid-hackathon rewrite. The equity-crowdfunding mechanic is what bMovies wants to be; the agentic pay plumbing shipped in this submission is what it needs in order to become that.

Section 07

Limits and What I'd Ship Next

Real BSV-21 mint at producer.token_mint — SHIPPED

The canonical mint path (src/token/mint.ts, the @bsv/sdk-only 1sat envelope) is verified by 33 canonical tokens on mainnet. The $ZEPHY token (f3017d2188ef24c7af53e25b57ec8694a5d2e78d364d3cca35bceb8725d5d766) is the first end-to-end verified live commission flow — real Stripe checkout → webhook → worker → canonical BSV-21 mint. Verified indexed at GorillaPool returning sym: "ZEPHY", amt: "1000000000".

Per-step agent payments — sentinel txids (known gap)

Per-step payments are currently sentinel txids (feature-pay-${offerId}-${stepId}-${ts}). The wallet plumbing exists in src/payment/wallet.ts and the schema is ready in bct_artifacts.payment_txid. Wiring real BSV transfers from a per-step pool wallet is a one-day task once the agent wallet pool is funded.

Phase 3 ffmpeg concat — deferred

Full-length video assembly from scene footage. Today the rough cut is a streaming playlist that the /production.html player renders in sequence. Post-hackathon: ffmpeg concat into a single deliverable MP4.

Share listing flow — fully wired

/api/feature/list-shares (create/buy/cancel actions), bct_share_listings table with RLS, Stripe webhook handles the share-listing-buy checkout type and flips listings to sold. Verified live: created a 0.1% ($10,000) listing on feature-test-001, generated a real Stripe checkout URL.

Puppeteer PDF investor deck — superseded

Superseded by the existing print-friendly /deck.html?id=... page (Cmd+P → save as PDF). Same outcome, no headless Chromium needed.

Section 08

Files of Interest

docs/ HACKATHON-PLAN.md # the original April 10 spec FEATURE-PIPELINE.md # the full 14-section pipeline design PROGRESS-2026-04-13.md # day-by-day progress reports BSVA-SUBMISSION.md # this document (source) PHASE-2-USER-STUDIOS.md # post-hackathon equity-crowdfunding plan scripts/ feature-worker.ts # the Hetzner-resident pm2 worker feature-worker.ecosystem.config.cjs # pm2 deployment mint-studios-and-directors.ts # batch mint of 6 studios + 6 directors remint-films.ts # canonical re-mint of all 19 films smoke-mint.ts # end-to-end canonical format validator api/feature/ start.ts # POST /api/feature/start revise.ts # POST /api/feature/revise publish.ts # POST /api/feature/publish judge-coupon.ts # POST /api/feature/judge-coupon api/ trailer/generate.ts # the trailer pipeline short/generate.ts # the short pipeline stripe-webhook.ts # routes paid commissions into the worker src/ payment/wallet.ts # per-agent BSV wallet agents/piece-payment.ts # the streaming fan-out engine agents/bsvapi-client.ts # x402-paying AI client token/mint.ts # BSV-21 deploy+mint docs/brochure/ production.html # the live timeline / deliverables view productions.html # the productions wall commission.html # tier picker + judge coupon panel index.html # homepage with live productions strip exchange.html # native tabbed Films/Studios/Directors exchange treasury.html # platform P&L dashboard supabase/migrations/ 0014_derivative_works.sql # IP ladder (parent_offer_id) 0015_dynamic_royalty_splits.sql # cascade rolls back to film holders 0016_feature_pipeline.sql # pipeline state, versioned artifacts, step log 0017_draft_revisions_presale.sql # tier config, revisions, draft window 0022_studios_and_directors.sql # bct_studios + bct_directors + public views
Section 09

Submission Checklist