Developer Documentation
Original Github Page
Cold staking requires two PIVX wallets: one to hold the funds (this can be also a hardware wallet and does not need to be always online) and another onethe hot-nodeto do the staking (this needs to be online 24/7).
In order to setup cold-stakingyou need to perform the following steps (either with the command-line interface CLI or with the graphical interface GUI):
- Generate a “staking address” from the staker wallet (if you don’t have one already).
- Generate a “owner address” from the owner wallet (if you don’t have one already).
- Create a “cold stake delegation”.
- Whitelist the owner address on your staker (if you haven’t already).
1) Generate a “staking address” from the staker wallet
Staking addresses must be owned by the staker wallet (the one that is online 24/7 and holds no funds).
USE GUIUse Command Line Innerface (CLI)
To get a new staking addressfrom the staker walletdo:
pivx-cli getnewstakingaddress
You don’t need to create a new staking address for each delegation. You can reuse your previously generated addresses. To list themdo:
pivx-cli liststakingaddresses
to create a staking addressafter enabling the cold staking tab (clicking on the topbar icon)select Staker–> “Create cold stake address”:
Insert any amounta label for the addressoptionally a descriptionand click “Generate”:
The new address gets visualizedalong with a QR-code.
You can either copy the address or the URL to paste it during the delegation (see point n.3).
You don’t need to create a new staking address for each delegation. You can reuse your previously generated addresses. To view them click “My staking addresses”:
2) Generate an “owner address” from the owner wallet
Owner addresses are regular PIVX addresses. Their private key can be used to redeem delegated coins. Creating an owner address is akin to creating a receiving address. They must belong to the owner wallet (the one that is offline and has ownership of the coins). The owner’s wallet can also be a hardware wallet device or a paper wallet.
GUICLI
To get a new owner addressfrom the owner wallet do:
pivx-cli getnewaddress
To get a new owner addresssimply go to the “Receive” tab and click “Generate address”:
You don’t need to create a new owner address for each delegation. You can reuse your previously generated addresses.
3) Create a “cold stake delegation”
This is the main step.
To delegate coins you need to send a special “delegation contract” transaction.
GUICLI
Specify the staker addressthe amount to delegate and (optionally) the owner address:
pivx-cli delegatestake "S1t2a3kab9c8c71VA78xxxy4MxZg6vgeS6" 1000 "DMJRSsuU9zfyrvxVaAEFQqK4MxZg34fk"
If the owner address is omitteda new address is automatically generated from the wallet.
If you want to delegate to an external address (using an owner address not present in the wallete.g. one from a hardware device)then you need to add true at the end of the command (check pivx-cli help delegatestake for more info).
From the coldstaking widgetclick “delegation”.
As with the regular sending operationyou must select an amount and either let the wallet pick the coinsor select them with coin control.
Insert the staker address (or select it from the list of previously used ones)a descriptionand (optionally) a owner address (againif not providedit will be generated automatically).
Then click “Delegate”.
4) Whitelist the owner address on your staker
In order to stake delegationsthe owner address must be whitelisted by the staker.
GUICLI
To whitelist an address (<owneraddress>)from the staker wallet do:
pivx-cli delegatoradd <ownerAddress>
Once a delegator address is whitelistedit remains soeven for successive delegations.
To remove a particular address from the whitelistdo
pivx-cli delegatorremove <ownerAddress>
To view the current whitelisted addressesdo
pivx-cli listdelegators
The delegation is visible in the “Staker” tab of the coldstaking widget:
To whitelist the delegatorclick on its row and select “Stake” from the contextual menu
To remove the delegator from the whitelistselect “Blacklist” from the contextual menu:
Additional RPC functions
These are other JSON-RPC calls accessible via console or pivx-cli.
Check the help for more info on each one.
- getcoldstakingbalance
- getdelegatedbalance
- listcoldutxos
VIDEO WALK-THROUGH BY FURSZY