Cold Staking
Cold Staking Guide

A SSS Cold Staking How To

Cold staking requires two SSS wallets: one to hold the funds and another one, the hot-node, to do the staking (which needs to be online 24/7).
In order to setup cold-staking, you need to perform the following steps (either with the command-line interface CLI or with the graphical interface GUI):
    1.
    Generate a “staking address” from the staker wallet (if you don’t have one already).
    2.
    Generate a “owner address” from the owner wallet (if you don’t have one already).
    3.
    Create a “cold stake delegation”.
    4.
    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 CLI To get a new staking address, from the staker wallet, type: sssolutions-cli getnewstakingaddress
You don’t need to create a new staking address for each delegation. You can reuse your previously generated addresses. To list them, do: sssolutions-cli liststakingaddresses
USE GUI To create a staking address, after enabling the cold staking tab (clicking on the topbar icon), select Staker–> “Create cold stake address”:
Insert any amount, a label for the address, optionally a description, and click “Generate”:
The new address gets visualized.
The new address gets visualized, along 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 SSS 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).
CLI To get a new owner address, from the owner wallet do: sssolutions-cli getnewaddress
GUI To get a new owner address, simply 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.
CLI Specify the staker address, the amount to delegate and (optionally) the owner address: SPdrHwPaSttoM4kgCPmdnpjizWSHMHXJJB
sssolutions-cli delegatestake "SPdrHwPaSttoM4kgCPmdnpjizWSHMHXJJB" 1000 "CXBYM5cz4933arcwsJGX9DLPqwaz"
If the owner address is omitted, a 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 wallet), then you need to add true at the end of the command (check sssolutions-cli help delegatestake for more info).
GUI From the coldstaking widget, click “delegation”. As with the regular sending operation, you must select an amount and either let the wallet pick the coins, or select them with coin control. Insert the staker address (or select it from the list of previously used ones), a description, and (optionally) a owner address (again, if not provided, it will be generated automatically). Then click “Delegate”.

4) Whitelist the owner address on your staker

In order to stake delegations, the owner address must be whitelisted by the staker.
CLI To whitelist an address (<owneraddress>), from the staker wallet do: sssolutions-cli delegatoradd <ownerAddress>
Once a delegator address is whitelisted, it remains so, even for successive delegations. To remove a particular address from the whitelist, do sssolutions-cli delegatorremove <ownerAddress>
To view the current whitelisted addresses, do sssolutions-cli listdelegators
GUI The delegation is visible in the “Staker” tab of the coldstaking widget: To whitelist the delegator, click on its row and select “Stake” from the contextual menu
The command line interface has been enriched with the functions required to access the feature. - Useful Commands
method
description
used by
getnewstakingaddress
create staking addresses
cold-staker
delegatestake
create stake delegation transactions
coin-owner
getcoldbalance / getdelegatedbalance
retrieve balances (cold and delegated)
both
delegatoradd
whitelist a delegator (owner) address
cold-staker
delegatorremove
undo the whitelisting of a delegator address
cold-staker
Last modified 1yr ago
Copy link