Full installation process

Hot Wallet, Cold Masternode

Setting up safe Masternodes using a 'hot/cold' setup

In this tutorial, we will run one or more PowerSwitch masternodes in a multi-wallet ('hot/cold') setup.

  • A local wallet (on your PC or laptop) will contain the funds for the masternodes and has the ability to start (or actually register) them remotely. This is called the 'cold' part because if the masternodes are running, you can close the client wallet and even shut down your PC.
  • The masternode(s) will run on a server 24/7. Therefore they are called the 'hot' part. The masternode wallets will contain PowerSwitch rewards and put them at stake to generate even more rewards.

Your masternode collateral stay on cold wallet, your masternode payouts will go to the masternode so you can stake them.

Configuration of the local, controlling client

Perform these steps to setup a local, controlling client on your PC or laptop. Again: the client does not need to be on 24/7 (only the masternode does, which we will install later).

1. Install the GUI (QT) version of the wallet

Go back to the PowerSwitch website and select 'Download' from the menu. Download the wallet version that matches your system


Download the 32-bit (PowerSwitch-qt-32bit.exe) or 64-bit version (PowerSwitch-qt-64bit.exe) of the software. If you don't know if your computer is 32 or 64-bit, right-click 'My Computer', 'Properties'.

Copy the file to a location of your choice, C:\Wallets\PowerSwitch\PowerSwitch-qt-64bit.exe

On Windows, the configuration and blockchain files will be in %APPDATA%\PowerSwitch, usually C:\Users\{YOUR_USER_NAME}\AppData\Roaming\PowerSwitch. The AppData folder may be hidden. To quickly go there, press WINDOWS-R and enter %APPDATA%\PowerSwitch


These are instructions for the QT version of the wallet. Instructions for the daemon-version are below, in the Masternode part.

Download PowerSwitch-qt with your favorite browser.

Use a file manager to move it to a location of your choice, preferably on your PATH, e.g. /usr/local/bin or ~/bin/PowerSwitch-qt (~ is you home directory).

On Linux, the configuration and blockchain files will be in ~/.PowerSwitch You need to do a ls -a to see folders that start with a dot.


Download and install PowerSwitch-qt.dmg

On Mac, the configuration and blockchain files will be in: ~/Library/Application Support/PowerSwitch/. ~ is you home directory.

2. Start the wallet and sync or download the blockchain

When you start the wallet or the first time, it will create an empty wallet. Then it will start downloading the blockchain to your computer. This process may take from a few minutes to many hours depending on your internet speed and blockchain size.

3. Protect your wallet, backup your files.

The directory mentioned above contains configuration files, the blockchain and most importantly: your wallet (wallet.dat).

You wallet contains the keys you need to access you funds. That means that:

  • If you loose your wallet, you will never be able to access the funds again;

  • Anyone who has access to your wallet file (and this includes computer viruses) has access to your funds.

To protect your funds, you should first encrypt your wallet:

  • Click 'Settings' (menu), 'Encrypt Wallet...' And follow the instructions.

Second, you should make sure to backup the wallet and configuration files in the directory mentioned before.

Whenever you make any changes to the files in the PowerSwitch directory, make a backup first! And ALWAYS make a backup of your wallet.dat file.

Never store wallet backups on your computer as they are targeted by hackers and computer viruses. Instead, store them on external drives (and disconnect them) or one or more USB sticks.

Also: stop the application before you backup any files. If the application is still running, your backup files may get corrupted and unusable.

4. Create a configuration file for the local client (if needed)

The primary configuration file of the PowerSwitch wallet is PowerSwitch.conf in the directory mentioned above. By default, this file is empty.

In most cases, the local client should run fine with an empty configuration file.

However, there are a few things you can configure, so lets have a look at an example:

# -------------------------------------------------------------------------------------------------
# Example PowerSwitch.conf 
# LOCAL CLIENT VERSION (=the wallet that controls the masternodes)
# -------------------------------------------------------------------------------------------------

# By default, staking of (mature, >2h) coins is enabled.
# Note that the masternode collateral will be excluded from staking and
# you will only stake when your local client is open with its wallet unlocked.
# -------------------------------------------------------------------------------------------------
# Default: 1 (on). To turn it off:
# staking=0

