1What you are offering
A staking service is a wallet that stays online, unlocked for staking, with other people's vaults registered in it. Their coins earn block rewards into their vaults; you never hold their keys and cannot spend their coins (why). Your side is uptime and a correct addvault for each vault.
2Set up the manager node
IronDivi
Install irondivi on a machine that stays on. Create a wallet with a new recovery phrase, store the phrase in a password manager, and put a small amount of your own coins in it (optional, it helps show the node is staking at all). Start it on testnet first with --testnet. No configuration flag is needed for vaults.
Divi Core (divi-cli, Divi Desktop, BoxWallet)
Add to divi.conf:
vault=1 staking=1
Restart. Without vault=1, every addvault fails with Unable to sync TX!. Encrypt the wallet, then unlock it for staking only:
divi-cli -testnet walletpassphrase "<passphrase>" 0 true
The trailing true means "for staking only"; the wallet cannot send while unlocked this way, which is what you want on a server. Run this once after each restart. Divi Desktop does it through its unlock dialog with the staking-only box ticked.
Do not run masternode, trading or hot-wallet duties on the manager node. The only thing in it that matters is the manager key, and even that key gains an attacker nothing but the ability to stake for your clients.
3Give each client one address
One manager address can serve every client; the encodings differ by the owner half. But a separate address per client makes getcoinavailability true readable and lets you remove one client cleanly. Generate them on the manager:
irondivi-cli --testnet getnewaddress client-a divi-cli -testnet getnewaddress client-a
Send the client the address. That is all they need. Never ask for anything else.
4Onboard a client
- Client funds a vault
theirOwner:yourManager(fund a vault) and sends you the txid. - Check it in Explorer 2.0: the output type is
vaultand the second address is yours. - Register it:
irondivi-cli --testnet addvault "theirOwner:yourManager" <txid> divi-cli -testnet addvault "theirOwner:yourManager" <txid>
- Confirm:
irondivi-cli --testnet getstakingstatus { "staking status text": "Staking Active", "staking_balance": 250.0, "walletunlocked": true, … } divi-cli -testnet getstakingstatus { "staking status" : true, "staking_balance" : 159.99995040, … }
Tell the client the staking balance went up by their amount. That is the proof they are being staked. Those two outputs are from our testnet managers after adding a 200-coin vault (IronDivi) and two vaults of 100 and 50 (Divi Core).
Further deposits into the same encoding: on Divi Core they are picked up automatically; on IronDivi run addvault again with each new txid.
5Monitor
getstakingstatusevery few minutes. Ifwalletunlockedturns false (restart, crash) you are earning nothing for anyone.getcoinavailability truelists every vault and its txids. If a vault's value drops to zero the owner reclaimed; runremovevault.- Watch each vault in Explorer 2.0; a
spentTxIdon the vault output means the owner moved it. - The Divi testnet and mainnet both use about one block a minute. A single 200-coin vault on a chain with millions staked will mint rarely; the client should judge you by uptime, not by one week's rewards. The staking returns tutorial gives expectations.
We did not wait for one of our test vaults to mint a block, so "the reward lands in the vault" on this page comes from the coinstake rules in the source, not from a block we watched.
6Getting paid
The chain pays the vault owner, not the manager. There is no fee field in the script. Options people use:
- A flat monthly payment the client sends you normally.
- The client sends you a percentage of what the vault earned, which both of you can read from the explorer.
- No fee, as a service to the network: more nodes staking is good for Divi.
Whatever you choose, say it in writing before the first vault is funded, and note that you cannot deduct it yourself.
7When a client leaves
The client reclaims their coins (reclaim) or moves to another manager (move). Nothing is required from you, but tidy up:
irondivi-cli --testnet removevault "theirOwner:yourManager" <txid> divi-cli -testnet removevault "theirOwner:yourManager"
On IronDivi, remove the vault promptly once its output is spent; leaving a spent output registered can make the wallet try to stake with it and block your own sends (Only signed 0 of 1 inputs).
8Be honest about what you cannot do
- You cannot return a client's coins. Only they can, with their owner key. If they lose it, the coins are gone, and you cannot help.
- You cannot guarantee a reward. Staking is a lottery weighted by amount and age.
- You cannot move a client to a new address or a new node for them. A move needs a new
fundvaultsigned by their owner key.
Questions? Ask the Divi chatbot.