Monetizing your blog with cryptocurrencies
Tags: blockchain, crypto, webdev, writing
Published: 2021-02-21 21:15:16


*You can also read this post on my [personal blog](https://sosnowski.dev/post/monetizing-your-blog-with-cryptocurrencies).*

Nowadays, monetization of the blog usually boils down to displaying ads via some 3rd party ad provider like Google. This however degrades the user experience, both in terms of page performance and "stealing" the users attention. It's a well known fact that most of the ads providers are actually tracking users, invading their privacy and selling their private data.

For those reasons, people are actively blocking these ads, either via browers' plugins or by using browsers that have this kind of protection built in by default (like Brave). Additionally, some of you, like me, don't want to host this kind of content adding your share to the progressing degeneration of internet society.

Let's review other available options, focusing on the monetization based on cryptocurrencies. But first, **why crypto**?

## Crypto vs traditional payment systems

First of all, let's be honest, **crypto is cool nowadays**! With their value going crazy high, everyone wants to join a hype wagon, hoping that this 0.5 of Dogecoin will be worth thousands of dollars in few years. 

But hype aside, **what makes crypto different (better?) compared to traditional payment systems?**

### Real shared economy

It's not a secret anymore that internet has been taken over by big corporations. Almost all the content and almost all the ads (and with ads, money) are being managed by few leviathans like Google or Facebook. Their monetization system is based on constant surveillance of their users, gathering enormous amount data about them and targeted advertising sold to the ones that will pay more.

There has to be a better way to monetize quality content, and one of the proposed alternatives is the direct money transfer, usually in a form of micropayments, between the reader and the creator. This solution eliminates the need of loud advertisement fighting for your attention, as it is you who decide what content is worth paying for.

Still, in traditional systems, payments require some established institution, such as PayPal or Bank, to participate in the payment process. This means that all the transactions are being tracked and controller and the transaction fees charged by the intermediaries often make the entire process not profitable for the peers.

**And here is where cryptocurrencies come to play.** 

Cryptocurrencies run on a decentralised, self-managing blockchain networks, that by design do not include any ruling authorities. They form so called DEFI, Decentralised Finance Systems, that allows for direct peer to peer value transfers, without any intermediaries that control the process.
![Traditional money transfer vs DEFI](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jmtxgldmqdxobgfiawr9.png)
Traditional money transfer vs DEFI (source [https://www.gemini.com/cryptopedia](https://www.gemini.com/cryptopedia))

DEFI topic is wide and fascinating, if you are interested in the details, I can recommend you [this book](https://shermin.net/token-economy-book/) or this [youtube channel](https://www.youtube.com/watch?v=H-O3r2YMWJ4&feature=youtu.be). 

## Available crypto-based monetization options

The crypto monetization field is fairly fresh, it's still more a running experiment than a fully grown, stable ecosystem. There are however several, quite well established options:

- **BAT Project** - monetization system, integrated with the Brave browser via Brave Rewards
- **Coil** - monetization system **based on Web Monetization Standard**, that allows streaming of payments to the creators when users are viewing their content
- **Steemit** - and other similar platforms, that pay you for posting content on their site

Above platforms are build around cryptocurrencies but follow different patterns and assumptions.

## BAT Project

**BAT** comes from **[Basic Attention Token](https://basicattentiontoken.org/)**. It's a cryptocurrency that wants to revolutionise how we think about the internet marketing and remove intermediaries between content creators and content consumers.

Right now BAT only works with the **[Brave browser](https://brave.com/),** users can send and receive BAT tokens via its [Brave Rewards program](https://brave.com/brave-rewards/). There are plans to extend BAT support to other browsers (for example via browser add ons) but as for now this has not yet been achieved.

### How does it work

The idea is simple. If users like the content they are viewing, they can tip the author, sending him some amount of BAT tokens.
![Tipping screen on BAT-enabled site](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2m1gj2671vosvcrpw528.png)

How do the users get their tokens? They can of course buy those on crypto market, or they can earn those for watching ads in their browser.

BAT Project is built around the idea that our attention is valuable. And if we are using our attention to view some ad, we should be rewarded for it. And the other way around, we should be able to reward content creators that produce the quality content, by sending them some money directly (tipping).
![BAT tokens flow](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qqul1wbn066xn8a5lwj1.png)
BAT tokens flow (source [https://basicattentiontoken.org/](https://basicattentiontoken.org/))

#### Contribution modes

There are three types of contribution that you can use with Brave and BAT tokens

1. **One time tip** - a simple one, you like some content, you click on the BAT icon and choose the value you want to send to the creator. It's a one time transfer
2. **Monthly contributions** - you can setup a recurring payment for the creators you really like
3. **Auto-Contribute** - this one is interesting. You setup an amount of BATs you want to spend monthly on contributions. Then, Brave calculates how much time you spend reading and viewing content from the creators. At the end of the month, creators will be rewarded proportionally to the time you've spent consuming their content.
4. As a content creator, you can also allow Brave to **display ads on your site**. You will be rewarded with some amount of BATs depending on the number of ads displayed to your readers

### Integrations

Brave rewards can be integrated not only with your personal blog. This monetization system supports multiple social networks like Youtube, Twitter, Reddit or even Github.

![Available BAT Integration channels](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/him1og39qi4frbepkidn.png)

It means that users will be able to tip you for your content posted there, even if they don't access your blog directly.

![BAT Tipping functionality on reddit](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2pkhs9beh90mwo5zvpdi.png)

### Adding Brave Rewards to your blog

Let's have a quick walkthrough of how you can add BAT monetization to your blog.

**First, you will need a Brave Creators account**: [https://creators.brave.com/](https://creators.brave.com/). 

After you create it you have to setup a **crypto wallet** that will collect received payments. Currently there are two options: **Gemini** and **Uphold**. For the sake of this tutorial I would encourage you to go with Uphold, as it's also compatible with another monetization system that we will discuss.

Uphold will ask you for some personal data in order to verify your identity. This is a legal requirement, as far as I know.

**Now, you have to add your website as a a new channel.** Simply choose "Ad Channel" option in the menu. In order to verify that you are indeed the owner of the website, you can either upload a unique file on your server or add a DNS record to your domain.

It might take several hours for the Brave to refresh your information, but when it happens, users viewing your page, will see the tipping icon in their address bar

![BAT Verified Creator icon](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7y6zk6p1gp37ljeesoum.png)

Once you verify your identity, it's done! **You are now verified Brave Content Creator!**

### Comparison

Not everything is perfect though. As much as I like the BAT Project and Brave browser, this solution has some flaws.

First, only users using Brave browser will be able to tip you. Everyone else, even if they would like to, cannot do that. Currently around 25 milion of users are using Brave but it does not mean that all of them are actively using BAT tokens.

Additionally, there is no monetization API available, so you cannot execute any logic on your site based on the monetization or tipping events. You cannot for example implement any type of paywall or exclusive content to incentivise people into paying for your work.

## Coil

[Coil](https://coil.com/) is an implementation of [Web Monetization standard](https://webmonetization.org/), that allows users to stream micropayments to the creators directly, when viewing their content. This service is not based on ads and it requires users to buy a paid membership. 

The key feature here is the [Monetization API](https://webmonetization.org/docs/api) that can be used to deliver some premium content for the users that have decided to buy paid Coil membership.

### How does it work

In a way Coil is similar to BAT Auto-Contribute mode, you create a wallet and when user is viewing your content, the small amount of crypto is streamed to you in real time.
 
![Payment streaming via Coil](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/724fmkd4uukqk8i93sjr.png)
Payment streaming via Coil (source [https://coil.com/](https://coil.com/))

As stated before, Coil is an implementation of the Web Monetization standard, it's out of the box supported by the [Puma browser](https://www.pumabrowser.com/) but you can enable it on other browsers via [dedicated](https://addons.mozilla.org/en-US/firefox/addon/coil/) [add-ons](https://chrome.google.com/webstore/detail/coil/locbifcbeldmnphbgkdigjmkbfkhbnca). **Important note here:** add-ons will only work on desktop, mobile versions of popular browsers **do not support Coil**. On mobile devices, Puma browser is the only option.

The key difference here is a monetization API that can be used by JavaScript code in the browser. With it, you can implement custom logic, based on the monetization-related events. You can for example enable access to the premium content for the users that are paying you via Coil, hide the ads for them, give their account unique status etc. **This way you can reward readers that are rewarding you.**

Under the hood, Coil is using an [Interledger protocol](https://interledger.org/), that allows you to stream payments between different ledgers (different cryptocurrencies ecosystems) in real time. If you are interested in the details I would advise you to check their docs, it's a fascinating piece of technology.

#### Contribution modes

As for now, the only available payment mode is real time streaming, users are not able to tip you a specific amount of money (as with BAT) and you cannot require any specific payment to happen before enabling premium content.

### Integrations

Coil offers a wide variety of integrations. You can of course use it on your own website, it allows you to collect payments on Youtube, Twitch and a whole collection of [cooperating platforms](https://coil.com/creator/how-to-monetize#On-platform). It does not however support Twitter or Reddit.

If you are a software engineer, it might be useful to know that Coil is also integrated with two popular software blogging platforms: [dev.to](http://dev.to) and [hashnode.com](http://hashnode.com). 

### Adding Coil to your blog

If you want to add Coil to your blog, you will have to start with creating the Creators Account here: [https://coil.com/creator](https://coil.com/creator). 

You will need a wallet that supports **Interledger Payment Pointer**, just few available wallets support it, but fortunately [Uphold Wallet](https://uphold.com/) that we've used with our BAT example is one of them.

![Uphold wallet options](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vjpk81wtztso45d4f5p7.png)

You can decide which currency you would like to receive via it. The generated string is a pointer that you will use to receive payments to your wallet.

![Generated Interledger Pointer](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ig0cu9684rkysz21kawt.png)

Paste this string to the Monetize content section of your Coil account settings. It will generate HTML `<meta>` tag that you should place on your site.

![Configuration of monetization settings in Coil](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8rqd25yvpyaxbcjibx1v.png)

Once you deploy the version with the new `<meta>` tag, your website is ready! Now you can receive payments from Coil users.

![Active Coil payment](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0swrob1b7ueoqevuebnr.png)

**Additionally we can play a bit with the Web Monetization API.**

To check if payment is actually being done, you can use the following snippet

```jsx
document.monetization && document.monetization.state === 'started'
```

As it may take some time for the monetization to start, you might want to setup an event listener that will execute once the payment starts flowing.

```jsx
function startEventHandler (event) {
  console.log('Payment has started!')
}

document
  .monetization
  .addEventListener('monetizationstart', startEventHandler)
```

With those you can enable some premium features on your blog for users paying via Coil.

**I've prepared a small easter egg for Coil users on my blog, so if you are now using Coil you can [go there](https://sosnowski.dev/) and see a small surprise on top of the page ;)**

### Comparison

**The biggest advantage of Coil is its monetization API**. It allows creators to actually give something for the users that decided to pay for the content. This might be a deal breaker in terms of its wider adoption as it helps to create a situation when both sides are actually rewarded via the payments system.

**Coil is based on the open Web Monetization standard**. It means, that once you set up a payment pointer, you are not tied to Coil. Any new service, using Web Monetization standard can send money to you.

Another plus is it's compatibility with all major browsers. Compared to BAT it has a much bigger potential user group. Still, on mobile devices, which are the most important market nowadays, Coil is not supported by any of the major browsers. That's the "beauty" of the walled gardens...

The caveat is that users have to actually buy **a paid membership** to enable monetization payments, which of course makes sense, but with BAT and Brave, users can (at least theoretically) earn BAT tokens for "free", by viewing ads.

Also, just one, streaming based, contribution mode is narrowing down the possible monetization models. You can't charge any specific amount of money for the premium content or service, you will always receive payment just based on the time users spend on your page. This model promotes lengthy content (like long videos or streams) and not necessary the one that has the highest quality.

## Steemit and other similar platforms

[Steemit](https://steemit.com/) and other similar platforms are a different kind of monetization systems. It's a separated platform, a distributed social network, that rewards users with cryptocurrency for posting content, and performing some community-oriented actions, like voting, commenting etc.

The goal of those communities is slightly different than just monetization. It's a form of DAO, **Decentralised Autonomous Organisation**, that aims to create an independent, democratised internet community, alternative to the current, centralised, social media giants.

Monetization of content and crypto rewards are more a way to incentivise some behaviours not just a way to pay for premium content.

While still in early stages, those initiatives have very ambitious plans and can potentially disrupt the internet communities as we know it.

## Conclusion

Fortunately you don't have to choose which payment system to implement on your site as BAT and Coil don't interfere with each other, so use both and enjoy your soon-to-be-crypto-millionaire status ;)

![Can has bitcoin pls?](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k04gx2ob8kdhc7qrag8g.png)

The crypto-based payment systems are at the early stage of development and probably it will take some time until they mature and get a better traction. Also, despite the promise of distributed, peer to peer payments, in both cases there is an intermediary between the content creator and the content consumer. I guess we still have to wait for the solution that will be easy to use and still truly distributed and independent form 3rd parties.

Looking on a broader picture, it's good that such solutions are being created and their adoption grows. Current internet has been dominated by huge corporations, spying on users and selling their data to the advertisement companies. Amount of ads in internet is unbearable, pushing the quality content out in favour of mass produced click baits. Adoption of open web monetization standards brings back hope that we can get back to creating **high quality content for high quality readers**, with mutual respect and appreciation.