# For peer-to-peer connections:
# If your machine cannot determine its IP address or you use a different port, specify them here.
# -------------------------------------------------------------------------------------------------
# externalip=YOUR_EXTERNAL_IP
# Default P2P port: 9333. To change it:
# port=YOUR_PORT

# RPC server. Not needed for local client.
# -------------------------------------------------------------------------------------------------
# Default: server=0 (off). To use RPC:
# server=1

# Localhost RPC calls are always allowed (no need for rpcallowip=
# Example for use on a private subnet:
# rpcallowip=192.168.1.*

# Default RPC port: 9332. To change it:
# rpcport=YOUR_RPC_PORT

# You could add some nodes for a quick connection.
# -------------------------------------------------------------------------------------------------
# addnode=
# addnode=
# addnode=

If you made any changes to the configuration file, restart the application. The safest way to do that is to use the 'File' menu, then 'Exit', because you application may be configured to just minimize when you use the close button.

What will we need for a masternode configuration?

We will now collect the information that is needed to register your masternode(s). To see what we will need, click 'Masternodes' (left), then 'Create' :

So to register a masternode, we will need:

  • An 'Alias' (will be something like "Masternode1")

  • An 'Address', which will be the IP address and port of the masternode;

  • A 'PrivKey', which will be a unique masternode key to identify it;

  • A 'TxHash' and 'Output Index' to identify the deposit of your collateral.

  • A 'Reward Address' to send the masternode rewards.

5. Get the masternode IP-address and port


You will have to find out at which IP-address your masternode will be running.

  • If the masternode will be running on a Virtual Private Server (VPS), its IP-address will have been given to you by the provider;

  • If you run the masternode from your house, your router will be able to tell you the external IP-address;

  • You can also use online services like http://www.whatsmyip.org/


By default, PowerSwitch uses port 9333 for peer-to-peer communication. You might want to use another port, especially when you run multiple masternodes on one IP address.

Write down the IP-address and port of each masternode in the text file you created before.

We will discuss 'Port Forwarding' and 'Network Address Translation' (NAT) later, when we install the masternode itself.

6. Create unique masternode keys

Each masternode will need to be identified by a unique key. To generate these keys, do the following:

  • Click 'Help', 'Debug window', 'console' to open the console window;

  • Type "masternode genkey" to generate a unique key;

  • Copy/paste the masternode keys to the text file you created before;

  • Do this for each masternode.

It's good to know that:

  • Masternode keys are nothing special. They are just random values that have no special relation to the wallet or specific accounts within it;

  • You can generate as many keys as you need by just repeating "masternode genkey" and use them on any of your masternodes;

7. Create receiving account addresses for each masternode

Next, we'll create new receiving addresses for each masternode. You will later transfer your collateral to each of them.

To create a new receiving address, either:

  • From the console window, type getaccountaddress "Masternode 1"

  • or in the User interface: click the Receive menu on the left, then click the New Adress button at the bottom and enter a name, e.g. 'Masternode 1'

  • Create an account for each masternode.

If you make a mistake entering the accounts' name, you can always correct that in the 'Receive' screen.

8. Transfer your collateral to each of the accounts

Next, you'll need to transfer your collateral to each of the generated accounts.

It is very important to realize that it's the transaction that counts, not the resulting balance. For this reason, you must deposit the money in one single transaction of the exact number of PWS (5 000 coins).

To do this:

  • You may have to take the fee / transaction costs into account:

    • When you transfer from an exchange, you'll need to add the fee yourself. So if the fee (or 'transaction costs') are 0.001 PWS, you'll have to transfer 5000.001 PWS in order to deposit exactly 5000 into the account (it will tell you on screen, check that);

    • When you transfer from the PowerSwitch wallet: you can deposit exactly 5000 PWS and the fee will be added automatically. It is configured in 'Settings', 'Options'.

  • If you already put money in your account in multiple transactions, you will need to deposit it again as one single transaction. You can deposit to a new account, or even the same account (this may sound stupid, but we need one single transaction on the blockchain).

  • You should make sure the 5000 PWS stays unspent. If you ever take take out profits, you'll have to take special precautions to not damage the 5000 PWS collateral. Simply leaving enough balance will not work. See one of the Frequently Asked Questions (below) for more information.

