Solana transfer and staking SOL. Guide

Víctor | melea
Jul 5, 2020 · 11 min read

Solana offers us a tool that is easy to install and use on Mac / Linux / Windows

Spanish here:

The Solana Command Line Tool Suite
melea offers the validation service you are looking for

In this quick guide, we are going to install it and execute transactions on the Solana Blockchain as

  • Create accounts
  • Send and received Sol
  • Do Staking AkA delegate SOL tokens to some validators and get rewards for secured the Solana Blockchain.

Install the Solana Command Line Tool Suite

There are multiple ways to install the Solana tools on your computer depending on your preferred workflow:

  • Use Solana’s Install Tool (Simplest option)
  • Download Prebuilt Binaries
  • Build from Source ❤

NOTE: The version for the mainnet network aka beta-mainnet is v1.1.18, if you want to send real SOL tokens to exchanges like Binance or send them to your account after creating it with solana-cli; This is the version you are looking for. I will update the guide when a new version comes out in the same way that the commands will be updated if necessary.

Use Solana’s Install Tool

MacOS & Linux

  • Open your favorite Terminal application
  • Install the Solana release v1.1.18 on your machine by running:
$ curl -sSf | sh -s — v1.1.18

The following output indicates a successful install:

looking for latest releasedownloading v1.1.18 installerConfiguration: /home/solana/.config/solana/install/config.ymlActive release directory: /home/solana/.local/share/solana/install/active_release* Release version: v1.1.18* Release URL: successful
  • Confirm you have the desired version of solana installed by entering:
$ ~/solana/target/release/./solana --version
solana-cli 1.2.8


  • Open a Command Prompt (cmd.exe) as an Administrator

Search for Command Prompt in the Windows search bar. When the Command
Prompt app appears, right-click and select “Open as Administrator”.
If you are prompted by a pop-up window asking “Do you want to allow this app to make changes to your device?”, click Yes.

  • Copy and paste the following command, then press Enter to download the Solana installer into a temporary directory:
$ curl — output C:\solana-install-tmp\solana-install-init.exe — create-dirs
  • Copy and paste the following command, then press Enter to install the latest version of Solana. If you see a security pop-up by your system, please select to allow the program to run.
$ C:\solana-install-tmp\solana-install-init.exe v1.1.18
  • When the installer is finished, press Enter.
  • Close the command prompt window and re-open a new command prompt window like a normal user

Search for “Command Prompt” in the search bar, then left-click on the Command Prompt app icon (no need to run as Administrator)

  • Confirm you have the desired version of solana installed by entering:
$ solana --version

solana-cli 1.2.8

Build it from the source

We clone it with git we check our mainnet version and install it

$ git clone && cd solana && git checkout v1.1.18 && cargo build --release
  • Confirm that you have the desired version of solana installed by entering:
$ ~/solana/target/release/./solana --version
solana-cli 1.2.8 devbuild

You can view the list of all possible commands by running:

$ solana --help
$ ~/solana/target/release/./solana --help

Create Keys AkA accounts

Solana accounts can be created aKa generated in three ways with solana-cli:

  • Paper wallet

A paper wallet is a collection of seed phrases written on paper. A seed phrase is some number of words (typically 12 or 24) that can be used to regenerate a keypair on demand.

  • File System Wallet

The same as the paper wallet but save a file in your system to use the account without having to write the seed every time.

  • Hardware wallet

A hardware wallet is a small handheld device that stores keypairs and provides some interface for signing transactions.

This document describes how to create and use a paper wallet with the Solana CLI tools.

We do not intend to advise on how to securely create or manage paper wallets. Please research the security concerns carefully.

Paper wallet

In a paper wallet, the keypair is securely derived from the seed words and optional passphrase you entered when the wallet was created. To use a paper wallet keypair anywhere the <KEYPAIR> is needed, enter the word ASK and the program will prompt you to enter your seed words when you run the command.

Create or generate a PUBKEY without saving a copy of it in the system.

$ solana-keygen new --no-outfile
Generating a new keypair
For added security, enter a passphrase (empty for no passphrase):
pubkey: 3s3MXmZtZD5QXdiKZa3RQYx6bxCv9zYVbVVjyXefUuXV
Save this seed phrase to recover your new keypair:
seed post moment crucial deliver spice sketch vapor almost announce balance typical

To display the Wallet address (also known as the keypair’s pubkey)

$ solana-keygen pubkey ASK[pubkey recovery] seed phrase: <enter seed>
[pubkey recovery] If this seed phrase has an associated passphrase, enter it now. Otherwise, press ENTER to continue:

NOTE: If create the Paper Wallet we must keep at all times “seed phrase” the security words that are associated with your KEY, if you lose these words, you lose your KEY and there is no way that you can recover it and if you have SOL in this counts you will lose them.

File System Wallet

It is generated in the same way as the previous one but saving a file on your system with PUBKEY, you must also save the security words to recover it or in case of losing the file saved on the system.

Create or generate a PUBKEY

