Buy and sell digital products (ebooks, music, scripts, etc.) for Monero. A KYC-free alternative to Gumroad.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
AnarkioCrypto fa6c024074 Update 'src/func/products.php' 3 weeks ago
html Update 1 month ago
src Update 'src/func/products.php' 3 weeks ago
vendo_uploads Update 1 month ago
LICENSE Initial commit 1 month ago
README.md Update 'README.md' 1 month ago

README.md

Vendo Digital Downloads Marketplace

Buy and sell digital products for Monero (e.g. ebooks, music, scripts, links, game keys, premium content). KYC-free, non-custodial and zero fees.

Warning: This code is amateur-level, messy and not fully tested.

Why Monero?

Monero is "cash for the internet" a fast, secure and inclusive way to send and receive money worldwide.

No bank account, application or government ID is required to use Monero.

Monero can easily be exchanged for physical cash (e.g. LocalMonero.co), virtual debit cards and gift cards (e.g. CakePay.com) or spent on products and services (e.g. Monerica.com).

For more information, visit GetMonero.org.

How to install

Use the following instructions to run your own instance of Vendo Digital Downloads on a fresh Ubuntu or Debian VPS.

Shared hosting also works In that case, login to cPanel, upload the files via the File Manager or FTP and manage the database via PHPMyAdmin.

1. Install the web server

sudo apt install apache2 mysql-server php7.4 libapache2-mod-php7.4 php7.4-mysql php7.4-gd certbot python3-certbot-apache postfix

Warning: Vendo currently doesn't work with PHP 8.

2. Get a free SSL certificate

sudo certbot -d yourdomain.com

3. Setup the website

curl -LO https://codeberg.org/anarkio/vendo/archive/main.zip

unzip vendo-main.zip

shopt -s dotglob

mv vendo/* /var/www/

sudo chown -R www-data:www-data /var/www/

4. Set the domain name

find /var/www/ -iname "*.php" -exec sed -i "s_vendo.bitejo.com_yourdomain.com_g" {} \;

sed -i "s_vendo.bitejo.com_yourdomain.com_g" /var/www/html/assets/style.css

sudo a2enmod rewrite

sudo service apache2 restart

sudo nano /etc/apache2/apache2.conf

Replace:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

With:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

5. Setup the database

sudo mysql

CREATE DATABASE vendo_db DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

CREATE USER 'vendo_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YOUR_PASSWORD_HERE';

GRANT ALL ON vendo_db.* TO 'vendo_user'@'localhost';

FLUSH PRIVILEGES;

EXIT;

sudo mysql -u vendo_user -p vendo_db < /var/www/src/db/structure.sql

Then add the database name, username and password to connect.php:

nano /var/www/src/db/connect.php

6. Done!

Onion Monero Blockchain Explorer

Vendo Digital Downloads uses the Onion Monero Blockchain Explorer API to validate payments non-custodially (seller's Monero address, payment TXID and payment TX key).

If you have the resources to run your own instance of this API (requires a full node, which requires around 200~ GB storage), you can download it here: https://github.com/moneroexamples/onion-monero-blockchain-explorer and add the URL of your instance to /src/func/monero_api.php

If not, there are 4 instances listed in /src/func/monero_api.php

Future ideas

  • Optional monetization features for instance operators:
    • Featured products on the homepage and search page (payment via TXID and TX key).
    • Sellers can pay to upload larger files (requires a Storage VPS).
    • Non-intrusive ads for KYC-free crypto platforms/merchants/media.
    • TX fees aren't possible, as payments are sent directly to the seller.
    • A universal listing fee would be prohibitive, especially for locations where it is difficult to acquire KYC-free Monero, e.g. low cash by mail/cash in person liquidity. However, premium add-ons would be possible.
  • Federation feature: A global search for all fundraisers across different instances, which helps with discoverability and decentralization (similar to Mastodon/Nostr). Currently there is a RSS feed and an (untested) API and (untested) "fediverse" page.
  • Invite-only instances: If an instance is invite-only (e.g. it's for a specific niche or product type), sellers will need to enter an invite code in order to publish a product listing. Likewise, instance operators could host only their own products (e.g. premium content for their Youtube channel). Anyone would be able to purchase and download the products. (There is already an option for unlisted products.)

For a fully-featured marketplace for both digital and physical products and services, jobs and exchanges, check Bitejo: https://codeberg.org/anarkio/bitejo/

License

Vendo Digital Downloads is in the public domain. Feel free to fork or use this code for your own projects.

Disclaimer

This code is public domain and can be used for any purpose. However there is no warranty, guarantee or liability. Treat this as an experimental work in progress, instead of a production-ready finished product.