It also means that:

  • It does not matter if there is more than 5000 PWS in your account. In fact, that will happen as soon as you start receiving masternode rewards;

  • in theory, you could use one account for multiple masternodes as long as they each have their own collateral transaction to that account. It would be very confusing, though.

You will have to wait 15 confirmations for the funds to become available.

9. Write down the transactions hash and output index

With your collateral(s) in the account(s), it's time to collect the information about the transactions that took place.

For each masternode, we will need the transaction id of the deposit and its output index within that transaction. The output index is needed because each PowerSwitch transaction can have multiple 'inputs' (where the money came from) and multiple 'output' (where the money went). We'll need the index of the output that actually put the collateral into our account.

This may sound difficult, but the wallet actually makes this quite simple for us:

  • First, make sure your wallet is unlocked;

  • From the console window, type "masternode outputs". This will return a list of all valid transactions ID's and their output indexes. There should be one for each masternode. If not, you did something wrong. See one of the Frequently Asked Questions (below) for more information.

  • If you have multiple masternodes, you will need to find out which transaction belongs to which masternode. Use the 'Transactions' screen to do that: double click each collateral transaction to see which transaction belongs to which masternode account.

  • Copy/paste the values to the text file you created earlier. Make sure you put the right transaction id with the right masternode!

10. Register the masternodes

Finally we have all the information we need to configure our masternodes in the local client:

  • open the masternodes menu (left side);

  • Make sure the MasterNodes tab is selected;

  • Click the Create... button at the top and enter the values you collected in the text file.

Enter the following:

  • For 'Alias', enter the name of the masternode, e.g. "Masternode1";

  • For 'Address', enter the IP-address and port of the masternode;

  • For 'PrivKey', enter the unique masternode keyof the masternode;

  • For 'TxHash' and 'Output Index', enter the transaction ID and output index of the collateral deposit.

  • For 'Reward address' and '%age', either enter nothing and your reward will be sent to the collateral address, or enter any address of your choice (we will see later how to send your rewards into the masternode hot wallet to put them at stake).

All data is stored in a file called masternode.conf.

It's important to realize that:

  • the local client often needs no PowerSwitch.conf, but it will have a masternodes.conf file containing the masternodes in controls;

  • the masternodes will need a PowerSwitch.conf, but despite the name, they will have no masternodes.conf file.

Configuration of the (remote) masternode

The remote masternode will basically be an empty wallet, configured to run as a masternode.

1. Install the wallet on the server

On a server with a user interface, like Windows or a desktop Ubuntu 16.04 installation, you could run the QT (user-interfaced) wallet as a masternode.

But most people will run the masternode on a Linux server (e.g. on a VPS), with a command line interface instead of a graphical user interface. For that, you'll need a headless version of the wallet, also called a daemon. You can either download it or compile it from the sources.

Downloading a headless/daemon version of the wallet (Linux)

First, lets go to the directory where we will put the deamon. A good place is /usr/local/bin.

# Go to bin directory 
cd /usr/local/bin

# Download the daemon (and rename it)
wget -O PowerSwitchd.gz https://www.powerswitch.me/binaries/PowerSwitchd.gz

# Add read/execute rights, only for the owner of the file.
chmod 500 PowerSwitchd

This should put an executable PowerSwitchd in your /usr/local/bin directory. Because that directory is on your path (check with echo $PATH) you can start it from any directory.

Recompiling a headless/daemon version from the sources (Linux)

Read the guide "Compiling daemon from sources on Ubuntu 16.04".

2. Run the deamon once to gererate configuration files

For the Linux Deamon, type PowerSwitchd once to let it create an empty configuration file and provide your with some tips:

# Go to your home directory
cd ~

# Start the deamon once (it might tell you to enter some configuration)
PowerSwitchd -daemon

# Check for the .PowerSwitchd directory
ls -al

# Go there
cd .PowerSwitchd

# List the files, we should have an PowerSwitch.conf in there.
ls -al

# Use you favorite editor to edit it.

3. Create a configuration file for the masternode

Again, your configuration file should be in ~/.PowerSwitch/

