Send coins in Groestlcoin network with Groestlcoin Core (cli)

Here are the steps needed to make a secure transfer of your funds under linux distro of Ubuntu. To be able to transfer money securely without any 3rd party involved (no online wallet) just funds from your personal Groestlcoin wallet address on your computer to another Groestlcoin wallet address we need a running Groestlcoin node using Groestlcoin Core tool:

groestlcoin-cli

The cli tool for managing the Groestlcoin wallets.

STEP 1) Install and run an Groestlcoin node with groestlcoind

Here you can follow this tutorial – Running a Groestlcoin node (wallet cli) from source under Ubuntu 16 LTS.
The Groestlcoin node must be running and synced with the Groestlcoin network.

STEP 2) Check how many funds you have in your Groestlcoin wallet address

srv@local:~/groestlcoin-core/bin$ ./groestlcoin-cli listaccounts
{
  "": 0.00000000,
  "myfunds": 527.36851543,
  "test": 0.00000000
}

So we have

myfunds account

with 527.36851543 Groestlcoin coins, an account could have multiple Groestlcoin addresses and a wallet could have multiple accounts (as you can see from the example above) , so we can check the amount of coins on each address associated with the account:

srv@local:~/groestlcoin-core/bin$ ./groestlcoin-cli listaddressgroupings
[
  [
    [
      "FabGnY2ovd3jnddgyjiltd456hdfjklFBs", 
      527.36851543, 
      "myfunds"
    ]
  ]
]

You can see there are 527.36851543 Groestlcoin coins in our account “myfunds” in the Groestlcoin wallet and the Groestlcoin address is FabGnY2ovd3jnddgyjiltd456hdfjklFBs

STEP 3) Unlock your wallet

The wallet is encrypted with a password, so before doing any transactions you must unlock the account for a given amount of time with:

srv@local:~/groestlcoin-core/bin$ ./groestlcoin-cli walletpassphrase "my_wallet_pass" 300

So your wallet will stay unlocked for 300 seconds, this is the purpose of the third parameter.

STEP 4) Send the amount you like to the Groestlcoin wallet address you like

BE CAREFUL the operation is irreversible, if you put wrong address or unknown or unexciting one, you’ll lose your Groestlcoin coins!!
We want to send 2 coins to “FmjjtD2cejkrjeghrfhhaerGDFGdjfhffe”

srv@local:~/groestlcoin-core/bin$ ./groestlcoin-cli sendfrom "myfunds" "FmjjtD2cejkrjeghrfhhaerGDFGdjfhffe" 2
3293d8f8acc2689ff54fe70a28da24cd313c324f1f335e80d22add08588d73d1

If you see the transaction ID, it means the you have executed the command successfully and you can check the status of the transaction.

STEP 5) Check the transaction status.

The status of your transaction could be checked in sites offering Groestlcoin block explorer sites like

https://groestlsight.groestlcoin.org/

Here is the screenshot of the status page:

main menu
Transaction details in https://groestlsight.groestlcoin.org/

You can see there are two addresses and a fee, which is just a “0.0000226GRS”, the transaction 2 GRS has (S), which means “Spent” and the 0.04326832 GRS (U), which means unspent, but it was needed to complete the transaction. So you spent 2.0000226 GRS to transfer 2.00 GRS.
And verify the other address has the coins:

srv@local:~/groestlcoin-core/bin$ 
srv@local:~/groestlcoin-core/bin$ ./groestlcoin-cli listaddressgroupings
[
  [
    [
      "FmjjtD2cejkrjeghrfhhaerGDFGdjfhffe", 
      2.00000000, 
      "mytestwallet"
    ]
  ]
]

Here is the whole output of the “/groestlcoin-cli” tool:

srv@local:~/groestlcoin-core/bin$ ./groestlcoin-cli listaccounts
{
  "": 0.00000000,
  "myfunds": 527.36851543,
  "test": 0.00000000
}
srv@local:~/groestlcoin-core/bin$ ./groestlcoin-cli walletpassphrase "my_wallet_pass" 300
srv@local:~/groestlcoin-core/bin$ ./groestlcoin-cli sendfrom "myfunds" "FmjjtD2cejkrjeghrfhhaerGDFGdjfhffe" 2
3293d8f8acc2689ff54fe70a28da24cd313c324f1f335e80d22add08588d73d1
srv@local:~/groestlcoin-core/bin$ ./groestlcoin-cli listaddressgroupings
[
  [
    [
      "FabGnY2ovd3jnddgyjiltd456hdfjklFBs", 
      525.32522451, 
      "myfunds"
    ], 
    [
      "Fjqkflgitg459tdfgjjkrthurDFGFhghhj", 
      0.04326832
    ]
  ]
]
srv@local:~/groestlcoin-core/bin$ ./groestlcoin-cli listaccounts
{
  "": 0.00000000,
  "myfunds": 525.36849283,
  "test": 0.00000000
}

