# 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.