For a masternode, you need to configure the following.

  • If you run a deamon, you'll need to activate the RPC server (server=1) and provide it with a rpcuser and rpcpassword to be able to interact with it;

  • You need to tell you wallet to run as a masternode (masternode=1) and provide it with its unique key;

  • You may need to configure the external IP address and port;

  • You could add addnode=IP lines for some initial connections.

Here is an example to copy and paste (to copy text from a terminal, simply select it with your mouse. To paste, click right or middle mouse button):

# Example PowerSwitch.conf 
# -------------------------------------------------------------------------------------------------

# RPC server. Only needed for the Linux deamon:
# -------------------------------------------------------------------------------------------------
# Default: server=0 (off). To use RPC:

# Localhost RPC calls are always allowed (no need for rpcallowip=
# Example for use on a private subnet:
# rpcallowip=192.168.1.*

# Default RPC port: 9332. To change it:
# rpcport=YOUR_RPC_PORT

# To run this wallet as a Masternode, enter its masternode privKey and the external IP address and port 
# -------------------------------------------------------------------------------------------------

# The masternode will receive coins rewards and put them at stake
# -------------------------------------------------------------------------------------------------

# For peer-to-peer connections:
# If your machine cannot determine its IP address or you use a different port, specify them here.
# -------------------------------------------------------------------------------------------------
# externalip=YOUR_EXTERNAL_IP
# Default P2P port: 9333. To change it:
# port=YOUR_PORT

# You could add some nodes for a quick connection.
# -------------------------------------------------------------------------------------------------
# addnode=nodes.powerswitch.me
# addnode=
# addnode=
# addnode=

4. Start the wallet and sync or download the blockchain

If you use a QT client, just follow the same instructions you used for the local client.

If you use a Linux deamon, you can start, stop and use it as follows:

# Start the deamon
$ PowerSwitchd -deamon

# To stop the deamon:
$ PowerSwitchd stop

# To interact with it:
$ PowerSwitchd getinfo
    "version" : "v1.1.0.1-60030",
        "blocks" : 13863,

Again, on first startup, the wallet will create an empty wallet and start downloading the blockchain to your computer. To speed up the process, you can download a recent blockchain.

Wait for the wallet to synchronize.

To check if it's finished, check the blocks value from "PowerSwitchd getinfo" and compare it to a synchronized client or a blockchain explorer on internet.

To restart a daemon process after a server reboot

Although server reboots don't occur very often, it might be a good idea to start the PowerSwitch daemon process after a reboot.

The easiest way to do this is to start it from your crontab. To edit your crontab on most distributions:

  • Run crontab -e to edit the crontab file;

  • Scroll to the bottom of the file and add the following line: "@reboot PowerSwitchd -daemon"

  • Save the file and exit; the updated crontab file will be installed for you.

On most distributions, this will cause the PowerSwitch daemon to be automatically started each time the server is rebooted.

5. Now start the masternode

Finally, we can really start and register the masternode:

  • First start the masternode wallet or daemon (PowerSwitchd -daemon). It will then poll the masternode system to find its own registration.

On the client:

  • Open you local client;

  • Unlock your wallet if it is locked;

  • Select the 'Masternodes' view (left), select your masternode configuration and click Start or Start many. Your masternode will be registered with the system, for the masternode to pick it up.

Once your masternode picked up its registration, it will start doing its work and start pinging the system to prove it's running. It's this pinging that will keep your masternode alive in the masternode list.

If you get an error, like 'could not allocate vin', see the FAQ section.

6. Check if the masternode is really running

To check if your masternode is running:

In the debug log of the masternode

  • Open debug.log of the masternode;

  • Scroll all the way down to the most recent output;

  • Check the lines with CActiveMasternode:: in them. You should see this pattern:

# Masternode process was running, but not registered ('started') yet from the controlling wallet:
2017-07-04 15:46:33 CActiveMasternode::ManageStatus() - Could not find suitable coins!
2017-07-04 15:46:33 CActiveMasternode::Dseep() - Error: masternode is not in a running status
2017-07-04 15:46:33 CActiveMasternode::ManageStatus() - Error on Ping: masternode is not in a running status
2017-07-04 15:47:33 CActiveMasternode::ManageStatus() - Checking inbound connection to '{YOUR_IP:PORT}'
2017-07-04 15:47:33 CActiveMasternode::GetMasterNodeVin - Could not locate specified vin from possible list