Also you might want to delete your shell history because of the saved password phrase!

Troubleshooting

If you get

srv@local:~/groestlcoin-core/bin$ ./groestlcoin-cli sendfrom "myfunds" "FmjjtD2cejkrjeghrfhhaerGDFGdjfhffe" 2
error code: -13
error message:
Error: Please enter the wallet passphrase with walletpassphrase first.

You must unlock your account! If you did it but still the error persisted you probably have to increase the unlock time. Look STEP 2)

* All Groestlcoin addresses in this howto are changed for security reasons.

Backup and restore your Groestlcoin address wallet (cli)

In real world backups are lifesavers and in crypto world the backups are even more important! Backup everything about your crypto wallet and node install!
If you have followed our howtos (Running a Groestlcoin node (wallet cli) from source under Ubuntu 16 LTS and “Building from source a Groestlcoin node (cli only) under Ubuntu 16 LTS“) you would have the correct software for managing the Groestlcoin wallet and all the paths bellow will be accurate.

STEP 1) Backup of Groestlcoin wallet

If you want to backup up your Groestlcoin (addresses) wallet you need to find your

wallet.dat

file the place for it is in your

“home directory/.groestlcoin/wallet.dat”

So first stop the Groestlcoin Core program with one of the following command:

  • By sending kill signal:
    srv@local:~$ killall groestlcoind
    
  • OR in your screen or shell of the running program ctrl+c will stop it

After you wait for the Groestlcoin Core to exit you can check the logs in

~/.groestlcoin/debug.log

2018-04-12 01:00:36 UpdateTip: new best=0000000000026458ea4ffb8d781179393f9f339bf3504936d1a6eb05d1a6d433 height=2041250 version=0x20000000 log2_work=61.378625 tx=2730651 date='2018-04-12 01:00:16' progress=1.000000 cache=0.7MiB(2279tx)
2018-04-12 01:00:52 tor: Thread interrupt
2018-04-12 01:00:52 msghand thread exit
2018-04-12 01:00:52 addcon thread exit
2018-04-12 01:00:52 torcontrol thread exit
2018-04-12 01:00:52 opencon thread exit
2018-04-12 01:00:52 scheduler thread interrupt
2018-04-12 01:00:52 Shutdown: In progress...
2018-04-12 01:00:52 net thread exit
2018-04-12 01:00:52 Dumped mempool: 3e-06s to copy, 0.001741s to dump
2018-04-12 01:00:52 Shutdown: done

So now you can copy to a secure place your

“home directory/.groestlcoin/wallet.dat

In our real world example the path is “/home/ubuntu/.groestlcoin/wallet.dat”

srv@local:~$ cp /home/ubuntu/.groestlcoin/wallet.dat /home/ubuntu/backups/cryptos/groestlcoin-wallet.dat

STEP 2) Restore Groestlcoin wallet

To restore our wallet from a backup you also need the Groestlcoin wallet program (Groestlcoin Core – the Groestlcoin node) not to be running, so if it is started just follow the STEP 1) to stop it. Then override

“home directory/.groestlcoin/wallet.dat

with your backup file (the name of the file must be “wallet.dat”!!! It is important because your backup file could have any name). So in our real world example we override our /home/ubuntu/.groestlcoin/wallet.dat with our backup:

srv@local:~$ cp /home/ubuntu/backups/cryptos/groestlcoin-wallet.dat /home/ubuntu/.groestlcoin/wallet.dat

And then start your Groestlcoin wallet program with option

-rescan

this option is required when you first start the Groestlcoin Core with your backup wallet to “Rescan the block chain for missing wallet transactions on startup”, if you do not start the program with “-rescan” you could have strange numbers for your funds when checking with “groestlcoin-cli”

srv@local:~$ cd ~/groestlcoin-core/bin
srv@local:~/groestlcoin-core/bin$ ./groestlcoind -rescan &> groestlcoind.log

You could check debug.log and you’ll see the transactions for your wallet

