Staking PotCoin

Pure Proof-of-Stake after block 500. Validators earn 1% APR on the coins they stake, plus all transaction fees on the blocks they produce.

How rewards work

PotCoin pays validators a modest 1% annual inflation as a staking subsidy, on top of the fees in each block they produce. The 420M POT supply grows slowly with every staked block; active stakers earn proportionally to the coin-age they commit.

// PoS reward = 1% APR subsidy + transaction fees
int64_t GetProofOfStakeReward(int64_t nCoinAge, int64_t nFees) {
    int64_t nSubsidy = nCoinAge * 1 * CENT * 33 / (365 * 33 + 8);   // ≈1% APR
    return nSubsidy + nFees;
}

Validators earn a baseline APR for staying online, and a bonus whenever they produce a full block. Min fee is 0.420 POT per TX.

Stake parameters

ParameterValue
Staking APR~1% annually
Minimum stake age15 minutes
Maximum stake age25 days
Coinbase maturity10 blocks
Target block time260 seconds (4m 20s)
Auto-combine threshold250 POT
Hash drift45 seconds
Clock drift allowance60 seconds

Step-by-step

  1. Fund a PotCoin address and wait for maturity

    Send POT to an address in your wallet. Coins must have at least 10 confirmations (coinbase maturity) and sit for at least 15 minutes before they're eligible to stake.

  2. Make sure your wallet is unlocked for staking

    $ potcoind walletpassphrase "your-passphrase" 99999999 true
    # the trailing `true` = unlock for staking only (cannot send TXs)
  3. Confirm staking is active

    $ potcoind getstakinginfo
    {
      "enabled": true,
      "staking": true,
      "weight": 5000,
      "netstakeweight": 25000000,
      "expectedtime": 13520
    }

    expectedtime is in seconds — the network's estimate for how long until your next stake hit.

  4. Watch for stake hits

    $ tail -f ~/.potcoin/debug.log | grep -i "CreateNewBlock\|stake hit"
  5. Stay online

    Staking only works while the daemon is running. Run it on a low-power always-on box (Pi, VPS, idle desktop). Combine with Tor if you want network privacy too.

Stake kernel

hash = SHA256d(nStakeModifier + blockFrom.nTime + txPrev.offset
              + txPrev.nTime + txPrev.vout.n + nTimeTx)

valid if: hash < bnTargetPerCoinDay × nCoinDayWeight

Where nCoinDayWeight = nValueIn × nTimeWeight / COIN / 86400. Larger and older UTXOs win blocks proportionally more often — standard PPC-style PoS.

Why 1% APR? Low enough that the 420M supply grows slowly and predictably. High enough to keep validators economically incentivised to stay online and secure the chain. Combined with the 0.420 POT min fee, long-term holders earn a reliable yield without the dilution you'd see on higher-inflation chains.