Skip to content

Metronero checkout

Siren requested to merge (removed):sausagenoods-master-patch-17289 into master

What?

An easy to use, highly customizable Monero checkout system that uses merchant provided templates. Instances support multiple merchant accounts (template customization among accounts). It is JavaScript free and Tor friendly.

Demo

Try out our PoC with your stagenet wallet!!!

This project was made for a university project. The code quality is not the best as we had a very limited time (around 4 full days) to make it kind of work.

Most importantly the source code is available right here and licensed under the GNU Affero General Public License version 3.

Graphs

We have made some graphs to showcase the workflow of the current demo. poc-uiPoC UI
deploymentDeployment
flowFlow
templating
Templating

Who?

Irem and Laurynas, also known by the names Siren and Stnby. We are the developers behind the MoneroPay payment processor, a daemon that interfaces with wallet RPC to track payments and notify status changes via callbacks. Key point of MoneroPay is that it uses subaddresses instead of integrated addresses, is very lightweight and handles unlock times properly.

We are also the people behind Digilol and are sponsoring Monerokon 2023 by providing hosting infrastructure and administration. As of now it includes: E-Mail, pretix and pretalx with live streaming to come!

Why?

We do not like the current solutions and see no way of improving them. One of such existing systems are BTCPay Server and here are our reasons why we do not see a possibility of embracing it:

  1. It is very difficult to set-up and heavy to run, because the project is written in C#, which is a controversial language among the Free Software community and its portability issues.
  2. No easy way to customize the way the checkout page looks (for smooth UI/UX).
  3. JavaScript is required for a good UI/UX and leaves Tor Browser users behind.
  4. Bitcoin first, although it is nice to see some support for other currencies, Monero has never been the projects top priority.

In our proposed system, administrators will be able to spin up their own Metronero instance in under 20 minutes within the Docker environment or a little longer elsewhere.

Any of the merchants are allowed to change the way their checkout page looks, by creating an easy to write template (seen in the templating graph above) and uploading it via the panel.

The instance can be shared between multiple different merchants (and allows optional commision fee, that we will utilize ourselves to cover the hosting and support costs on our publicly accessible custodial instance).

Milestones

Milestone 1 (5 weeks - 50 XMR)

  • Planning the backend, APIs (admin, merchant account management), multi-language support.
  • Writing the core backend features. Accounts and management of merchant provided checkout page templates.
  • Writing the frontend in Bulma. Current frontend consists of a merchant panel, default checkout page template, authentication and error pages.
  • Administration and deployment of publicly accessible instance. For the purposes of development and feedback from the community.
  • Modifying the QR code generator component to support other formats than SVG for Tor Browser support. SVGs get blocked for security reasons.

Milestone 2 (5 weeks - 50 XMR)

  • Commission system for shared instance operators. View-only wallet support for non-shared instances (it should be supported out of the box but we must remove certain UI elements in this mode).
  • More customization options for merchants. Option to turn off auto-reload using HTTP headers in case the merchant wants to handle refreshes themselves via JS. Option to choose between first confirmation or transfer unlock triggers to complete the payment.
  • Expose the payment information (what we expose through template variables already) through JSON API endpoints.
  • Backend development. Polishing, fixing bugs, better error handling, testing.
  • Write documentation and tutorials on how to deploy.

Milestone 3 - E-commerce Plugin (3 weeks - 30 XMR)

Funding

Our hourly rate per person is 0.25 XMR/h. We expect to work for at least 20 hours a week.

Other

Based on the feedback during the CCS meeting we decided not to have any milestone that would cover the hosting, support or maintenance of our custodial instance. We are planning to put a small transaction fee that will cover these expenses. We cannot predict the fee amount, but we expect it to be around 1%. For those willing to host their own instance, this does not apply.

The 1st month of our instance will not have any fees. Do not think of it as free as in beer, think of it as a reward 📈 of a fee you never had to spend, for being a testing bunny 🐇.

We also removed the Sylius plugin from the CCS milestone. Because of apparent lack of interest from the community. However for those who care about it, we will create it regardless at our own expense.

Metro in the Metronero

Hopefully we can reach the end of the tunnel.

Edited by Siren

Merge request reports