Specification
Minerva Channel Protocol
Version 0 (draft). Revisions to this specification are published as explicitly numbered versions. Conforming implementations state the version they implement.
Abstract
This protocol defines open, decentralized channels: continuously playing, synchronized video streams whose lineup is decided by costly, on-chain signals. Every viewer of a channel sees the same item at the same position, because channel state is derived deterministically from public blockchain data. Any party can run an indexer (an overlay host), recompute the exact same queue, and serve the same network. No host is privileged.
A channel is a mineable token. Creating a channel deploys a BSV-21 fungible token gated by a proof-of-work mint contract (POW20). Every interaction with the channel — programming a video, voting, commenting, chatting — is a token action carrying the interaction's data in the same transaction:
- Mint phase (supply remaining): an action performs proof-of-work that mints channel tokens to the actor. The work is the costly signal, enforced by the contract at the consensus level.
- Spend phase (supply exhausted): actions spend tokens. Votes route tokens to the content's creator; programming and priority actions route to the channel owner.
The transition between phases is emergent: when no mintable supply remains, the only valid token action left is a transfer. No mode switch exists anywhere in the protocol.
The same channel serves screens and phones together: a venue's big screen — a theater, a bar TV, a jukebox display — renders the channel; the phones in the room act on it. Physical presence is proven by committing a rotating nonce, displayed on the screen, into the work.
1. Design principles
- One primitive. Every capability of the system is a token action — a mint while supply remains, a spend once it is exhausted. There is no other way to act on a channel.
- Determinism. Two independent, conforming hosts presented with the same chain derive byte-identical channel state. Anything not derivable from confirmed chain data is explicitly non-canonical.
- Permissionlessness. Anyone may deploy a channel, mine any channel's mint phase, host an overlay, or implement a client. The protocol grants no party — including its authors — a privileged path.
- Costly signals. Influence over a synchronized, shared lineup must be expensive to fake. Work and tokens are the only inputs to ordering; identity multiplies nothing — splitting one miner into many identities splits no hardware.
2. Channels
2.1 Genesis
A channel is created by deploying a BSV-21 token whose minting is gated by a POW20 proof-of-work contract.
- Channel ID — the token ID (the deploy outpoint,
txid_vout). Unique by construction. - Owner — the current holder of the satoshi carrying the deploy inscription. Ownership transfers by transferring that satoshi: an ordinary 1Sat transfer or marketplace sale. Channels are tradable assets.
- Deploy metadata — total supply, per-mint reward, mint difficulty, an optional display name, an optional presence policy (§6), and optional venue fields.
2.2 Display names
Display names are metadata, not identity. Names are normalized to lowercase
a–z, 0–9, and hyphen; all other characters are stripped. The first
valid deploy claiming a normalized name owns that name; later claimants are
addressable only by channel ID.
2.3 Ownership authority
The owner's key signs moderate actions (§3.4) and receives owner-side
settlement (§4). A channel whose owner never moderates behaves as a fully
open channel. Transferring the deploy inscription to a provably unspendable
address makes moderation permanently inactive and owner-side settlement
unclaimable: a deliberately ownerless channel.
3. Actions
An action is a single transaction containing (a) a valid token operation on the channel's token and (b) a data payload (a MAP envelope) describing the interaction:
app = minerva
version = 0
type = video | vote | comment | message | playback | moderate
channel = <channel ID>
tx = <target txid> (vote/comment targets)
…type-specific fields
3.1 Mint-phase actions
While mintable supply remains, an action is a POW20 mint whose solved preimage commits to the action: the channel ID, the action type, the target (if any), the current presence nonce when the channel requires one (§6), and the actor's key. Committing the action into the work makes work non-reusable — it cannot be stockpiled, transplanted to another target, or performed by a party that cannot observe the presence nonce. Minted tokens go to the actor.
3.2 Spend-phase actions
When mintable supply is exhausted, an action is an ordinary BSV-21 transfer carrying the same payload. The transfer's outputs are the settlement (§4).
3.3 Action types
| type | Effect on channel state |
|---|---|
video | Adds an item to the channel's running queue. The act of adding is itself a costly signal: the action's own work (or spend) is the item's initial queue weight. The queue is managed by the protocol — clients submit actions; only the derivation in §5 orders them. |
vote | Adds the action's work (or spent tokens) to the target item's queue weight. |
comment | Threads under the target item. No effect on queue weight. |
message | Live chat in the channel. No effect on queue weight. |
playback | Renderer clock events — play, pause, skip, complete (§5.3). |
moderate | Owner-signed only: excludes a queue item (§3.4). |
Direct messages between users are person-scoped, not channel-scoped, and are outside channel-token mechanics.
3.4 Moderation
A moderate action signed by the current owner key excludes a target item
from the channel's queue. Hosts apply exclusions deterministically — they are
ordinary admitted actions, ordered canonically like everything else.
4. Settlement (spend phase)
vote— the spent tokens go to the creator of the target item. Popular content is, by construction, the content that received vote-spends; no popularity oracle exists or is needed.video(programming) and priority actions — the spent tokens go to the channel owner.commentandmessage— a minimum spend of one token to the channel owner: an anti-spam toll.
What recipients do with received tokens — resell, give away, reward — is economics, not protocol: any holder may do anything with their tokens.
5. Deterministic state derivation
5.1 Canonical and provisional state
Canonical state is computed from confirmed transactions only, totally
ordered by (block height, transaction index within the block). Rules that
depend on mempool arrival order ("first seen") are forbidden in canonical
derivation: they are not reproducible across nodes.
Hosts may layer unconfirmed actions on top as provisional state for live user experience. Provisional state is non-authoritative, is labeled as such wherever exposed, and converges to canonical state on confirmation.
5.2 Queue weight and order
An item enters the queue with its originating video action and leaves the
queue when it completes playback or is excluded by moderation. Re-queueing a
played item requires a new video action. For each queued item i:
weight(i) = work/tokens of i's originating `video` action
+ Σ work of admitted mint-phase vote actions targeting i
+ Σ tokens of admitted spend-phase vote actions targeting i
Mint-phase work is measured in difficulty-weighted valid solutions. Where a channel's history contains both phases, one difficulty-weighted solution at the deploy's mint difficulty counts equal to the deploy's per-mint reward in tokens. The queue is ordered by descending weight; ties break by the canonical order of each item's earliest contributing action, earlier first.
Because items are consumed when played, weight cannot pin an item permanently: support spent on an item is spent on one play.
5.3 Advancement and position
The playing client — the renderer: a TV, a jukebox screen, any player —
is the channel's clock. It posts playback actions whose payloads carry a
millisecond timestamp. On a canonical complete (or an owner-signed skip),
the channel advances to the item with the highest current weight.
Playback position is derived, not streamed: position equals elapsed time
since the timestamp of the governing play event. Any client computes "what
is playing now, at what offset" without contacting a renderer. A channel with
no playback events holds its queue, displaying the top-weighted item as up
next; playback begins when a renderer posts play.
6. Physical presence
Channels may declare a presence policy in their deploy metadata. For presence-gated channels, the renderer displays a rotating epoch nonce, typically embedded in an on-screen join QR code, and commits each epoch's nonce on-chain under the renderer or owner key. Actions claiming presence commit the current nonce into the work preimage (mint phase) or payload (spend phase), making presence claims verifiable after the fact by any host.
The declared policy sets the weight of non-present actions: full, reduced by a stated factor, or zero. It is part of admission and applied deterministically.
This is what prevents remote hardware from programming a venue's screen: work that cannot reference the nonce displayed in the room carries no presence weight there.
7. Supply lifecycle
A channel's economic life has two emergent phases:
- Distribution (mint). Early, active participants earn the channel's token by participating. Activity bootstraps both the lineup and the token's distribution.
- Circulation (spend). A mature channel runs on its circulating tokens, with settlement flowing to the people who made and host its content.
Supply, per-mint reward, and difficulty are fixed at deploy and are part of the channel's public metadata.
8. Conformance and versioning
- Every action payload carries the protocol
version. Derivation rules are frozen per version; changes ship as a new version with a stated activation rule. - The specification publishes test vectors: canonical fixture transaction sets together with the expected derived channel state — queue, owner, phase, position. An implementation conforms to a version if and only if it reproduces its vectors exactly.
- Independent overlay hosts need nothing from the protocol's authors: these rules, the public chain, and the vectors are sufficient to host the same network.
9. Worked example (informative)
A bar deploys a channel (supply 1,000,000; reward 100 per mint) and puts its
screen on TV mode, displaying the join QR with the current presence nonce.
Guests' phones perform short proof-of-work bursts as votes; each valid mint
commits (channel, song, nonce, key) and pays the guest 100 tokens. The screen
advances on each canonical complete to the top-weighted item. The owner key
excludes one entry. Guests leave holding the channel's token — early regulars
accumulate a stake in the venue's channel. Years later, supply exhausted, the
same channel runs in spend phase: votes pay the people who programmed the
songs; programming fees pay the venue.
Appendix A — Operator commitments (non-normative)
The protocol above binds every host equally. Separately from it, Minerva — the protocol's first host and reference operator — publishes the following commitments about its own participation. They bind Minerva only; other hosts and participants owe nothing here.
- No privileged paths. Minerva participates in the token economy under the same contracts, difficulty, and admission rules as everyone else.
- Provenance. Every token Minerva sells, spends, or settles traces on-chain to declared, published treasury keys or declared settlement flows.
- Trailing compute cap. Per channel, Minerva's mining on a given day is limited to one-ninth of the previous day's non-Minerva work in that channel — at most 10% of the total. The bound is computable by anyone from chain data; unused allowance expires daily.
- Follow, never lead. Because the cap trails organic activity, Minerva cannot lead a channel's mint phase — a channel nobody uses earns Minerva nothing.
- Transparency. A public dashboard recomputes Minerva's share and provenance per channel and globally, directly from chain data, against the published key list.