$ solana-keygen newGenerating a new keypair
For added security, enter a passphrase (empty for no passphrase):
Wrote new keypair to /home/melea/.config/solana/id.json
pubkey: 778zgx6UakfDvSNBsyLXWHvfytPp9xaBjSZFyddhtUEL
Save this seed phrase to recover your new keypair:
cliff hood cotton entire pepper canal nerve survey rule oblige inquiry enact

To display the Wallet address CMD + PATH

$ solana-keygen pubkey $HOME/.config/solana/id.json778zgx6UakfDvSNBsyLXWHvfytPp9xaBjSZFyddhtUEL

NOTE: To create a second account you must enter a new name to create this file on your system.

$ solana-keygen newRefusing to overwrite /home/melea/.config/solana/id.json without --force flag

Here we want to create new accounts and not delete the first one created, that is why we will assign names and routes to those accounts.

Create an account called sol_wallet_01.json and save the file in the same location as the first $HOME /.config /solana /

$ solana-keygen new -o $HOME/.config/solana/sol_wallet_01.jsonGenerating a new keypair
For added security, enter a passphrase (empty for no passphrase):
Wrote new keypair to /home/melea/.config/solana/sol_wallet_01.json
pubkey: BZ9vascgd5h17HgMfoFkPQf4RkBQM2vjkt52F4R9f8C8
Save this seed phrase to recover your new keypair:
setup rigid eager rich movie bunker viable annual born suit dragon tilt

To display the Wallet address indicate the new path and the file

$ solana-keygen pubkey $HOME/.config/solana/sol_wallet_01.jsonBZ9vascgd5h17HgMfoFkPQf4RkBQM2vjkt52F4R9f8C8

To create additional accounts you just have to follow the previous steps indicating a name for the different wallet example sol_wallet_02.json you can call the files as you like and the paths.

Hardware wallet

If you chose a hardware wallet, use your keypair URL, such as




$ ~/solana/target/release/./solana-keygen pubkey usb://ledger?key=1

NOTE: As you already know, the ledger already has the accounts associated internally, so don’t create them, you just ask them to show you or work with that account.

Great, the stage of creating KEYS is finished, if you want to see more you can check the official docs.solana.

Transfer, send and receive SOL tokens

Send SOL from exchanges like Binance or other exchanges to your previously created account.

To create the account you do not need to have an internet connection, for operations such as sending, viewing your balance, Staking, and others you need to send the transaction via the internet to a node that is trusted and that is operational via RPC.

Solana offers this node:

RPC URL for Mainnet Beta:

To configure it on your host

solana config set --url

You don’t need to sync the network either, you just need to point your TX to this node for them to work on the main network.

I am going to buy SOL tokens in Binance and send them to the account I have previously created.

First I check the PUBKEY to make sure it’s there, remember to use your path and file names

$ solana-keygen pubkey ~/solana_key/sol_wallet_01.json2WtRGn3U2nyqrijpLjrF9xfP66TPaVUNc8pD6hVBiP82

This will be the account to receive the SOL tokens, point to the RPC de Solana and check the balance before sending anything.

$ solana config set --url$ solana balance 2WtRGn3U2nyqrijpLjrF9xfP66TPaVUNc8pD6hVBiP82

or I can invoke the account with the path

$ solana balance ~/solana_key/sol_wallet_01.json

I can see the balance is 0, now I am going to send a small amount of SOL from Binance to this account first to make sure everything is correct.

After sending it you can see that you have received it in the Solana explorer

You can also see it in your system

$ solana balance 2WtRGn3U2nyqrijpLjrF9xfP66TPaVUNc8pD6hVBiP82

Once you have trusted your skills and verified that they are correct, you can send more tokens to that address to make a transfer and a delegation, to finally finish this guide. ;)

I have two accounts in my system, let’s check the balance

$ solana balance 2WtRGn3U2nyqrijpLjrF9xfP66TPaVUNc8pD6hVBiP82
146.82 SOL
$ solana balance usb://ledger?key=2

We transfer from the system account to the account in ledger # 2

solana transfer --from <KEYPAIR> <RECIPIENT_ACCOUNT_ADDRESS> <AMOUNT> --fee-payer <KEYPAIR>


$ solana transfer --from ~/solana_key/sol_wallet_01.json usb://ledger?key=2 145.81999 --fee-payer ~/solana_key/sol_wallet_01.jsonSignature: 4bkjHKH9muRJL5ksHPV6MwVVuxFZDVDWu3TED5MmPqQbTmv5omnHdcMgm6QseWfvSmGjrdUkUMJ5ibKnHs6isBCh

Can confirm the TX

$ solana confirm -v 4bkjHKH9muRJL5ksHPV6MwVVuxFZDVDWu3TED5MmPqQbTmv5omnHdcMgm6QseWfvSmGjrdUkUMJ5ibKnHs6isBCh
solana confirm -v

Staking on Solana

Staking your SOL tokens on Solana is the best way you can help secure the world’s highest-performing blockchain network, and earn rewards for doing so! Inflation and network rewards are NOT presently enabled on Solana’s Mainnet Beta network but in the future, they will be.

Solana is a Proof-of-Stake (PoS) network with delegations, which means that anyone who holds SOL tokens can choose to delegate some of their SOL to one or more validators, who process transactions and run the network.