2018-04-12 01:21:07 Using obfuscation key for /home/ubuntu/.groestlcoin/blocks/index: 0000000000000000
2018-04-12 01:21:07 Opening LevelDB in /home/ubuntu/.groestlcoin/chainstate
2018-04-12 01:21:07 Opened LevelDB successfully
2018-04-12 01:21:07 Using obfuscation key for /home/ubuntu/.groestlcoin/chainstate: 0000000000000000
2018-04-12 01:21:26 LoadBlockIndexDB: last block file = 8
2018-04-12 01:21:26 LoadBlockIndexDB: last block file info: CBlockFileInfo(blocks=75749, size=48230812, heights=1965243...2041250, time=2018-02-15...2018-04-12)
2018-04-12 01:21:26 Checking all blk files are present...
2018-04-12 01:21:26 LoadBlockIndexDB: transaction index disabled
2018-04-12 01:21:27 LoadBlockIndexDB: hashBestChain=0000000000026458ea4ffb8d781179393f9f339bf3504936d1a6eb05d1a6d433 height=2041250 date=2018-04-12 01:00:16 progress=0.999999
2018-04-12 01:21:27 init message: Rewinding blocks...
2018-04-12 01:21:34 init message: Verifying blocks...
2018-04-12 01:21:34 Verifying last 6 blocks at level 3
2018-04-12 01:21:34 [0%]...[16%]...[33%]...[50%]...[66%]...[83%]...[99%]...[DONE].
2018-04-12 01:21:34 No coin database inconsistencies in last 7 blocks (16 transactions)
2018-04-12 01:21:34  block index           26840ms
2018-04-12 01:21:34 init message: Loading wallet...
2018-04-12 01:21:34 nFileVersion = 2130300
2018-04-12 01:21:34 Keys: 0 plaintext, 205 encrypted, 205 w/ metadata, 205 total
2018-04-12 01:21:34  wallet                   11ms
2018-04-12 01:21:34 init message: Rescanning...
2018-04-12 01:21:34 Rescanning last 2041250 blocks (from block 0)...
2018-04-12 01:21:34 AddToWallet c5ed5ff668503412eed4568c3b226523e2ff6db2a1b3740f0aea5250a3c36e7b  
2018-04-12 01:21:34 AddToWallet fc99017780dbafaf5723196351d4adaaee9991c35391ecb013ed74bbb57a44a5  
2018-04-12 01:21:34 AddToWallet 52f883907385dd8205273ebdc987e88ed71f0e894b57df1a6a2f2c9fcb546922  
2018-04-12 01:21:34 AddToWallet a8b84a2d0b1114c4f2d710a45e0e13dfab547512b1b775a9617fa41809b75926  
2018-04-12 01:21:34 AddToWallet 0d4f1d8e9f6c42b4dbaaf33fe4fb33efc5f646df8724f1e66ab54ccbedbb84f1  
2018-04-12 01:21:34 AddToWallet 1a2984f011a6ff5d44c549b0f6da44b3a1654e2ccbb9f897f5106f88ed931498  
.....
.....
2018-04-12 01:21:46  rescan                12622ms
2018-04-12 01:21:46 setKeyPool.size() = 99
2018-04-12 01:21:46 mapWallet.size() = 415
2018-04-12 01:21:46 mapAddressBook.size() = 4
2018-04-12 01:21:46 mapBlockIndex.size() = 2041278
2018-04-12 01:21:46 nBestHeight = 2041250
2018-04-12 01:21:46 init message: Loading addresses...
2018-04-12 01:21:46 Imported mempool transactions from disk: 1 successes, 0 failed, 0 expired
2018-04-12 01:21:46 torcontrol thread start
2018-04-12 01:21:46 Loaded 2994 addresses from peers.dat  40ms
2018-04-12 01:21:46 init message: Loading banlist...
2018-04-12 01:21:46 init message: Starting network threads...
2018-04-12 01:21:46 net thread start
2018-04-12 01:21:46 addcon thread start
2018-04-12 01:21:46 init message: Done loading
2018-04-12 01:21:46 dnsseed thread start
2018-04-12 01:21:46 opencon thread start
2018-04-12 01:21:46 msghand thread start
2018-04-12 01:21:47 receive version message: /Groestlcoin:2.13.3/: version 70015, blocks=2041268, us=18.220.186.120:42996, peer=0

Now if you check your balances they must be properly reported (correct numbers of coins):

srv@local:~/groestlcoin-core/bin$ ./groestlcoin-cli listaccounts
{
  "": 0.00000000,
  "myfunds": 527.36851543,
  "tests": 0.00000000
}

Generate a new Groestlcoin address (wallet) and list accounts and addresses

The generation of a new Groestlcoin address is super simple, just use

groestlcoin-cli

