Stake MOTA for 4.20% APR

MotaCoin is pure Proof-of-Stake after the PoW cutoff block. There's no mining hardware, no staking pool, no validator lockup — you hold mainchain MOTA, unlock your wallet for staking, and the daemon participates in block validation for you. Rewards compound into the same wallet at 4.20% annual, paid per-stake.

How PoS works on MotaCoin

MotaCoin's consensus is a coin-age weighted Proof-of-Stake, inherited from the Peercoin lineage and adapted with X13 hashing. Each unspent transaction output (UTXO) accumulates "coin age" the longer it sits unspent. When the daemon finds a valid stake kernel — a hash below the current target — it signs a new block with the private key of that UTXO, claiming the stake reward.

ParameterValue
ConsensusPure Proof-of-Stake (post-cutoff)
Stake APR4.20%
Block time4m 20s (260 seconds)
Min stake age30 confirmations (~2 hours 10 min) before a UTXO can stake
Max stake age90 days — coin age stops accumulating past this
Stake kernelX13 hash of (prev_stake, prev_time, stake_utxo_hash, out_index, tx_time, block_time)
LockupNone — you can spend staked coins anytime

Requirements

Step-by-step

  1. Check your wallet balance

    $ motacoin-cli getinfo
    {
      "version": 2000100,
      "balance": 1250.00000000,
      "stake": 0.00000000,
      "blocks": 184520,
      "connections": 8,
      "staking": false,
      "unlocked_until": 0,
      ...
    }

    If connections is 0, you're not synced — wait for the daemon to catch up before continuing. If balance is 0, bridge some SPL MOTA in from Solana first — see the bridge tutorial.

  2. Encrypt the wallet (first-time setup only)

    If you haven't encrypted the wallet yet, do it now — an unencrypted wallet has zero protection if your machine is compromised:

    $ motacoin-cli encryptwallet "your-strong-passphrase-here"
    wallet encrypted; MotaCoin server stopping, restart to run with encrypted wallet.
    $ motacoind -daemon
    Back up wallet.dat before and after encrypting Copy ~/.motacoin/wallet.dat to an offline medium (USB stick, encrypted archive). If you lose your passphrase, the funds are unrecoverable.
  3. Unlock the wallet for staking only

    The magic flag is the trailing true — it unlocks the wallet for signing stake blocks only, not for spending. If your machine is compromised while unlocked like this, the attacker can't drain your funds.

    $ motacoin-cli walletpassphrase "your-strong-passphrase-here" 99999999 true
    # The "99999999" is the unlock duration in seconds (~3 years) — effectively forever.
    # The trailing "true" means stake-only; the wallet cannot send coins while unlocked this way.
  4. Verify staking started

    $ motacoin-cli getinfo | grep staking
      "staking": true,
    $ motacoin-cli getstakinginfo
    {
      "enabled": true,
      "staking": true,
      "errors": "",
      "currentblocksize": 1000,
      "currentblocktx": 0,
      "pooledtx": 0,
      "difficulty": 142.857,
      "search-interval": 2581,
      "weight": 1250000000,
      "netstakeweight": 987654321098,
      "expectedtime": 287520
    }

    weight is your stake weight in satoshis — roughly balance × coin-age-seconds. expectedtime (seconds) is a rough ETA to your next reward based on your share of netstakeweight. For 1,250 MOTA at current difficulty, expect a stake every few days; for 10,000+ MOTA, expect one most days.

  5. Configure auto-staking on daemon start

    So you don't have to re-run walletpassphrase every time you restart the daemon, create a stake config file. This is optional but strongly recommended for always-on machines.

    $ cat > ~/.motacoin/motacoin.conf << 'EOF'
    daemon=1
    server=1
    rpcuser=mota
    rpcpassword=change-this-to-something-random
    rpcallowip=127.0.0.1
    staking=1
    reservebalance=0
    EOF

    After this you still need to run walletpassphrase once per daemon start, but auto-unlock helpers (systemd secrets, keyring) can automate that too. See the headless staking section of the desktop wallet tutorial.

  6. Watch for your first stake reward

    Stake rewards arrive as coinstake transactions, tagged in your wallet transaction list:

    $ motacoin-cli listtransactions "*" 10 | jq '.[] | select(.category=="stake")'
    {
      "category": "stake",
      "amount": 0.14520000,
      "confirmations": 12,
      "txid": "e2f1a4b8...",
      "time": 1712345678,
      "generated": true,
      ...
    }

    The reward for each stake is approximately (staked_amount × 4.20%) / (365 × stakes_per_year). For 1,000 MOTA staked, expect ~0.115 MOTA per stake event on average.

Headless / always-on setup (Raspberry Pi)

For a long-term stake rig, a Raspberry Pi 4 or 5 with an SSD is the best option — low power, silent, and the chain fits comfortably on a 128 GB drive.

# On the Pi, after motacoind is installed (see desktop-wallet.html)
$ sudo tee /etc/systemd/system/motacoin.service > /dev/null << 'EOF'
[Unit]
Description=MotaCoin daemon
After=network.target

[Service]
Type=forking
User=pi
WorkingDirectory=/home/pi/.motacoin
ExecStart=/usr/local/bin/motacoind -daemon
ExecStop=/usr/local/bin/motacoin-cli stop
Restart=always
RestartSec=10
TimeoutStopSec=300

[Install]
WantedBy=multi-user.target
EOF

$ sudo systemctl enable --now motacoin
$ motacoin-cli walletpassphrase "YOUR_PASSPHRASE" 99999999 true

For auto-unlock on boot, store the passphrase in a root-owned systemd credential file and use an ExecStartPost hook to run walletpassphrase. This is an acceptable trade-off for a dedicated stake rig that only holds staking funds.

Common issues

"Staking shows false even after unlocking"

"My rewards are smaller than 4.20% APR"

"I want to spend some of my staking coins"

Run motacoin-cli walletlock to re-lock the wallet, then motacoin-cli walletpassphrase "PASSPHRASE" 60 false to unlock for spending for 60 seconds. Send your tx, then re-unlock for staking with the true flag. The daemon auto-resumes staking.

Stake coins are never actually locked Despite the name, "stake-only unlock" does NOT lock your coins on-chain. Any UTXO in your wallet is spendable the moment you unlock for spending. The flag only restricts what the daemon signs while unlocked.