Guides

General

General

Enabling Coin Control

Once the wallet is loaded click settings, options.

pivx24.PNG

Then click Wallet and check the box enable coin controls features.

pivx25.PNG

Now close click ok. Coin Control is located on the Send tab and you just click Inputs…

pivx26.PNG

This popped up window will display all coins and how many coin stacks and their quantity there are. Here you can select which coins you would like to send.

pivx27.PNG

General

How can I start staking? (Universal)

Here is a Video how to start staking:
(video)

Staking should begin automatically under most circumstances, but if you are experiencing issues check that the following conditions are met:

  1. Chain must be synced, not importing or reindexing
  2. Chain tip’s timestamp must be past a certain time (was many months ago)
  3. Must have active connections
  4. Wallet must be unlocked (unencrypted wallets are always considered unlocked)
  5. Must have mintable coins (aka, at least 101 confirmations - confirmations can be checked by mousing-over transactions)
  6. Must have more coins than reserve balance (reservebalance default is 0)
  7. Masternode additional data must be synced

You can check the status of these conditions in the command-line interface or using Tools -> Debug Console with the command getstakingstatus

Staking can sometimes take up to 30 minutes to begin working even after conditions are met. If all conditions are met but staking does not begin after some hours, restart the wallet.

See also: How to troubleshoot staking activation

General

How can I submit logs?

(Adapted from https://forum.pivx.org/t/wallet-syncing-issues-and-resolution/1194)

Providing Helpful Information

If you are experiencing issues with syncing, and would like to provide your log information, you can email a zipped copy of your debug.log file from your datadir. This may or may not contain useful information about syncing problems (the file is truncated periodically so errors may be too far back).

Default Datadir Locations

By default, they are located in the following locations for each OS type:
Windows
Go to Start > Run > %APPDATA%\PIVX
(or just enter the above path in explorer)
OSX
~/Library/Application Support/PIVX
(/Users/"username"/Library/Application Support/PIVX)
Linux
~/.pivx

Alternatively, follow the steps outlined in this KB article and send the debug.log file once a stall in syncing is discovered.
Log files can be emailed to fuzzbawls@gmail.com with a link to download/view your log file (pastebin.com may work depending on how large the log is).

General

Using the bootstrap

What is a bootstrap?

A bootstrap is a packaged copy of the blockchain like a snapshot, however it will still require your wallet to validate each block. This is preferable because it doesn't require your wallet to trust the source of the snapshot (if you didn't make your own). The bootstrap method is faster than a standard resync and uses less bandwidth, but it does still take some time and causes high CPU usage while it is validating the blocks.


How do you use a bootstrap?

If you just want to attempt to get your client up to speed and on the right chain, I am providing a bootstrap data file below. This is NOT a snapshot! Using this bootstrap will still require the wallet client to verify and validate all of the data contained within, which is the blockchain up to block 910000 in sequential order without any orphans.

Steps to use the bootstrap:

  1. Stop/shutdown your wallet client if it is running.
  2. Navigate to your PIVX data directory as shown here
  3. Delete ONLY the 4 folders and 2 files shown below (blocks, chainstate, sporks, zerocoin, banlist.dat, and peers.dat) folders from your data directory.
    (Do NOT delete backups or wallet.dat)

pivx28.PNG

4. Download the latest bootstrap from here
5. Extract the bootstrap zip file you just downloaded and you will see a file called "bootstrap.dat"
6. Place the "bootstrap.dat" file in your data directory
7. Start your wallet client.
    (demonstration)

When your wallet client starts up, you will notice that it begins processing the blocks contained within the bootstrap.dat file. This can be verified when using the GUI wallet as it will say (in the bottom left) "Importing blocks from disk"

Linux Command line steps
(One-liner available here)

Navigate to the PIVX data directory

pivx29.PNG

Remove ONLY the blocks, chainstate, sporks, and zerocoin folders and the banlist.dat and peers.dat files

pivx30.PNG

Download the bootstrap (Make sure to get the latest bootstrap from the link in step 4 above)

pi@barry:~/.pivx $ wget https://github.com/PIVX-Project/PIVX/releases/download/v3.1.0.2/pivx-chain-1168000-bootstrap.dat.zip

...


Saving to: ‘pivx-chain-1168000-bootstrap.dat.zip’

pivx-chain-1168000-bootstrap.dat.zip 100%[=====================>] 387.58M 9.71MB/s in 3.2s

2017-10-07 20:32:26 (9.19 MB/s) - ‘pivx-chain-1168000-bootstrap.dat.zip’ saved [31019051/31019051]

