Solving subscriptions on Bitcoin, one zap at a time

One of our favorite Mutiny features is, oddly enough, the way we bill our users for Mutiny+. We took a typical fiat process — monthly autopay for a service — and rebuilt it to fit a Bitcoin ethos.

Solving subscriptions on Bitcoin, one zap at a time

One of our favorite Mutiny features is, oddly enough, the way we bill our users for Mutiny+. We took a typical fiat process — monthly autopay for a service — and rebuilt it to fit a Bitcoin ethos:

1. Push not pull

Bitcoin is always a "push" system. Unlike in fiat, where you hand someone a credit card or debit card and they can charge that card any time they feel like it (as long as your card issuer cooperates), Bitcoin always requires the consent of the private key holder, so all self-custodial payments must originate somehow with the user.

For Mutiny+ we use NWC (Nostr Wallet Connect) as a way to communicate with your wallet. We're just sending a request to your wallet for your payment. It's up to you and your wallet if you'll pay. You can also set up autopay with a budget limit to make sure we don't overcharge, entirely client-side.

Setting a Mutiny+ subscription to auto-approve)

2. Cancel at anytime

Getting stuck with unwanted or unneeded automatic payments is such a problem that whole companies and services exist to help you cancel those recurring bills. An obvious side-effect of "push not pull" is cancellation of a Mutiny+ subscription is entirely in the user's control. No need to dig through a website, call a 1-800 number, or visit our office to stop payments. Just disable auto-pay and let the subscription lapse. We won't keep charging you because we can't keep charging you.

Subscriptions for everyone?

So that's how Mutiny+ works. But wouldn't it be great if all subscriptions worked this way? We want to build that world.

As an example, Ben and Paul's hobby project ZapplePay just added AutoZaps. With AutoZaps you can subscribe to anyone on nostr and ZapplePay will send your wallet a payment request for the amount you set on the interval you set. If you enable autopay in your wallet, you're now paying a subscription to your buddy.

It's kind of like Patreon minus several horrible layers of fiat and ceremony. Try it out now for JB55's npub.

jb55's nostr profile on AutoZap. Everyone's AutoZap URL is just zapplepay.com/autozap/THEIR_NPUB

NWC is the glue

Everything here is built on open standards. Any wallet that supports NWC can sign up for AutoZaps — right now Mutiny and Alby are your best choices, but we hear more wallets have support in the works.

If you or someone you love wants to add support for NWC, the best resource right now is the NIP-47 spec. Some specifics are still in flux, but the core idea is solid.

Generally, you can think of NWC a little like giving your billing address to a company. "Here's where you send the bills, I'll pay you when I feel like it." Except the billing address "mailbox" is an anonymous nostr pubkey.

Subscriptions are what you make of them

Out of the gate, this stack is great for recurring donations, as well as any service that wants to request payments — either recurring or during a checkout flow. Just like you store your credit card with Amazon so that future payments are simpler and subscriptions are automatic, NWC can offer that UX in a secure, trustless, and privacy-friendly way.

One thing we're still investigating is how to better integrate an NWC subscription with a nostr identity. For instance, this would be great for paid relays, accessing paywalls, and other authenticated services. After all, Netflix doesn't just bill you every month, it pairs that payment with a login that you then share with your parents, roommates, and ex-girlfriend. How do we want to replicate that?

If you have a service you think could benefit from Bitcoin-native subscription payments, please join the chat, we'd love to see how we can help.