We believe the direction of creators' monetisation shapes the future of the web. Without sustainable ways for
creators to earn a living, the web will degrade as ad-driven models dominate, harming both users and content
quality. If we want a better internet, we must provide the incentives for creators to focus on quality, meaningful
content, rather than chasing ad revenue. The internet follows the incentives we give to its creators.
How Opal works
The user downloads the Opal browser extension, and funds their self-custodial Bitcoin Cash wallet.
The user sets their monthly budget for supporting creators. This can be as high or low as they like.
The extension automatically tracks the content the user consumes (eg. blogs, videos, music). If the creator of that content is signed up for Opal, they are
added to the user's list of supported creators for that month.
The user can adjust the proportion of funds allocated to each creator.
At the end of the month, the funds will be automatically sent to the creators.
If a creator does not redeem the funds within a year, the funds are returned to the user automatically.
The entire process runs locally on the user's machine. No server is involved in handling payments, the funds
go
directly from the user's wallet to the creator's wallet with no middle man.
An experimental feature, dubbed "pseudo-ads", allows creators to set the cost of viewing a webpage with a simple html meta tag. This is essentially suggesting a tip of, for example, 2 cents per site view. The tip would be automatically sent if under a threshold set by the user, and is designed to directly replace the revenue that would otherwise come from ads.
In order to receive donations, a creator will use the browser extension to generate an ECDSA key pair. The private key is stored in persistent storage. Then, a creator ID is generated, which is the bech32-encoded SHA-256 digest of the public key. This ID is placed on the creator's website or profile on a site such as YouTube, and proves they control that profile/website.
The creator then signs a record containing information about their profile, including their name, biography, a timestamp, and the Bitcoin Cash address that the tips will be received to. Once signed, the record is submitted to several servers that store it. The creator can update their profile at any time by signing and submitting a new record. Servers will discard old records and start serving the new one, based on the timestamp data included in it. A gossip protocol ensures that all servers have the latest records. To prevent spam, servers can verify record signatures and check that the domain specified includes the corresponding creator ID using web scraping.
The creator data is stored on servers because it is infeasible to store this data in the bio of a profile. It is much easier to put a short ID and retrieve the profile data from elsewhere. This model also makes it easy to discover creators using Opal, as there is always a list of creators available.
When the user visits a website, the extension checks for an Opal ID in an HTML meta tag: <meta name="opal-id" content="opal:a6s89ja.....">. If the user is viewing content on a platform such as YouTube or Medium, the extension scrapes the creator's profile page and looks for a creator ID there. If an ID is found, the extension will request the creator record corresponding to that ID from a server. The extension can check multiple servers if the record is not retrieved initially, to ensure censorship resistance.
Once the record is retrieved, the signature is verified against the creator's public key. If the signature is invalid, the record has been tampered with and will be discarded. Otherwise, it will be saved to persistent local storage. The extension will check periodically for new records and replace the record in storage if a new one is found.
Now the creator details are known for a particular profile or website, so tips can be sent to the Bitcoin Cash address. Content will contain metadata that suggests a per-view tip, usually a few cents. If the suggested tip is below a threshold set by the user (to avoid sending excessively high tips), it will be recorded and continue to aggregate until the end of the month. At the end of each month, any accumulated tips will be sent to the creator automatically.
The user can manually edit amounts sent to each creator, exclude certain creators, or add a multiplier to support them more or less. The payment is sent as coins locked in a smart contract which requires a redemption transaction to spend. This ensures that the wallet the funds are sent to is accessible, preventing money being sent to old, inaccessible wallets. If the tip is not redeemed within a set timeframe (by default one year), it is returned to the sender's wallet. This system guarantees that if you tip a creator, they will always receive the money or you will be refunded.
FAQ
It is primarily a difference in philosophy; we aim to directly replace ads with automated microtipping.
Adverts are very effective at monetising content, as it requires no effort from the user. By visiting a site,
a small sum of money is generated for the creator. This is why ad-based monetisation is so prevalent. Opal's
aim is to reduce the friction of supporting creators directly to the point where it is as effortless as
viewing ads. It is an alternative paradigm; you can imagine that instead of showing an ad which the creator
gets paid 1 cent for, the user directly contributes 1 cent via Opal, completely automatically.
Opal is currently in early development. We are in the prototyping phase, not yet building a full
implementation, and do not have a release timeline.
A core principle of Opal is to be completely open source and decentralised. Unlike mainstream monetisation
platforms like Patreon, there is no company behind Opal, no profit is taken from creators, and we take no cut.
Anybody can download our software and send or receive tips without permission from an authority. This would be
impossible with fiat currency - it would require a central entity to handle and distribute funds to creators,
requiring a great deal of trust that funds would not be stolen or misused. Cryptocurrency solves this problem
by allowing Opal to operate independently of any single entity, with funds sent directly to creators without
any intermediary.
While we would love to use Bitcoin Core for Opal, it is not suitable for micro-payments.
Opal requires low-fee on-chain transactions, which is nearly impossible on Bitcoin. The average fee is around
$1 and can get higher during congestion. Bitcoin Core has restricted block sizes to prevent blockchain bloat,
which severely limits throughput. Bitcoin Cash is a fork of Bitcoin that follows Satoshi's original plan to increase the block size limit when necessary to keep fees low. We are not opposed to Bitcoin Core; both protocols have
merits. This is a practical decision to allow Opal users to support creators seamlessly, while retaining control of funds.
The Lightning Network has numerous flaws that make it unsuitable for Opal. In its current state, it cannot
support microtipping via self-custodial wallets. For a creator to receive payments, they must have their
Lightning wallet open on a
device or run a Lightning node, both adding complexity. Opal must work seamlessly for non-technical users.
Using custodial Lightning wallets is an option, but this compromises self-sovereignty. Users should have
complete control over their funds, and we do not want to compromise on that principle.
We highly appreciate any suggestions or feedback for Opal. Please see the contact section below to get in
touch!