and personally create your new address. DO NOT TRUST any online or website or any other Internet source to generate your Groestlcoin wallet address for you. DO IT YOURSELF with the official software from the official site!
And for those of you, which do not have “groestlcoin-cli” command or even do not know what is this, check out our howtos here:

  1. Install Ubuntu 16 LTS (comming soon)
  2. Running a Groestlcoin node (wallet cli) from source under Ubuntu 16 LTS

Go to your directory where is the groestlcoin-cli binary and execute the following command (the path and directories in the following examples are based on the above howto):

srv@local:~$ cd ~/groestlcoin-core/bin/
srv@local:~/groestlcoin-core/bin$ ./groestlcoin-cli getnewaddress mygroestlcoin
FeNFjh81VDJvZrdvi8EotKuJ8es8cCz7bZ
srv@local:~/groestlcoin-core/bin$ ./groestlcoin-cli encryptwallet "my secret pass"
wallet encrypted; Groestlcoin server stopping, restart to run with encrypted wallet. The keypool has been flushed and a new HD seed was generated (if you are using HD). You need to make a new backup.

The groestlcoind daemon was stopped and you need to start it again if you want to make transactions or to get your balance.
With Groestlcoin Core Wallet you can create an account, which could be a group of groestlcoin addresses (this is a groestlcoin address: “FeNFjh81VDJvZrdvi8EotKuJ8es8cCz7bZ”) or just use the default with no name of the account.
It is important to encrypt your wallet with a password, because if the wallet is unprotected with a password anyone could steal it! Then enter a password for your wallet protection is the second command above!

This sequence of numbers and alphabets

FeNFjh81VDJvZrdvi8EotKuJ8es8cCz7bZ

is your public Groestlcoin address, which could be used to receive Groestlcoins – the coins of the Groestlcoin network.

After generating the address two things must be done:

  1. Backup your Groestlcoin wallet address file (wallet.dat), which is placed in your home directory under “.groestlcoin”:
    srv@local:~/groestlcoin-core/bin$ ls -altr ~/.groestlcoin/
    srv@local:~$ ls -altr ~/.groestlcoin/
    total 476
    -rw------- 1 ubuntu ubuntu      0 Mar 27 21:41 .lock
    -rw------- 1 ubuntu ubuntu      0 Mar 27 21:41 db.log
    -rw------- 1 ubuntu ubuntu     37 Mar 27 21:41 banlist.dat
    drwx------ 3 ubuntu ubuntu   4096 Mar 27 22:18 blocks
    drwxr-xr-x 7 ubuntu ubuntu   4096 Mar 28 01:25 ..
    -rw------- 1 ubuntu ubuntu 145650 Mar 28 14:16 peers.dat
    -rw------- 1 ubuntu ubuntu     17 Mar 28 14:16 mempool.dat
    -rw------- 1 ubuntu ubuntu  16625 Mar 28 14:16 fee_estimates.dat
    -rw------- 1 ubuntu ubuntu  73728 Mar 28 14:16 wallet.dat
    -rw------- 1 ubuntu ubuntu      5 Mar 28 14:17 groestlcoin.pid
    -rw------- 1 ubuntu ubuntu     75 Mar 28 14:17 .cookie
    drwxrwxr-x 5 ubuntu ubuntu   4096 Mar 28 14:17 .
    drwx------ 2 ubuntu ubuntu   4096 Mar 28 14:18 chainstate
    drwx------ 2 ubuntu ubuntu   4096 Mar 28 14:18 database
    -rw------- 1 ubuntu ubuntu 206800 Mar 28 14:27 debug.log
    srv@local:~$ 
    

    The best practice is to backup all the files under “~/.groestlcoin/”, too!

  2. Backup your password for the private key!

Accounts

List all accounts in the wallet

srv@local:~/groestlcoin-core/bin$ ./groestlcoin-cli listaccounts
{
  "": 0.00000000,
  "mygroestlcoin": 0.00000000
}

List all Groestlcoin addresses in a given account:

srv@local:~/groestlcoin-core/bin$ ./groestlcoin-cli getaddressesbyaccount ""
[
  "FYM6aAQdmg6tziT4trPb777xNfPaaUnfqp", 
  "FamX8GYBuLFkLSAbyZ7M55vFW6AECoYKEV", 
  "Fp9PwAgfTqaF3aJ4zGGLjGKP7iEMdsrR3Z"
]
srv@local:~/groestlcoin-core/bin$ ./groestlcoin-cli getaddressesbyaccount "mygroestlcoin"
[
  "FeNFjh81VDJvZrdvi8EotKuJ8es8cCz7bZ", 
  "FrrnHESU8Utqk1ZjhQZjpWwc5cjKgHwCaS"
]

