Files
solana/docs/src/cli/manage-stake-accounts.md
Dan Albert ffeac298a2 Move from gitbook to docusaurus, build docs in Travis CI (#10970)
* fix: ignore unknown fields in more RPC responses

* Remove mdbook infrastructure

* Delete gitattributes and other theme related items

Move all docs to /docs folder to support Docusaurus

* all docs need to be moved to /docs

* can be changed in the future

Add Docusaurus infrastructure

* initialize docusaurus repo

Remove trailing whitespace, add support for eslint

Change Docusaurus configuration to support `src`

* No need to rename the folder! Change a setting and we're all good to
go.

* Fixing rebase items

* Remove unneccessary markdown file, fix type

* Some fonts are hard to read. Others, not so much. Rubik, you've been
sidelined. Roboto, into the limelight!

* As much as we all love tutorials, I think we all can navigate around a
markdown file. Say goodbye, `mdx.md`.

* Setup deployment infrastructure

* Move docs job from buildkite to travic

* Fix travis config

* Add vercel token to travis config

* Only deploy docs after merge

* Docker rust env

* Revert "Docker rust env"

This reverts commit f84bc208e807aab1c0d97c7588bbfada1fedfa7c.

* Build CLI usage from docker

* Pacify shellcheck

* Run job on PR and new commits for publication

* Update README

* Fix svg image building

* shellcheck

Co-authored-by: Michael Vines <mvines@gmail.com>
Co-authored-by: Ryan Shea <rmshea@users.noreply.github.com>
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-07-11 05:11:07 +00:00

2.1 KiB

title
title
Manage Stake Accounts

If you want to delegate stake to many different validators, you will need to create a separate stake account for each. If you follow the convention of creating the first stake account at seed "0", the second at "1", the third at "2", and so on, then the solana-stake-accounts tool will allow you to operate on all accounts with single invocations. You can use it to sum up the balances of all accounts, move accounts to a new wallet, or set new authorities.

Usage

Create a stake account

Create and fund a derived stake account at the stake authority public key:

solana-stake-accounts new <FUNDING_KEYPAIR> <BASE_KEYPAIR> <AMOUNT> \
    --stake-authority <PUBKEY> --withdraw-authority <PUBKEY> \
    --fee-payer <KEYPAIR>

Count accounts

Count the number of derived accounts:

solana-stake-accounts count <BASE_PUBKEY>

Get stake account balances

Sum the balance of derived stake accounts:

solana-stake-accounts balance <BASE_PUBKEY> --num-accounts <NUMBER>

Get stake account addresses

List the address of each stake account derived from the given public key:

solana-stake-accounts addresses <BASE_PUBKEY> --num-accounts <NUMBER>

Set new authorities

Set new authorities on each derived stake account:

solana-stake-accounts authorize <BASE_PUBKEY> \
    --stake-authority <KEYPAIR> --withdraw-authority <KEYPAIR> \
    --new-stake-authority <PUBKEY> --new-withdraw-authority <PUBKEY> \
    --num-accounts <NUMBER> --fee-payer <KEYPAIR>

Relocate stake accounts

Relocate stake accounts:

solana-stake-accounts rebase <BASE_PUBKEY> <NEW_BASE_KEYPAIR> \
    --stake-authority <KEYPAIR> --num-accounts <NUMBER> \
    --fee-payer <KEYPAIR>

To atomically rebase and authorize each stake account, use the 'move' command:

solana-stake-accounts move <BASE_PUBKEY> <NEW_BASE_KEYPAIR> \
    --stake-authority <KEYPAIR> --withdraw-authority <KEYPAIR> \
    --new-stake-authority <PUBKEY> --new-withdraw-authority <PUBKEY> \
    --num-accounts <NUMBER> --fee-payer <KEYPAIR>