Unzip the bootstrap file

pivx31.PNG

Remove the bootstrap zip file (optional)

pivx32.PNG

Navigate back home and start the client. Your path to the binaries may be different

pivx33.PNG

You can use pivx-cli getinfo to check on the status, but be aware it will say it is importing blocks for a long time (especially on a raspberry pi)


 

General

How to troubleshoot staking activation

Symptoms

My wallet is running, but staking does not appear to be active. In the pivx-qt (graphical/GUI) wallet the arrow is not green or in pivx-cli (command line/CLI) getinfo says staking is not active.

Solution

  1. As a first step, please verify that you meet all staking conditions on this page. Condition number 5 is a common reason for staking being inactive. Waiting for your coins to mature takes 101 blocks (101 minutes). During this time your GUI wallet may show that part of your balance as immature.
  2. If your wallet meets all of these conditions and staking is not active, try the getstakingstatus command:

For a GUI wallet, open Tools > Debug Console. Then input the command getstakingstatus
For a CLI wallet, enter pivx-cli getstakingstatus

You should see an output similar to the one below that shows your compliance with several staking conditions. If any of these are false, it should narrow down the issue.

pivx34.PNG

3. If the steps above are unsuccessful, try the following:

Gracefully shutdown your PIVX wallet
Wait 30 seconds and then restart the wallet
Wait 5 minutes and then unlock your wallet for staking

General

How to change the trusted node on PIVX mobile Wallet

1. What you want to do first is open the PIVX mobile wallet, on the top left select the 3 lines which will bring the options menu to the side.

pivx35.PNG

2. Select the Setting tag as show below.

pivx36.PNG

3. Now select change trusted node.

pivx37.PNG

4. You should see the PIVX furszy node, below it select "Add Node"

pivx38.PNG

5. Now you will need your nodes IP address or host name, Insert it in the host field, the IP field in most cases can be left blank and select "add node". I have used my own server for this

pivx39.PNG

Your wallet should now be connected to your node of choice, your balance may not show yet as it needs to synchronize with the new node, give it 5 - 15 minutes. To confirm that it is indeed working go to step 1 of this tutorial where you selected the 3 lines and in the menu you should see "synchronizing or synced below "wallet"

 

General

How can I use a snapshot?

What is a snapshot?

A snapshot is simply a copy of the blockchain. You can make your own by following these instructions. A snapshot is used as a shortcut when resyncing your blockchain because your client will not need to download or validate the blocks. However, this does require you to trust the source of the snapshot is not giving you bad data. If you've made your own snapshot, you of course have nothing to worry about


How do you use a snapshot?

To use a snapshot, please complete the following steps

  1. Gracefully shutdown your wallet
  2. Locate your PIVX data directory.
  3. Delete ONLY the following 4 folders and 2 files from your data directory:
    (Do NOT delete anything other than blocks, chainstate, sporks, zerocoin, banlist.dat, and peers.dat)

pivx40.PNG

4. If you are using a personal snapshot, find those files. Otherwise, download the newest snapshot from here.
5. Unzip if needed and place the contents in your PIVX data directory. You should see it recreate the 4 folders you just deleted (blocks, chainstate, sporks, and zerocoin)
6. Restart your wallet software
7. Your wallet will start syncing from whenever the snapshot was created, so the sync should take very little time
(demonstration)

 

General

What is BIP38 and how do I use it?

BIP38 is a way to protect a private key using encryption. You are probably already familiar with encrypting your wallet.dat file. This is the same concept, but the encryption applies to the private key instead of the entire wallet file, which holds many private keys. The end result is a string of characters that requires the passphrase to decrypt. Some use cases for BIP38 are:

  • A more secure form of paper wallet
  • Extra security when handling private keys because otherwise dumpprivkey outputs the plaintext key

GUI
Encrypting the Key

  1. On your wallet that currently holds the address and private key, you will need to open up your PIVX Core wallet
  2. Go to Settings > BIP38 Tool
  3. A dialog box will appear that prompts you for the address and passphrase you want to encrypt it with. Complete these prompts and click Encrypt at the bottom left. Note that the passphrase can't include symbols or spaces
  4. If you have not fully unlocked your wallet, you will be prompted to do so. "For anonymization and staking" is not sufficient for this operation
  5. After some time, the encryption will complete and display the BIP38 encrypted form of your address's private key
  6. Remember to relock your wallet and then if needed for staking unlock it 'for anonymization and staking only'

