flume
Pay-per-second streaming · settled on Kaspa

Pay for the seconds
that actually play.

Tune in, and every second of stream is measured by both sides and paid for as it arrives. Stop, and the meter stops — mid-song, to the byte.

now playing · city-rain.opus Streaming
Delivered
0 KB
Playing. The bill climbs only while bytes arrive — nothing is charged ahead of what you hear.

A live illustration of the rule flume enforces — not a real stream. Hit Stop and watch the bill freeze.

The idea

No subscription. No up-front purchase. Just what you heard.

Every way we pay for streams today bills the whole thing — a monthly plan, a track, an album, a movie. Leave halfway and you still paid for all of it. flume's unit isn't the whole thing. It's the byte. So the price tracks exactly what was delivered, and the moment you walk away, the charging stops with you.

THE UNIT

Bytes delivered, counted by both sides

The meter is net.bytes_delivered.v1, exact to the octet. The broadcaster counts what it sent; you count what you received; the two must agree or the stream halts. Nobody can overstate the bill, because your own count refuses it.

THE MOMENT

Stop is a first-class event

You drive your own position through the stream. A dropped connection is just a reconnect from where you left off — no renegotiation, no double charge, no gap you paid for. Stopping is simply the last byte you accepted.

How a listen works

Four steps, repeated until you stop.

flume is spigot — pay-per-byte file delivery — with one change: the source is open-ended instead of a fixed file. A recording, a radio feed, a video: all just bytes arriving over time, which is what the metered protocol already meters.

  1. Read the guide. What's on the air — live or recorded — and the price. Free; you can't tune in to something you can't see.
  2. Pull one babel at a time. A babel is the payment beat — 16 KB by default, about a third of a second of audio — so paying never starves the buffer.
  3. Both sides sign the count. The broadcaster returns the next bytes and its tally; you count the same bytes and sign yours; a payment voucher rides along with your signature.
  4. Repeat from your own offset until you stop, the recording ends, or the funds run out. Whichever comes first, you paid for exactly what you received.
Two kinds of station

A recording ends. A live feed only stops when it closes.

Everything else is identical, because a chunk of a stream and a chunk of a file are the same thing: a range of bytes both sides can count.

On-demandLive
isa recording — a fixed buffera feed still being produced
lengthknown up frontgrows; unknown until it closes
the endthe last byteonly when the broadcaster closes it
rewindany offset, alwaysonly within a bounded window; older bytes are gone
at the edgeyou wait a beat and ask again — billed for none of the empty moments
Why Kaspa

Micropayments only work if settling is fast and nearly free.

Paying by the second means thousands of tiny amounts. You can't touch a chain for each one — so flume doesn't. It opens one escrow channel, streams against it off-chain with signed vouchers, and settles once.

OPEN ONCE

A channel, not a transaction per second

You open an escrow channel with the broadcaster a single time. Every babel after that is an off-chain voucher — instant, free. The broadcaster redeems the vouchers on-chain whenever it likes; you refund whatever you didn't spend.

KASPA'S FIT

A BlockDAG that confirms in about a second

Opening, claiming and refunding are ordinary Kaspa transactions — fast to confirm and cheap enough that a 0.06 KAS bill is worth settling. flume rides the same kaspa-x402 escrow that spigot does; nothing bespoke.

Why machines will want this

Agents pay for what they consume, not for a plan they can't sign up for.

01 No account, no subscription

An autonomous agent can't fill in a signup form or hold a monthly plan. It can open a channel and pay per byte. flume is billing an agent can actually use.

02 Honest to the byte

A machine won't argue a bill — so the bill has to be provably right. Both sides count the same bytes with zero tolerance; an overcharge is caught mechanically, not disputed later.

03 Consume exactly as much as you need

Sample the first two seconds of a thousand feeds; take a whole track from one. The bill follows the bytes, so partial consumption is a first-class, cheap operation.

04 Stall-safe by construction

Agents run on flaky links. A stall is just a reconnect from the last accepted byte — no state to renegotiate, no gap anyone paid for. The stream resumes where it stopped.

Proven, not promised

The whole lifecycle runs live on Kaspa testnet-10.

Open a channel, tune in paying per second, each babel vouchers as it plays, and the broadcaster claims what the vouchers cover — all on chain, the same rail spigot settles on.

Channel openedgenesis · 197541effa703f011088b13378da7b179e908c5e74a7f8885eab39ed723b14c0
Streamed & vouchered300,000 bytes played in 5 babels · 0.06 KAS, billed as it played
Broadcaster claimedclaim · 529c40ebc3907a8a1f590ff5ce3787f2bad8728c088e45d3ecc4ae63a047b74e
Pinned by tests9 passing — including “stopping mid-stream pays for what played and nothing after”