* 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>
79 lines
2.1 KiB
Markdown
79 lines
2.1 KiB
Markdown
---
|
|
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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
solana-stake-accounts count <BASE_PUBKEY>
|
|
```
|
|
|
|
### Get stake account balances
|
|
|
|
Sum the balance of derived stake accounts:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
solana-stake-accounts addresses <BASE_PUBKEY> --num-accounts <NUMBER>
|
|
```
|
|
|
|
### Set new authorities
|
|
|
|
Set new authorities on each derived stake account:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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>
|
|
```
|