
- ETHGlobal SuperHack 2023
- Origin
- IPFS + libp2p
- Content layer
- Ethereum L2
- Settlement
- Public on GitHub
- Prototype
Why it exists
One thread runs through most of what Erfan has built: TXTDirect, a redirect standard that lives in your own DNS records. Torproxy, a Caddy plugin that routes HTTP through Tor. Three years of infrastructure work on on-chain ticketing at GET Protocol. The question underneath all of it is who holds the thing when the company that built it goes away.
Streaming is where that question has the sharpest edges. The creator makes the work, the platform holds the audience, the payment rail, and the archive, and takes a cut of each. Mjolnir started as a weekend answer at ETHGlobal SuperHack in 2023 and we have kept it since. It is the strangest thing we build, and the one closest to the reason we build anything.
What it is
A live streaming platform where ownership sits with the two people who actually matter:
- Stations are NFTs. A creator’s channel is itself an on-chain asset they hold and can transfer. The platform never holds it.
- Subscriptions are NFTs. A viewer buys one, and it token-gates that Station’s content. The viewer owns the subscription rather than renting access to it.
- Content lives on IPFS. Live and archived payload moves over IPFS and libp2p, content-addressed rather than sitting behind a CDN the platform controls. An Electron watcher takes the feed from OBS and pushes it out.
- Money settles on L2. Mints, transfers, and creator payouts settle on an Ethereum layer 2.
Solidity contracts, a subgraph on The Graph for Station and subscription state, a SvelteKit frontend, WalletConnect and MetaMask for auth, Kubernetes and Helm underneath. The hackathon codebase is public at ainurdev/mjolnir-superhack.
The trade we made on purpose
IPFS is not a CDN, and pretending otherwise would be the fastest way to get this wrong. A commercial edge network will beat content addressing on time to first byte, and it will keep beating it. What content addressing buys instead is a stream that stays reachable when the company serving it stops existing, which is the entire point of the project.
So the architecture spends latency to buy durability. That is a real cost, paid by viewers, and it is the constraint every other decision in Mjolnir has to work around rather than a detail to optimise away.
Open questions
Mjolnir is earlier than it looks. These are the four we are actually sitting with:
- Which layer 2 is the primary settlement layer. Base is the current bias, not a decision.
- What the fiat path looks like for a viewer who has no interest in holding crypto.
- How a creator brings an audience they already have across without losing most of it at the wallet step. This is probably the one that decides whether the rest matters.
- Where a token-issuing product operated from the Netherlands should legally sit. We are waiting on advice rather than guessing.
Where it stands
The SuperHack prototype is public and the product version is being rebuilt with what the prototype taught us. It is not launched, it has no users to speak of, and we are not going to claim otherwise: mjolnir.tv is where it will land.
Nobody pays us for Mjolnir, which is the reason it stays on the list. A lab that only builds what is invoiced stops learning anything it did not already know, and the questions this project forces, who holds the asset and what survives the platform, keep turning up in client work years before the clients ask them.