An open, informal format for composable, on-chain-native audio/video — built from independently-owned media components plus a timing manifest. It is not a new codec (standard WebP / FLAC / MP3 inside) and not IANA-registered. It's a documented convention anyone may implement.
A "video" here isn't one fat encoded file — it's a tiny manifest of reusable media loops + a timing cue, where each component can be minted once, provenanced, and referenced many times.
| Ext | Name | What it is |
|---|---|---|
.bmf |
Block Media Format | The manifest: a timeline of media references (on-chain txid or local filename) with start-time cues. With txid references it is a fully on-chain composable video — the player fetches each component from chain. |
.bmc |
Block Media Container | The package: a ZIP holding one .bmf + the media files it references by local name. The portable, self-contained form. |
A .bmc contains a .bmf + media; a standalone .bmf references on-chain content. One
spec, two delivery forms.
- A
.bmfis a cue sheet —[mm:ss.cc]cliplines (LRC-compatible) or a JSON list carrying txids. - A player loads it, plays the audio, and switches scenes at each cue. Looping clips (animated WebP) restart from frame 0 on their cue, so they can be authored on the beat.
- Bundle a
.bmfwith its media → a.bmc(portable). Or reference the media by txid → pure on-chain, nothing duplicated.
See SPEC.md for the full v0 spec and examples/ for a real cue.
- Store once, reference many — a clip used at five moments is one component + five cue lines.
- Component-level provenance — every clip and the song is its own owned on-chain asset; a
.bmfis a composition of owned parts. - Standard media inside — WebP (including variable-frame-rate: a long hold costs one frame), FLAC/MP3. Universally decodable.
- Tempo-native — cues are absolute seconds; author them on the beat.
v0 — informal / experimental. Reserved names (.bmf, .bmc), not IANA-registered. Informal
MIME: application/x.bmf, application/x.bmc.
MIT licensed — implement it freely, on any chain or off-chain. Note the format's on-chain form needs a chain that can actually carry the media payloads; the format itself is open to all.
First real-world use: the "Supersonic" music-video mint (see examples/).