Create Stake account

To delegate stake, you will need to transfer some tokens into a stake account.

To create an stake account, you will need a pubkey. Its public key will be used as the stake account address. No need for a password or encryption here; this keypair will be discarded right after creating the stake account.

There can be up to 4 pubkeys aka keypairs involved to create a stake account, or just 2, depends of you.

  • Keypairs with Sol coins
  • Keypairs to deposit the SOL tokens when creating the Stake Account
  • Keypairs to be the Stake Authority
  • Keypairs to be the Withdrawal Authority

In practice there are three accounts but only two can carry out operations

Now, create a stake account:

solana create-stake-account --from <KEYPAIR> stake-account.json <AMOUNT> -- stake-authority <KEYPAIR> --withdraw-authority <KEYPAIR> --fee-payer <KEYPAIR>


$ solana create-stake-account --from usb://ledger?key=2 ~/solana_key/sol_wallet_02.json 145.50 --stake-authority usb://ledger?key=3 --withdraw-authority usb://ledger?key=4 --fee-payer usb://ledger?key=2

View the new stake account with the solana stake-account command:

solana stake-account <STAKE_ACCOUNT_ADDRESS>

Delegate Stake

ok, now that we have created the stake account we must assign that stake account to a validator to start a delegation with solana delegate-stake

To see a list of the current validators to which I can delegate I can do it via solana-cli.

To delegate your stake to a validator, you will need its vote account address. Find it by querying the cluster for the list of all validators and their vote accounts with the solana validators command:

$ solana validators
solana validators

Another way to see Validators in a fashionable way is SolanaBeach

melea Solana Validator

Here we are going to delegate the melea Validator

NOTE: You can only delegate to a single Validator, with a single stake account, to delegate to more than one validator you will need to create more stake accounts or split one account into multiple accounts each with the balances you want. (We will explain this in another guide, but you can consult the official documentation.)

To delegate the validator that interests you, must take note and copy the VOTE ACCOUNT for that validator


Copy and paste in the command the melea Validator Vote acccount: GvZEwtCHZ7YtCkQCaLRVEXsyVvQkRDhJhQgB6akPme1e

Now delegate the stake account to this vote account.

The control of the tokens is yours at all times, you put them to stake, but you re not giving them to others.

solana delegate-stake --stake-authority <KEYPAIR> <STAKE_ACCOUNT_ADDRESS> <VOTE_ACCOUNT_ADDRESS> --fee-payer <KEYPAIR>


$ solana delegate-stake --stake-authority usb://ledger?key=3 DYW3vsdV4SVJDA6szS2RWJdU7HMgA4CR9JWbBU7S2Mor GvZEwtCHZ7YtCkQCaLRVEXsyVvQkRDhJhQgB6akPme1e --fee-payer usb://ledger?key=2

After delegating stake, use solana stake-account to observe the changes to the stake account:

solana stake-account <STAKE_ACCOUNT_ADDRESS>


$ solana stake-account DYW3vsdV4SVJDA6szS2RWJdU7HMgA4CR9JWbBU7S2MorTotal Stake: 145.5 SOL
Delegated Stake: 145.49771712 SOL
Delegated Vote Account Address: GvZEwtCHZ7YtCkQCaLRVEXsyVvQkRDhJhQgB6akPme1e
Stake activates starting from epoch: 47
Stake Authority: 9QGMz6rYdBur7xWXUDRayS7hBhB9KWq2Gzgy9DbNa9eD
Withdraw Authority: 9QGMz6rYdBur7xWXUDRayS7hBhB9KWq2Gzgy9DbNa9eD
Lockup Timestamp: 1970–01–01T00:00:00Z (UnixTimestamp: 0)
Lockup Epoch: 0
Lockup Custodian: 11111111111111111111111111111111

Delegation Warmup and Cooldown

When a stake account is delegated, or a delegation is deactivated, the operation does not take effect immediately.

A delegation or deactivation takes several epochs to complete, with a fraction of the delegation becoming active or inactive at each epoch boundary after the transaction containing the instructions has been submitted to the cluster.

There is also a limit on how much total stake can become delegated or deactivated in a single epoch, to prevent large sudden changes in stake across the network as a whole. Since warmup and cooldown are dependent on the behavior of other network participants, their exact duration is difficult to predict. Details on the warmup and cooldown timing can be found here.

Looking for SOLmates, SOLtraders, SOLdiers?



There is a large community of Solana, identify yourself


🇷🇺 Russian:
🇯🇵 Japanese:
🇰🇷 Korean:
🇨🇳 Chinese:
🇨🇳 Chinese WeChat ID: solanabot
🇪🇸 Spanish:
🇮🇩 Indonesian:
🇹🇷 Turkish:
🇻🇳 Vietnamese:
🇮🇳 Indian:
🇧🇩 Bangladesh:
🇿🇦 African:
🇷🇴 Romanian:
🇵🇭 Philippines:
🇸🇦🇵🇸 Arabic:
🇩🇪 German:

Solana is not a Game!

Thank you for delegating and supporting our Validation service, any delegation is important to us.

Happy Staking!



melea Blockchain Solutions & Services

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store