* It is absolutely necessary your crypto wallet addresses to have a password for security reasons and DO NOT FORGET IT you cannot recover the password therefore your access to the wallet! If you lose your password you lose ALL your funds in the address! It’s better to write it down somewhere on a safe physical place. You can print it on a sheet of paper and place it somewhere safe!

* All available commands with “groestlcoin-cli

groestlcoin-cli help
== Blockchain ==
getbestblockhash
getblock "hash" ( verbose )
getblockchaininfo
getblockcount
getblockhash index
getblockheader "hash" ( verbose )
getchaintips
getdifficulty
getmempoolancestors txid (verbose)
getmempooldescendants txid (verbose)
getmempoolentry txid
getmempoolinfo
getrawmempool ( verbose )
gettxout "txid" n ( includemempool )
gettxoutproof ["txid",...] ( blockhash )
gettxoutsetinfo
preciousblock "hash"
verifychain ( checklevel numblocks )
verifytxoutproof "proof"

== Control ==
getinfo
getmemoryinfo
help ( "command" )
stop

== Generating ==
generate numblocks ( maxtries )
generatetoaddress numblocks address (maxtries)

== Mining ==
getblocktemplate ( TemplateRequest )
getmininginfo
getnetworkhashps ( blocks height )
prioritisetransaction <txid> <priority delta> <fee delta>
submitblock "hexdata" ( "jsonparametersobject" )

== Network ==
addnode "node" "add|remove|onetry"
clearbanned
disconnectnode "node" 
getaddednodeinfo ( "node" )
getconnectioncount
getnettotals
getnetworkinfo
getpeerinfo
listbanned
ping
setban "ip(/netmask)" "add|remove" (bantime) (absolute)
setnetworkactive true|false

== Rawtransactions ==
createrawtransaction [{"txid":"id","vout":n},...] {"address":amount,"data":"hex",...} ( locktime )
decoderawtransaction "hexstring"
decodescript "hex"
fundrawtransaction "hexstring" ( options )
getrawtransaction "txid" ( verbose )
sendrawtransaction "hexstring" ( allowhighfees )
signrawtransaction "hexstring" ( [{"txid":"id","vout":n,"scriptPubKey":"hex","redeemScript":"hex"},...] ["privatekey1",...] sighashtype )

== Util ==
createmultisig nrequired ["key",...]
estimatefee nblocks
estimatepriority nblocks
estimatesmartfee nblocks
estimatesmartpriority nblocks
signmessagewithprivkey "privkey" "message"
validateaddress "groestlcoinaddress"
verifymessage "groestlcoinaddress" "signature" "message"

== Wallet ==
abandontransaction "txid"
addmultisigaddress nrequired ["key",...] ( "account" )
addwitnessaddress "address"
backupwallet "destination"
dumpprivkey "groestlcoinaddress"
dumpwallet "filename"
getaccount "groestlcoinaddress"
getaccountaddress "account"
getaddressesbyaccount "account"
getbalance ( "account" minconf includeWatchonly )
getnewaddress ( "account" )
getrawchangeaddress
getreceivedbyaccount "account" ( minconf )
getreceivedbyaddress "groestlcoinaddress" ( minconf )
gettransaction "txid" ( includeWatchonly )
getunconfirmedbalance
getwalletinfo
importaddress "address" ( "label" rescan p2sh )
importmulti '[<json import requests>]' '<json options>' 
importprivkey "groestlcoinprivkey" ( "label" rescan )
importprunedfunds
importpubkey "pubkey" ( "label" rescan )
importwallet "filename"
keypoolrefill ( newsize )
listaccounts ( minconf includeWatchonly)
listaddressgroupings
listlockunspent
listreceivedbyaccount ( minconf includeempty includeWatchonly)
listreceivedbyaddress ( minconf includeempty includeWatchonly)
listsinceblock ( "blockhash" target-confirmations includeWatchonly)
listtransactions ( "account" count from includeWatchonly)
listunspent ( minconf maxconf  ["address",...] )
lockunspent unlock ([{"txid":"txid","vout":n},...])
move "fromaccount" "toaccount" amount ( minconf "comment" )
removeprunedfunds "txid"
sendfrom "fromaccount" "togroestlcoinaddress" amount ( minconf "comment" "comment-to" )
sendmany "fromaccount" {"address":amount,...} ( minconf "comment" ["address",...] )
sendtoaddress "groestlcoinaddress" amount ( "comment" "comment-to" subtractfeefromamount )
setaccount "groestlcoinaddress" "account"
settxfee amount
signmessage "groestlcoinaddress" "message"
walletlock
walletpassphrase "passphrase" timeout
walletpassphrasechange "oldpassphrase" "newpassphrase"