Skip to content
/ piWallet Public
forked from jfm-so/piWallet

piWallet is an open source program developed by Johnathan Martin that allows almost anyone to setup an online web wallet for a cryptocurrency.

Notifications You must be signed in to change notification settings

vnxz/piWallet

 
 

Repository files navigation

piWallet

piWallet is a popular secure opensource online altcoin wallet that works with practically any altcoin. piWallet uses PHP, mySQL, JavaScript and Bootstrap meaning it's quite simple to setup.

Setup: https://github.com/johnathanmartin/piWallet/wiki/Installation

TODO: Add a step in the wiki explaining to copy settings-example.php into a new file settings.php and then change the values.

Bitcoin Talk Thread: https://bitcointalk.org/index.php?topic=911212

Please exercise EXTREME CAUTION when having a 3rd party install piWallet, please see https://fittechhosting.com/cryptocurrency for approved installation/piWallet hosting services.

I can be reached directly at [email protected]

Features:

  • Manual User Reserve

  • QR Codes use a local generation URL

  • Multilanguage support for over 90% of text - Currently supported languages include English, Greek, Mandarin, Hindi, Italian, Portuguese, Spanish, and Tagalog.

  • QR Codes for Addresses

  • Google 2 Factor Auth

  • Mobile App (Additional Addon - see https://FitTechHosting.com/cryptocurrency )

  • Fee Sent to Wallet Owner (Included w/ Hosting - https://FitTechHosting.com/cryptocurrency)

Planned Features:

  • Have QR Codes open in lightbox instead of new tab

  • Control of Private Keys

  • Improved Bootstrap Theme

Todo List:

  • Issue #78 - PHP Juggling

  • Issue #82 - Strip tags bug

  • Issue #83 - change default password from changeme

  • Issue #36 Stop using md5

  • Change background from ugly yellow

More Information:

Created by Johnathan Martin of FitTechHosting.com

Use the following tutorial to setup a web wallet for a Scrypt PoW/PoS coin.

Make sure that you have the following requirements.

  • A server or VPS.
  • A domain. (This tutorial uses the domain example.com)
  • A hostname pointed to your VPS. (This tutorial uses the hostname wallet.example.com)

Update your Ubuntu machine.

sudo apt-get update sudo apt-get upgrade

Install the required dependencies.

sudo apt-get install libboost-filesystem-dev libboost-program-options-dev libboost-thread-dev libdb-dev libdb++-dev libminiupnpc-dev git nano

Go to your home directory.

cd $HOME

Note: replace “examplecoin” with the name of your coin. Note: replace “6gs39011kick8xmqutpkrvi92xx5kwev4ykanlv1ls0ouuae5x” with the coinID of your coin.

Download the daemon from MyCoin. (Available for a paid coin)

wget "https://dl.walletbuilders.com/download?customer=6gs39011kick8xmqutpkrvi92xx5kwev4ykanlv1ls0ouuae5x&filename=examplecoin-daemon-linux.tar.gz" -O examplecoin-daemon-linux.tar.gz

Extract the tar files.

tar -xzvf examplecoin-daemon-linux.tar.gz

Install the daemon and tools.

sudo mv examplecoind /usr/bin/

Create the config file.

mkdir $HOME/.examplecoin nano $HOME/.examplecoin/examplecoin.conf

Paste the following lines in examplecoin.conf.

rpcuser=rpc_examplecoin rpcpassword=CQRMSKLFUikEppUzKNbR7tGFKPMq3zhlS3eBUp2f rpcallowip=127.0.0.1 listen=1 server=1 txindex=1 daemon=1 enableaccounts=1 staking=0

Start your daemon with the following command.

examplecoind

Show your donate address.

examplecoind getaccountaddress "donate"

Example output

TLWgVeFEUJyWrRW7jccU5oh9j3i65ohQne

Keep note of the donate address.

Install PHP 5.6. sudo add-apt-repository -y ppa:ondrej/php sudo apt-get update sudo apt-get install git apache2 php5.6 php5.6-mysql php5.6-gd libapache2-mod-php5.6 mysql-server

Go to your home directory.

cd $HOME

Download piWallet.

sudo git clone https://github.com/johnathanmartin/piWallet/

Move piWallet to the www directory.

sudo mv piWallet/* /var/www/html/

Open MySQL.

sudo mysql

Create the database “wallet”.

CREATE DATABASE wallet;

Note: replace the value “Ee4cxBN6VaThkAr4fKigzWR7veDPZlvU1dVzYg4H” with a unique password. Create the database user.

CREATE USER 'wallet_user'@'localhost' IDENTIFIED BY 'Ee4cxBN6VaThkAr4fKigzWR7veDPZlvU1dVzYg4H';

Give the user “wallet_user” rights to the database “wallet”.

GRANT ALL PRIVILEGES ON wallet.* TO 'wallet_user'@'localhost';

Open the database “wallet”.

USE wallet;

Copy and paste the content of the file users.sql.

Close mysql.

quit;

Create Google reCAPTCHA keys Open a new tab in your browser and go to https://www.google.com/recaptcha

Login with your Google account.

To register a new site, click the plus sign in the top right corner.

Register new site Google reCAPTCHA Fill-in the form.

Label - A label to identify your site.

reCAPTCHA type - Select the option “reCAPTCHA v2”.

Domains - Enter the domain that you will use to access your web wallet.

Register new site Google reCAPTCHA example form Accept the reCAPTCHA Terms of Service and click on the button “submit” to register your site. Your reCAPTCHA site and secret key will be visible on the next page once the site is registered.

Example reCAPTCHA keys.

Google reCAPTCHA example keys

Configure piWallet Create the settings file.

sudo cp /var/www/html/settings-example.php /var/www/html/settings.php

Open the settings file.

sudo nano /var/www/html/settings.php

Change the marked values.

$db_user - Change the value “root” with the value “wallet_user”.

$db_pass - Change the value “password” with the MySQL password of the user “wallet_user”.

$rpc_port - Change the value “8332” with the RPC port of your coin.

$rpc_user - Change the value “bitcoinrpc” with the RPC username of your coin.

$rpc_pass - Change the value “Cp68nBkCAADKkskaKSskaDKdmSYLtLJ” with the RPC password of your coin.

$fullname - Change the value “Bitcoin” with the name of your coin.

$short - Change the value “BTC” with the abbreviation of your coin.

$blockchain_tx_url - Change the value “http://blockchain.info/tx/” with the URL to your block explorer.

$support - Change the value “[email protected]” with your support email address.

$donation_address - Fill in your donate address.

$public - Change the value “Recaptcha_publickey_here” with your reCAPTCHA site key.

$secret - Change the value “Recaptcha_privatekey_here” with your reCAPTCHA secret key.

Original settings.php.

$server_url = "/"; // ENTER WEBSITE URL ALONG WITH A TRAILING SLASH

$db_host = "localhost"; $db_user = "root"; $db_pass = "password"; $db_name = "wallet";

$rpc_host = "127.0.0.1"; $rpc_port = "8332"; $rpc_user = "bitcoinrpc"; $rpc_pass = "Cp68nBkCAADKkskaKSskaDKdmSYLtLJ";

$fullname = "Bitcoin"; //Website Title (Do Not include 'wallet') $short = "BTC"; //Coin Short (BTC) $blockchain_tx_url = "http://blockchain.info/tx/"; //Blockchain Url $support = "[email protected]"; //Your support eMail $hide_ids = array(1); //Hide account from admin dashboard $donation_address = ""; //Donation Address

$reserve = "0"; //Recaptcha $public = "Recaptcha_publickey_here"; $secret = "Recaptcha_privatekey_here";

Example settings.php.

$server_url = "/"; // ENTER WEBSITE URL ALONG WITH A TRAILING SLASH

$db_host = "localhost"; $db_user = "wallet_user"; $db_pass = "Ee4cxBN6VaThkAr4fKigzWR7veDPZlvU1dVzYg4H"; $db_name = "wallet";

$rpc_host = "127.0.0.1"; $rpc_port = "5303"; $rpc_user = "rpc_examplecoin"; $rpc_pass = "CQRMSKLFUikEppUzKNbR7tGFKPMq3zhlS3eBUp2f";

$fullname = "Examplecoin"; //Website Title (Do Not include 'wallet') $short = "EXP"; //Coin Short (BTC) $blockchain_tx_url = "https://example.com/tx/"; //Blockchain Url $support = "[email protected]"; //Your support eMail $hide_ids = array(1); //Hide account from admin dashboard $donation_address = "TLWgVeFEUJyWrRW7jccU5oh9j3i65ohQne"; //Donation Address

$reserve = "0"; //Recaptcha $public = "6Ld4xbIUAAAAAAOPOy-LXu6PPXsgHCFoEwmNM23S"; $secret = "6Ld4xbIUAAAAAJEyaKkZV0TSccnwFTEpZMh987KK";

Save the settings file.

Remove the default index.html file.

sudo rm /var/www/html/index.html

Install Let’s Encrypt.

sudo add-apt-repository universe && sudo add-apt-repository ppa:certbot/certbot sudo apt-get update && sudo apt-get install certbot python-certbot-apache

Create a SSL certificate.

sudo certbot --apache

Enter your support email address.

Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected]

Agree with the Let's Encrypt Terms of Service.


Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory


(A)gree/(C)ancel: Press a and enter to agree to the Terms of Service.

Agree to share your email address with Let's Encrypt.


Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom.


(Y)es/(N)o: Press n and enter to not share your email address.

Enter the hostname of your server.

No names were found in your configuration files. Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel): wallet.example.com

Redirect HTTP traffic to HTTPS.

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.


1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration.


Select the appropriate number [1-2] then [enter] (press 'c' to cancel): Press 2 and enter to redirect HTTP traffic to HTTPS.

Test your SSL configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=wallet.example.com

Test if you SSL certificate can be renewed using the following command:

sudo certbot renew --dry-run

Start a browser on your computer and open the page https://wallet.example.com

Use the following credentials to login.

Username - piWallet Password - changeme

Note: Immediately change the password “changeme” with a strong and unique password.

About

piWallet is an open source program developed by Johnathan Martin that allows almost anyone to setup an online web wallet for a cryptocurrency.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 99.6%
  • Other 0.4%