Lightweight monero payment gateway
 
 
 
 
Go to file
Keith Irwin 4f9bc2f9a4
build: 🏗️ Added docker files, gitignore, and env
2024-04-18 11:53:03 -06:00
.gitignore build: 🏗️ Added docker files, gitignore, and env 2024-04-18 11:53:03 -06:00
Dockerfile build: 🏗️ Added docker files, gitignore, and env 2024-04-18 11:53:03 -06:00
LICENSE chore: 🎉 Added license 2024-04-18 10:37:49 -06:00
README.md docs: 📝 Improved diagram and description 2024-04-18 11:31:20 -06:00
docker-compose.override.sample.yml build: 🏗️ Added docker files, gitignore, and env 2024-04-18 11:53:03 -06:00
docker-compose.yml build: 🏗️ Added docker files, gitignore, and env 2024-04-18 11:53:03 -06:00
index.js build: 🏗️ Added docker files, gitignore, and env 2024-04-18 11:53:03 -06:00
package-lock.json build: npm install express dotenv axios socket.io 2024-04-18 11:43:45 -06:00
package.json build: npm install express dotenv axios socket.io 2024-04-18 11:43:45 -06:00
sample.env build: 🏗️ Added docker files, gitignore, and env 2024-04-18 11:53:03 -06:00

README.md

pago

A lightweight monero payment gateway that can be embedded into any website. "pago" is esperanto for "payment", just as "monero" is esperanto for "money".

Project overview

There are three components to pago, shown in the big square at the bottom in this diagram:

   monero network
          ▲
          │
    ┌─────▼───────┐
    │   monerod   │
    │(remote node)│
    └───────▲─────┘
   daemonRPC│
  ┌─────────▼──────┐
  │view-only wallet│
  └──────▲────▲────┘
walletRPC│    │walletRPC
+--------│----│--------+
|┌───────▼─┐ ┌▼───────┐|
|│Processor│ │Merchant│|
|│   API   │ │frontend│|
|└──▲──────┘ └────────┘|
|   │HTTPS/WSS         |
| ┌─▼──────────────┐   |
| │Payment frontend│   |
| └────────────────┘   |
+-----------------pago-+
  • The Processor API which creates payments using authenticated RPC calls to a viewonly monero wallet
  • The Payment frontend, an embeddable html/js/css interface for making payments, which communicates with the processor API with HTTPS and WSS (websockets)
  • The Merchant frontend, an embeddable html/js/css interface for checking payment status, which makes authenticated RPC calls to the wallet directly

The processor api is an express/node.js server and the two frontends have a single lightweight dependency: the knockoutJS microframework.

There is no database. Data are stored in the wallet file, which should be backed up like any data.