
volumeee.
an onchain music player where every listen settles to base as a micro-royalty to the artist. webaudio, receipts in 2.1 seconds.
context.
streaming services pay artists on a quarterly wire. the interval between the listen and the receipt is so long that the receipt stops feeling connected to the act. volume started as an experiment: what if you could settle a listen in real time, in public, at the unit of the second?
the working hypothesis was simple. rollups made the economics work — a settlement costs less than a tenth of a cent on base, which is already an order of magnitude below what a traditional service pays per play. the remaining work was product work: how do you make the receipt visible to the listener without turning a music app into a wallet app?
problem.
three things had to be true at once: the listener could never see a seed phrase, the artist had to be able to read a running royalty ticker on any device, and nobody in the middle could tamper with either. the first two were design problems. the third was the whole reason onchain was a non-negotiable choice.
a hook, a contract, a receipt.
volume's whole runtime is one react hook (useListenReceipt), a 140-line solidity contract, and a webaudio worklet that watches for the 'listen landmark' — usually the 48-second mark for a standard track. crossing the landmark triggers a settle. the contract emits an event. the ui renders the receipt next to the waveform.
the whole thing is under 2,800 lines of production code. the first ninety days of listeners cleared 1.2 million mints across 41 artists. nothing about the code is interesting — all the interesting decisions are in the interface.

"the waveform and the receipt share a horizontal rail. you stop checking a balance; you start watching a song finish."
what shipped · what broke.
volume is still live. 4,200 daily listeners across the last quarter. 63 ETH of royalties have settled onchain since launch — not a blockbuster, but an honest number, and small enough that you can read every line in a public explorer. a handful of artists have retired their distrokid accounts.
three things broke that are worth writing down. one, the waveform worklet stalled on safari 17 for ~2 weeks until apple shipped a fix — i had to route around it with a wasm shim. two, a passkey interaction would lose focus on first-play and block settlement on iphone 12 — fix was a single prefetch. three, a small fraction of transactions were dropping silently during a base sequencer outage in march, and the ui didn't retry. that one i still don't love.
a production-quality demonstration that attention can be settled in public at the unit of the second. still my favorite project of 2024.
shipped with a short, deliberate team.
documented in the build.
8 months of stills — a path i'd like to expand. no retouches. all pulled from prod.




mobile, first.
three moments from the 375x812 canvas — first spin, mid-listen with the receipt visible, post-settle. monthly iphone touch.




oracle.
tool for designers who think in systems — mdx-dsl that compiles straight to framer motion.
open next case ↗