Decrypting the Key (optional)

  1. On your wallet that currently holds the address and private key, you will need to open up your PIVX Core wallet
  2. Go to Settings > BIP38 Tool
  3. Navigate to the Decrypt tab
  4. A dialog box will appear that prompts you for the address and passphrase you want to decrypt it with. Complete these prompts and click Decrypt at the bottom left.
  5. If you have not fully unlocked your wallet, you will be prompted to do so. "For anonymization and staking" is not sufficient for this operation
  6. After some time, the decryption will complete
  7. Remember to relock your wallet and then if needed for staking unlock it 'for anonymization and staking only'

Command Line
Encrypting the Key

1. For this operation we will need to fully unlock the wallet with the command below. If you don't do this step you will get the message: error: {"code":-13,"message":"Error: Please enter the wallet passphrase with walletpassphrase first."}

pivx41.PNG

2. Now, we will use the command bip38encrypt. You will need to provide the address and passphrase for encryption. You can get your addresses with the listaddressgroupings command

pivx43.PNG

3. Your BIP38 encrypted form of the address's private key will be displayed
4. Remember to relock your wallet and then if needed for staking unlock it 'for anonymization and staking only'

Decrypting the Key (optional)

1. For this operation we will need to fully unlock the wallet with the command below. If you don't do this step you will get the message: error: {"code":-13,"message":"Error: Please enter the wallet passphrase with walletpassphrase first."}

pivx44.PNG

2. Now, we will use the command bip38encrypt. You will need to provide the address and passphrase for encryption. You can get your addresses with the listaddressgroupings command

pivx45.PNG

3. After some time the decryption will be complete and your address and the private key will be displayed
4. Remember to relock your wallet and then if needed for staking unlock it 'for anonymization and staking only'

General

Extended Public Keys (xpub) and Watch-only Mode

Extended Public Keys (xpub) are a security feature that enables Watch-only mode in the PIVX Mobile wallet. It allows you to disable the Send Payment option, but still generate addresses, receive piv, see balances, and monitor for payment.

A common scenario where this is a benefit is the Point of Sale (POS) device at a merchant. With normal wallets, your options are:

  1. Use the same pre-generated address(es) for all transactions. This is a privacy concern for your businesses finances and a nightmare for accounting and connecting transactions to order numbers
  2. Use a wallet on the device to generate new addresses. This is a security concern both because sending money is only protected by a PIN/password and because the seed or private keys are still held in memory on the device.

With your xpub key and watch-only mode, you can have all the functionality best practices require for generating a new address for each transaction without all the security risk.

Caveats

  • Despite it's name, the xpub key should not be made public. It is only for generating "public keys" which are effectively your addresses. If your xpub key is leaked, the transaction history for all of the addresses it generated will be visible.
  • Additionally, if both the xpub key and the private key for any addresses it generates are both leaked, the private keys for all addresses it generated will be compromised.

So in light of these risks, why is this setup better? Watch-only mode represents a significant mitigation of the risks around handling a wallet. For either of the caveat scenarios above, if you were not using watch-only mode the wallet's seed phrase would have been stolen instead of just the xpub key. A stolen seed phrase would have fully compromised the funds for all associated addresses.

Technical Details

xpub keys are a concept that comes from the predictable hierarchy of keys produced by BIP32 compliant HD wallets. It is effectively a seed phrase for generating new addresses without their private keys. This should be compatible with any BIP32 compliant wallet like PIVX Mobile, Ledger Nano, or Coinomi, but the wallet's software may not include the export or watch-only modes. If you need to export the xpub key, you may be able to use a tool like Coinomi's to determine the xpub key's derivation path and export the key heirarchy. More information can be found here:
https://www.reddit.com/r/writingforbitcoin/comments/4mgylu/informational_cc0_maslows_hierarchy_of_coins/

General

PIVX Economics

PIVX Coin Supply and Inflation Rate

Bitcoin introduced people to a lot of interesting economic ideas like supply caps and deflationary money. PIVX similarly has some interesting economic properties such as a dynamic supply, tail emission, and coin burning.

Coin Emission

A cryptocurrency's coin emission is the creation of new coins, usually as part of the block reward. PIVX currently has a coin emission of up to 6 piv per block. Based on a successful proposal, the PIVX reward system changed when zPoS was enabled.

The new coin emission creates up to 6 piv per block. The breakdown is up to 1 piv for the treasury and 5 piv split between masternodes and stakers. The split between masternodes and stakers is determined by whether the staker won using piv or zPIV. If the staker wins the block using zPIV, they will get a 3 zPIV reward and the masternode will get 2 piv. If the staker wins using normal piv, they will get a 2 piv reward and the masternode will get a 3 piv reward. This breakdown is illustrated graphically below.