docs: 📝 Added README

main
Keith Irwin 2024-04-18 11:05:35 -06:00
parent 5fa7136bd8
commit e9d16ec7a5
Signed by: ki9
GPG Key ID: DF773B3F4A88DA86
1 changed files with 42 additions and 0 deletions

42
README.md Normal file
View File

@ -0,0 +1,42 @@
# 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 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 a node.js server and the two frontends are clientside javascript with a single lightweight dependency: the knockoutJS microframework.