Qtum Proof of Stake Mining


This article about Qtum Proof-of-Stake (PoS) mining, was originally posted on September 15, 2017, and used the Qtum Skynet (testnet) and a simulation of staking rewards (using a Python script) to explore optimum staking strategy. Skynet and the simulation work identical for the Mainnet Ignition network, with the same staking recommendations: for best returns, fill your wallet with small transactions (about 250 — 400 QTUM each), this is more important if the network weight (the sum of all the QTUM available for staking) is less than 20%. Network weight is the most important factor in determining your return. For 20 million coins available for staking (20% of the total population) expected returns are approximately 5.3 % per year, but there will be wide variation in individual results.

I am an independent researcher, not affiliated with the Qtum Team, but I would like to acknowledge and have great appreciation for their advice and help along the way.


Network weight is the biggest factor to determine your return from PoS mining, and there has been some discussion of network weight in the QtumNexus Slack, and on the BlackCoin Slack. BlackCoin is interesting because it has a similar PoS version 3.0 and a similar wallet. The BlackCoin network weight fluctuates hourly between approximately 10 to 20%, and Qtum mainnet results may be different.

Staking with the BlackCoin Lore wallet; network weight shown is 17.4%

Because of how the underlying probability works, PoS returns scale up and down inversely with network weight, and based the simulation, some typical results are given below [1].

Network Weight vs. Annual Return

For Qtum with a total population at Mainnet launch of 100,000,000 coins, a network weight of 10,000,000 would be 10%.

Qtum PoS Staking in Action

Based on my observations for a few block rewards received on Skynet using the Qtum Core wallet, Qtum PoS block rewards work as follows.

1. The probability of receiving a block reward depends only on the quantity of mature coins (“your weight”) in the wallet divided by the network weight. Coins must be in the wallet for 500 confirmations (blocks) to become mature.

2. When the wallet receives a block award, it will receive an initial payment of 0.4 QTUM. That initial payment, plus one or more other transactions (UTXOs) from the wallet will be “staked” for the next 501 blocks, which means that amount of QTUM will be removed from the “your weight” quantity.

This screen shot shows a stake in progress, where the wallet selected the two older transactions received by the wallet (16 QTUM + 500 QTUM, these would be shown on the Transactions page) for staking plus the most recent transaction of 0.4 QTUM, the initial block reward payment received at 14:45, the start of this reward period.

3. In selecting the transactions for staking, the wallet seems to favor older transactions but will jump around in your list of available transactions. The selected transaction will be split in half through the staking process if the transaction is greater than 200 QTUM. So here is something you don’t want to do: send your entire inventory of QTUM to your wallet as a single transaction, say for 10,000 QTUM. Why not? Because when you get a block reward, the wallet will stake that entire transaction of 10,000, and your wallet weight will drop to zero for the next 500 blocks, meaning no possibility of getting another block reward during that time (you can absolutely win overlapping block rewards as long as you have mature coins staking). More on this issue of stake size below.

4. 501 blocks after the initial 0.4 QTUM is received by the wallet, that 0.4 QTUM matures, the stake amount is returned to “your weight” and you are back to full strength for “your weight”. But what about the rest of the 4.0 QTUM block reward? It is coming next.

5. For the following 9 blocks, the wallet will receive a payment of 0.4 QTUM in each block, sent from other wallets receiving their own block rewards. In all, there will be 10 payments of 0.4 QTUM, and these last 9 payments will mature after an additional 501 blocks.

If you want to see the whole sequence, here it is block-by-block; otherwise skip ahead for the most important part of this paper.

In the example below, the wallet contains 1,200 mature QTUM in three transactions of 400 QTUM each. When the wallet receives the reward at block 1000, the wallet selects one of the transactions for 400.0 QTUM, plus the initial reward of 0.4 QTUM (just received) for a total stake of 400.4 QTUM, and “My Weight” drops by 400.0 QTUM for the next 501 blocks. Note there are two skips in the block sequence shown. Payments for the rest of the 4.0 QTUM block reward start at block 1501, and these payments mature starting at block 2001.

How Big Should My Stake Be?

If you have made it this far, here is the most important thing to know about staking for Qtum: keep your transactions small. To calculate the preferred stake size, I set the simulator (a Python script that simulates the random rewards and staking mechanics) to look at 100 years of annual results for various stake sizes, “Your Weight” and network weight, and choose the stake size which gave the highest return. There was a bit of variation in the results, but typical best stake sizes were from 150 to 450 QTUM.

Looking at this result another way, comparing a stake size of 500 to 5,000, the return is approximately 10% lower for the larger stake size at a network weight of 20,000,000 and about 18% lower at a network weight of 10,000,000.

Good luck and happy staking,

Jackson (JB395)

[1] Assumes 720 blocks a day or 1,051,200 QTUM in block rewards per year.