# After starting the masternode from the controlling wallet:
2017-07-04 15:47:59 CActiveMasternode::EnableHotColdMasterNode() - Enabled! You may shut down the cold daemon.

# While it runs, it pings:
2017-07-04 15:48:33 CActiveMasternode::Dseep() - RelayMasternodeEntryPing vin = CTxIn(COutPoint({TRANSACTION_ID}, {INDEX}), scriptSig=)
2017-07-04 15:49:34 CActiveMasternode::Dseep() - RelayMasternodeEntryPing vin = CTxIn(COutPoint(({TRANSACTION_ID}, {INDEX}), scriptSig=)
2017-07-05 12:30:28 CActiveMasternode::Dseep() - RelayMasternodeEntryPing vin = CTxIn(COutPoint(({TRANSACTION_ID}, {INDEX}), scriptSig=)

Most important lines you want to see are:

  • EnableHotColdMasterNode: Enabled! You may shut down the cold daemon. This means the masternode picked up its own registration from the masternode list (including a reference to the collateral transaction).

  • RelayMasternodeEntryPing vin = CTxIn(COutPoint(({TRANSACTION_ID}, {INDEX}), scriptSig=). This means the masternode is pinging the system to prove its running. As long as it's pinging, it will keep the masternode alive in the masternode list, else it will be removed after one hour.

On the local client

  • Open the masternode list by clicking 'Masternodes' (left), 'PowerSwitch Network' (tab);

  • Find your masternode by its IP address, port, public key of the account.

  • Check the 'Active (secs)' and 'Last Seen' values of your masternode. If 'Active (secs)' shows 00m::00s, your masternode is probably not running (not pinging);

Note that this screen is quite buggy, it tends to loose track and show empty cells. Will be fixed.

If your masternode is not running or you get an error, see the Frequently Asked Questions and Errors below

7. Close your local client and celebrate!

Now that the masternode is running, you can close your local client and wallet and keep your funds secure.

Congratulations, you have an PowerSwitch masternode running! It doesn't contain any funds and it will ping the system to keep its registration alive. And most importantly: you'll receive masternode payments for really running a masternode and supporting the PowerSwitch network!

Frequently Asked Questions and Errors

FAQ 1: On the client, I get an error Failed to start masternode. Error: Could not allocate vin!?

The 'vin' is the PWS collateral. You need that to successfully register your masternode. If you get this error, you'll have to double check the payment, the masternode configuration (on the client). You could also check for locked inputs.

Check your (client) wallet isn't locked

You will get this error if your (client) wallet is locked, so first check that's not the case.

If so, you'll need to briefly unlock it to be able to register your masternodes. After registering, you can lock the wallet again (and even close the client and the pc).

Double-check your payments

If your wallet is not locked, lets go on and double check the payment.

- Click 'Help', 'Debug window', 'console' to open the console window;
- enter `masternode outputs` on the client. 

That should give you a list of all the valid payments your client can find in its wallet. You should see an entry for each masternode.

If any of your payments is missing from the output, go to FAQ 2 ("I deposited the PWS collateral, but it doesn't show up in masternode outputs").

If the transaction is there, lets go on.

Check the masternode configuration

Let's double-check the masternode registration on the client.

  • Open the 'Masternodes' menu (left)

  • Select your masternode and click 'Edit'. If this doesn't work: this is a bug in the software, open masternode.conf instead (see FAQ 4).

  • Check the transaction ID and index (last two values, both in the UI and in the file). They should be identical to the masternode outputs we just saw. The transaction ID should not have any suffix like -000 or -001 (some block explorers add that).

FAQ 2: I deposited PWS collateral, but it doesn't show up in masternode outputs!

in this case:

  • the transaction was not confirmed yet (you'll have to wait at least 10 minutes), or

  • you didn't deposit the collateral in exacly one transaction, or

  • you didn't deposit the exact amount (maybe you forgot to add extra for the transaction fee ?), or

  • you may have accidently spent some of the collateral in another transaction (see next question).

  • you deposited the collateral to another account, not managed by this wallet.

In most cases, you can simply create a new account (in the same wallet) and transfer the coins again in one transaction. It may seem silly to transfer money within your own wallet, but we will need a valid blockchain transaction to use as a collateral for the masternode.

FAQ 3: On the masternode, I get the error Could not locate specified vin from possible list. Could not find suitable coins!

This means that masternode is polling the masternode list, looking for its own registration, but cannot find that yet.

To solve this:

  • Check that the masternode keys match up (the masternode unique key (in PowerSwitch.conf) should be the same as its corresponding key on the client registration), look in the masternode screen or in the clients masternodes.conf;

  • Then start (register) the masternode from the client. Either with the start button on the masternode control screen or by running masternode start-alias {name} on the client. That will register the masternodekey and its collateral with the network. The masternode should pick that up because it recognizes a (public) key in the list that matches its own masternodekey.

  • If it still doesn't, check the port forwarding on the server (masternode) side.

If all goes well, you should see a message Enabled ! You may shut down the cold daemon and close the masternodes' debug.log file. Also in that same log file, you should then see it ping the system to keep its registration alive. In a QT client, you will see that in the PowerSwitch Network, your masternode will get an 'active (secs)' time other than '00m:00s', but that may take about 30 minutes to appear.

FAQ 4: On the client, when i click 'edit' or 'remove' masternode, nothing happens!

This seems to be a bug in the client.

Best solution for now it to edit the masternodes.conf file manually.

This file will contain 1 line for each masternode configuration. Each line contains (separated by spaces) the name, IP address + port, masternodekey, transaction id and transaction index (ususally 0 or 1):

Masternode1 MASTERNODEKEY1 transaction1 0
Masternode2 MASTERNODEKEY2 transaction2 0
Masternode3 MASTERNODEKEY3 transaction3 1
Masternode4 MASTERNODEKEY4 transaction4 0

When you're done, save the file. Don't forget to restart the client: close it by clicking 'File', 'Exit' (else it might just minimize) and then reopen it.

FAQ 5: Can I get coins out of my masternode account?

Yes, but you'll have to be very careful not to touch the PWS collateral. Crypto transactions are technically complex. So e.g. moving 95 coins from 5095 may also involve some coins from the "5000 part". And that will shut down your masternode because some of the 5000 coins were 'spent', even if there is enough left in the wallet. So when taking coins out of you masternode wallet, you will need to use Coin Control to exclude the 5000 PWS collateral from your transaction.

To enable Coin Control:

  • Click 'Settings...' (menu), 'Options...', 'Display' (tab);

  • Check 'Enable Coin Control features' checkbox;

  • Click 'OK'

In the 'Send' screen, you will now see Coin Control Features. Use the 'Inputs...' button to exclude your collateral from your transaction.

FAQ 6: My masternode stops running after one hour. Why?

If your masternode stops running after an hour, it probably wasn't running in the first place.

If the client tells you the masternode is 'running', it means that it was succesfully registered with the masternode list, but that doesn't guarantee the masternode itself is running. You might even receive masternode payments (see next question) but again, thats the result of a succesful registration, not a running masternode.

To check if you masternode is really running, follow the steps in #5 of the masternode installation guide above.

FAQ 7: I'm receiving masternode payouts. Does that prove my masternode is running?

No, it does not.

Curiously enough, you will recieve masternode payouts a soon as you register your masternode with the system from your local wallet, even if the masternode itself is not running. That will only last about an hour though, because if your masternode doesn't ping the system it's alive, it will be removed from the masternode list after one hour. It may seem like your masternode stopped running, but it probably was not running in the first place.

To check if you masternode is really running, follow the steps in #5 of the masternode installation guide above.

FAQ 8: How much PWS will I get for running a masternode?

Let's say there is N number of masternode active on PowerSwitch network. Block time is 1 minute, so you will recieve 1 masternode payout evey N minutes. Your reward depends on current block number, just check it out on official website chart.

FAQ 9: Can I run multiple masternodes on one server?

Yes, you can. But you should configure them to each have their own copy of the blockchain to work on, else they will modify the same files concurrently. You can configure each instance to use it's own data directory by using the -datadir= parameter.

Also make sure you have enough memory, you'll need about 1GB for each masternode.

And finally, masternodes can share the same IP, but each masternode should be accessible by its own unique port. Use the -port=nnnnn parameter at startup or put port=nnnnn in the PowerSwitch.conf configuration file.