Simpla Vendejo API
This app runs a view-only Monero wallet to verify payments and keeps track of them in a MySQL database.
- Method: POST
- Parameter: order_id (optional) A new row will be added to the MySQL table with a column for the order_id (a random one will be generated if not provided as POST data), a unique Monero subaddress, as well as null columns for “seen” and “10conf” indicating that no payment has been found on the blockchain.
- Method: GET
- Parameter: order_id
Returns a JSON object with two values:
10conf. If not null they should contain the amount of XMR found paid to the address associated with that order id.
This application will manage a single table in a MySQL database. The table will have a primary key column
order_id, a column
address with a unique subaddress associated with the order, a column
seen storing the decimal value of XMR seen in the transaction pool associated with that order, as well as a column
10conf storing the decimal value of money found at least 10 blocks deep in the blockchain that is associated with the row’s order.
After logging into your MySQL database, such a table can be created with the following query:
CREATE TABLE payments (order_id INT PRIMARY KEY, address VARCHAR(95), seen DOUBLE, 10conf DOUBLE);
Creating a Monero wallet
This application will take a password protected Monero wallet .keys file containing a view-keypair to watch the blockchain for transactions paid to you. Monero wallet software can be found at https://www.getmonero.org/downloads/ and a guide to creating a new wallet can be found here and a guide to creating a view-only wallet can be found here. For security’s sake, only a view-only wallet should be stored on the server machine.
The .env config
.env file is used to quickly configure environment variables. An example has been provided in the root directory of this repo but you should edit it with the appropriate values for your server.
WALLET_FILEThe path to your view-only wallet cache file. The .keys file should be in the same directory as the cache file.
WALLET_PWDThe password for your view-only wallet.
MONERO_DAEMON_URIThe uri to the monero node to use to verify payments on the blockchain. A third party node can be used but for commercial use it is highly recommended that you validate payments with your own instance of
DB_HOSTThe IP address of your MySQL database.
DB_USERThe username to use to access the MySQL database.
DB_NAMEThe name of the database to use.
Running the node.js app
This app utilizes Node.js. After Node.js and NPM have been installed you can install this app’s node module dependencies with
The app can be run by executing