Jarvis (for Steem) is a script that automates essential functions for your Steem account[s]. Currently, Jarvis is able to do the following tasks:
Here are some examples of how Jarvis can help you:
Interested? Great! Setting it up isn't too difficult either.
https://github.com/therealwolf42/steem-jarvis
Disclaimer: This software has been developed with rigour and cautiousness, but I'm not taking any responsibility for possible bugs or misuse/mistakes from the user. If you're using this software, you're accepting full responsibility for your own funds & accounts.
It is recommended to use Docker.
git clone https://github.com/therealwolf42/steem-jarvis.git
cd steem-jarvis
chmod +x run.sh
./run.sh install_docker
# Choose MODE (Default: development => testing-mode without broadcasts to blockchain)
./run.sh build MODE # MODE is either production OR development
./run.sh start
# To get a list of possible commands, use: ./run.sh help
However, you can also run the node manually, with PM2 or your favourite program.
Requirement: Node >= 8
sudo apt update
sudo apt install -y curl software-properties-common gnupg build-essential libssl-dev
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs
sudo npm i npm@latest -g
git clone https://github.com/therealwolf42/steem-jarvis.git
cd steem-jarvis
npm i
# There are 3 different example configs
# config.example.json (clean version)
# config.example.detailed.json (detailed version)
# config.example.smartsteem.json (version for Smartsteem.com)
cp configs/config.example.json configs/config.json
nano configs/config.json
{
"RPC_NODES": [
"https://api.steemit.com",
"https://api.steemitstage.com",
"https://steemd.privex.io",
"https://gtg.steem.house:8090",
"https://rpc.buildteam.io",
"https://steemd.minnowsupportproject.org"
],
"KEY_PAIRS": [
{
"account": "veryuniqueaccount2",
"type": "posting",
"key": "5HFAKSS"
},
{
"account": "veryuniqueaccount2",
"type": "active",
"key": "5JFJSFD"
},
{
"account": "veryuniqueaccount2",
"type": "memo",
"key": "5JFJSFD"
}
],
"GENERAL": {
"minimum_steem_for_powerup": 0,
"minimum_steem_for_transfer": 0,
"minimum_steem_for_delegation": 2,
"interval_in_minutes": 30,
"test_mode": false
},
"ACCOUNTS": [
{
"name": "veryuniqueaccount1",
"claim_rewards": true,
"key_account": "veryuniqueaccount2",
"actions": [
{
"action_type": "powerup",
"to": "veryuniqueaccount2",
"asset": "STEEM",
"keep": 5,
"memo": "yourmemo"
},
{
"action_type": "transfer",
"to": "veryuniqueexchange",
"asset": "SBD",
"memo": "12345yourexchangeid",
"encrypted": true
},
{
"action_type": "delegate",
"to": ["veryuniqueaccount2", "veryuniqueaccount3"],
"keep": 5,
"percentage": [60, 40]
}
]
},
{
"name": "veryuniqueaccount2",
"claim_rewards": true,
"key_account": "veryuniqueaccount2",
"actions": [
{
"action_type": "delegate",
"to": "veryuniqueaccount3",
"percentage": 100
}
]
},
{
"name": "veryuniqueaccount3",
"claim_rewards": true,
"key_account": "veryuniqueaccount2",
"actions": []
}
]
}
In the example above, I added all possible paths of using Jarvis so this should give you an idea, how to configure it, but here is the explanation in detail.
account=> Your account nametype=> either activeor postingor memokey=> private keyminimum_steem_for_powerup => threshold for powerupsminimum_steem_for_transfer => threshold for transfersminimum_steem_for_delegation => threshold for delegationsinterval_in_minutes => how much time should pass between intervals of checking for worktest_mode => whether test mode should be forced (no actual transactions will be made)name => Account nameclaim_rewards => Whether rewards should be claimed (requires posting key)key_account => If the key_authority should be used from another account (you could essentially give one account all your key authorities and use only 1 key-pair)actions => Array of actions, see belowaction_type => can be transfer, powerup or delegateto => account[s] that should be targeted i.e: where transfer/powerup/delegation should go toasset => can be STEEM or SBD - only required for transfer & powerup (has to be STEEM for powerup)keep => how much of the asset should be kept in the accountmemo => only usable by transfersencrypted => if the given memo should be encrypted (requires memo key as key-pair)percentage => only required for delegate, how much of your total Steempower should go towards the user (has to be the same order as to field)You can either run it directly with npm start or by using PM2.
sudo npm install pm2 -g # if you haven't installed it yet
pm2 start ecosystem.config.js --env production
You can either set the test_mode inside the config to force the test-mode or start the program in development mode
npm run dev
# or
# pm2 start ecosystem.config.js
That's it for the technical post. Please let me know if the explanations were good enough.
I'll try to create another post in the near future, where I display some examples, how I'm personally utilizing Jarvis.
All the best,
Wolf
Do you believe that my work is valuable for Steem? Then please vote for me as witness.