Some of you may have been seeing some buzz around the Web Monetization API recently, especially if you hang out on DEV.to quite a bit. Perhaps you’ve seen mentions of “Grant for the Web”, “Coil” or “Interledger” among many other names and terms and are trying to make sense of it all. Let me try to lay it all out for you.

I’ll be honest, the first time I heard about Web Monetization was at View Source 2019 when I met Christopher Lawrence for a chat over coffee. He shared with me what Grant for the Web was all about and what they wanted to achieve. And that’s how I eventually got involved as one of the ambassadors for the program.

The concept of an alternative to ads for content creators to earn money sounded intriguing. For the longest time, there were not that many options to earn money for content you put on the web. You could either ask folks to pay you for your content somehow via payment platforms or subscriptions or you could place ads all over your site.

Let’s rewind back a couple of years

In October 2015, Stefan Thomas and Evan Schwartz released a whitepaper titled A Protocol for Interledger Payments which proposed a protocol for payments across payment systems by enabling secure transfers between ledgers. At the time, both gentlemen were part of Ripple, at enterprise blockchain company founded in 2012.

The Interledger Project itself is open-source and not tied to any single company, blockchain or currency. Interledger itself is a network of computers that enable the sending of value across independent payment networks, and the Interledger Protocol defines how it all works.

Along with the publication of the whitepaper, Adrian Hope-Bailie, also proposed the Interledger Payments Community Group at the W3C. As commerce moves increasingly to the web, the W3C has a vested interest in developing open standards for web payments and security by getting those with interest and knowledge involved with the W3C.

Web Payments Activity at the W3C’s main focus is to develop web standards for APIs that increase the convenience and security of Web Payments. There are two working groups and multiple community groups who are involved in this endeavour, Interledger Payments among them.

And then we get to 2019

In August 2019, Adrian Hope-Bailie proposed the Web Monetization API on the WICG Discourse. It is a Javascript browser API that allows the creation of a payment stream from the user agent to the website. Web Monetization depends on two critical technologies to work, the aforementioned Interledger protocol and something called payment pointers.

Payment pointers are a standardised identifier for payment accounts which resolve to a URL that can be used to discover available Open Payment endpoints for interacting with the account. Open Payments is an application level protocol built on top of the Interledger protocol.

Here's the list of specifications that have been mentioned so far:

There is quite a lot of technical detail in them, but still, it’s pretty cool to see the process of introducing a new protocol to the web. As I mentioned earlier, there’s a growing amount of content about web monetization, albeit slightly scattered and piece-meal at the moment.

Why are you talking about Web Monetization?

I’m one of the Grant for the Web Ambassadors and if you poke around the stuff I do, you’ll find that I pretty much do standard web developer things.

Since I’m reasonably competent at that, I figured I would document the whole process of implementing the Web Monetization API, explain how the ecosystem works and basically build out a comprehensive guide to web monetization.

Which means, yes, of course, I’m building a website. I really like building websites. It’s like totally my jam. I mean, I could draw a zine or something, but nah, I’ll leave that up to all the way more artistic folks out there.

I just got the site up and running and will be working on content, design and layout all in “real-time” moving forward, and you can check it out at https://webmonetization.dev/.

Home page of webmonetization.dev

The site is built with Eleventy ❤️, and its source code is on GitHub. If you find anything broken, feel free to raise an issue, or even better, submit a pull request. You can also let me know what content would be useful to you.