With the introduction of payment for service in Monero (https://github.com/monero-project/monero/pull/5357), the Primo project was released (https://repo.getmonero.org/selene/primo) to make use of that feature. What is Primo, and how can it help someone use Monero's new payment for service system ?


Primo is a protocol and associated suite of software allowing a website to request payment for service by mining Monero to an address owned by the website owner.

Primo enables the following scenario:

Maureen is a webmistress, and she quite frankly doesn't like the way the web is full of advertisements/malware, and decides to get income from her website in another way. Using Primo, she is able to setup part of all of her website to request payment via Monero mining. If the user mines, then her web server will allow access without ads. If not, Maureen has the choice to either deny access, or allow but still display ads.

Ursula the web user is also running Primo, and visits Maureen's website. Primo will automatically spot that this website requires payment, and will tell Ursula about it. Ursula can then either accept or decline.

Technically, Primo is composed of three parts which work in concert:

  • primo-apache is a module for the Apache web server. Maureen will need to install it on her web server, and configure which parts of her site to require payment for. This module requires access to a Monero daemon which supports pay-for-service (ie, or later). The Monero daemon will keep track of which payment are made, and when to allow or decline service.

  • primo-firefox is an extension for the Firefox web browser. Ursula will be running this. This extension will automatically detect when Ursula visits a website which is setup with Primo, and display a notification when she does.

  • primo-control-center is a graphical control center to be run by Ursula. It keeps track of which websites Ursula visited and allows her to control which websites she will allow mining for. primo-control-center coordinates with primo-firefox to list the Primo enabled websites Ursula visits, and is Ursula's all-in-one interface with Primo.

Thus, Primo offers a way for Maureen to get an income stream that does not depend on obnoxious or malware laden ads, and for Ursula to avoid the aggravation of browsing pages with ads.

Primo has a number of advantages for Maureen: - she does not have to deal with a third party ad broker, which has control over which ads her visitors will be subjected to and may decide to drop her at a whim - she will get paid in a decentralized currency, avoiding censorship by payment processors

Primo also has advantages for Ursula: - her personal information is safe: Ursula does not have to supply credit card info to Maureen, preventing credit card fraud - Ursula stays anonymous: no credit card info means Maureen cannot discriminate against Ursula as long as she supplies payment - Payment is done as Ursula needs to: there is no payment in advance, unless Ursula chooses to

Primo also has a number of benefits for the Monero network: - it increases the network hash rate, as more people mine Monero so they can access paid sections of websites - it increases the Monero network mining decentralization, as each such websites acts like a small independent pool

Note that a disadvantage for Maureen is that her actual income will depend on when her users actually find Monero blocks, so she will get "blocky" payments every once in a while rather than a steady trickle. The larger her user base is, the more this disadvantage will vanish.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.