create account

Using Steem-API with Ruby Part 1 — Print Account Info by krischik

View this thread on: hive.blogpeakd.comecency.com
· @krischik · (edited)
$16.91
Using Steem-API with Ruby Part 1 — Print Account Info
![Steemit_Ruby.jpg](https://steemitimages.com/500x270/http://ipfs.busy.org/ipfs/Qmb2hiQCAWohe59NoRHxZXE4X5ok29ZRmNETGHE8qZdwQR)

## Repository
### steem-ruby

Project Name: Steem Ruby
Repository: https://github.com/steemit/steem-ruby

### radiator

Project Name: Radiator
Repository: https://github.com/inertia186/radiator

## What Will I Learn?

This tutorial shows how to interact with the Steem blockchain and Steem database using Ruby. When using Ruby you have two APIs available to chose: **steem-api** and **radiator** which differentiates in how return values and errors are handled:

* **steem-api** uses closures and exceptions and provides low level computer readable data.
* **radiator** uses classic function return values and provides high level human readable data.

Since both APIs have advantages and disadvantages I have provided sample code for both APIs so you can decide which is more suitable for you.

## Requirements

You should have basic knowledge of Ruby programming and have an up to date ruby installed on your computer. If there is anything not clear you can ask in the comments.

## Difficulty

Provided you have some programming experience this tutorial is **basic level**.

## Preparations

In order to use the provided sample you need to install the following ruby gems:

```sh
gem install bundler
gem install colorize
gem install steem-ruby
gem install radiator
```

**Note:** Both steem-ruby and radiator provide a file called `steem.rb`. This means that:

1. When you install both APIs you need to tell ruby which one to use.
2. You can't use both APIs in the same script.

## Tutorial Contents

In this first part of the tutorial we I demonstrate how to print out account informations from a list of accounts passed on command line. The data is taken from the Steem database.

As mentioned there will be two examples and both samples are complete with error handling. I do this because error handling is one of the areas where steem-api and radiator differ and also it's always good to learn how to handle error condition correctly.

## Implementation using steem-ruby

First I show you how to get the account informations using steem-ruby. I called the script [Steem-Dump-Accounts.rb](https://github.com/krischik/SteemRubyTutorial/blob/master/Scripts/Steem-Dump-Accounts.rb) as the output is more low level. Check out the comments in the sample code for details.

Make the script executable under Unix. Of course you need to add the correct path to your ruby executable.

```ruby
#!/opt/local/bin/ruby
```

Use the "steem.rb" file from the steem-ruby gem. This is only needed if you have both steem-api and radiator installed.

```ruby
gem "steem-ruby", :require => "steem"

require 'pp'
require 'colorize'
require 'steem'

if ARGV.length == 0 then
   puts """
Steem-Dump-Accounts — Dump account infos from Steem database

Usage:
   Steem-Dump-Accounts accountname …

"""
else
```

   read arguments from command line

```ruby
   Account_Names = ARGV
```

create an instance to the steem database API

```ruby
   Database_Api = Steem::DatabaseApi.new
```

request account informations from the Steem database and print out the accounts found using pretty print (pp) or print out error informations when an error occurred.

```ruby
   Database_Api.find_accounts(accounts: Account_Names) do |result|
      Accounts = result.accounts

      if Accounts.length == 0 then
         puts "No accounts found.".yellow
      else
         pp Accounts
      end
   rescue => error
      puts "Error reading accounts:".red
      pp error
   end
end
```

**Hint:** opening  [Steem-Dump-Accounts.rb on GitHub](https://github.com/krischik/SteemRubyTutorial/blob/master/Scripts/Steem-Dump-Accounts.rb) will give you a nice display with syntax highlight.

The output of the command (for the steemit account) looks like this:

```
>ruby Steem-Dump-Accounts.rb steemit
[{"id"=>28,
  "name"=>"steemit",
  "owner"=>
   {"weight_threshold"=>1,
    "account_auths"=>[],
    "key_auths"=>
     [["STM6Ezkzey8FWoEnnHHP4rxbrysJqoMmzwR2EdoD5p7FDsF64qxbQ", 1],
      ["STM7TCZKisQnvR69CK9BaL6W4SJn2cXYwkfWYRicoVGGzhtFswxMH", 1]]},
  "active"=>
   {"weight_threshold"=>1,
    "account_auths"=>[],
    "key_auths"=>
     [["STM5VkLha96X5EQu3HSkJdD8SEuwazWtZrzLjUT6Sc5sopgghBYrz", 1],
      ["STM7u1BsoqLaoCu9XHi1wjWctLWSFCuvyagFjYMfga4QNWEjP7d3U", 1]]},
  "posting"=>
   {"weight_threshold"=>1,
    "account_auths"=>[],
    "key_auths"=>
     [["STM6kXdRbWgoH9E4hvtTZeaiSbY8FmGXQavfJZ2jzkKjT5cWYgMBS", 1],
      ["STM6tDMSSKa8Bd9ss7EjqhXPEHTWissGXJJosAU94LLpC5tsCdo61", 1]]},
  "memo_key"=>"STM5jZtLoV8YbxCxr4imnbWn61zMB24wwonpnVhfXRmv7j6fk3dTH",
  "json_metadata"=>"",
  "proxy"=>"",
  "last_owner_update"=>"2018-05-31T23:32:06",
  "last_account_update"=>"2018-05-31T23:32:06",
  "created"=>"2016-03-24T17:00:21",
  "mined"=>true,
  "recovery_account"=>"steem",
  "last_account_recovery"=>"1970-01-01T00:00:00",
  "reset_account"=>"null",
  "comment_count"=>0,
  "lifetime_vote_count"=>0,
  "post_count"=>1,
  "can_vote"=>true,
  "voting_manabar"=>
   {"current_mana"=>"84785778120382011", "last_update_time"=>1547781042},
  "balance"=>{"amount"=>"2", "precision"=>3, "nai"=>"@@000000021"},
  "savings_balance"=>{"amount"=>"0", "precision"=>3, "nai"=>"@@000000021"},
  "sbd_balance"=>{"amount"=>"8716549", "precision"=>3, "nai"=>"@@000000013"},
  "sbd_seconds"=>"7108510241427",
  "sbd_seconds_last_update"=>"2019-01-22T14:09:18",
  "sbd_last_interest_payment"=>"2019-01-13T03:37:18",
  "savings_sbd_balance"=>{"amount"=>"0", "precision"=>3, "nai"=>"@@000000013"},
  "savings_sbd_seconds"=>"0",
  "savings_sbd_seconds_last_update"=>"1970-01-01T00:00:00",
  "savings_sbd_last_interest_payment"=>"1970-01-01T00:00:00",
  "savings_withdraw_requests"=>0,
  "reward_sbd_balance"=>{"amount"=>"1", "precision"=>3, "nai"=>"@@000000013"},
  "reward_steem_balance"=>
   {"amount"=>"359", "precision"=>3, "nai"=>"@@000000021"},
  "reward_vesting_balance"=>
   {"amount"=>"730389810", "precision"=>6, "nai"=>"@@000000037"},
  "reward_vesting_steem"=>
   {"amount"=>"363", "precision"=>3, "nai"=>"@@000000021"},
  "vesting_shares"=>
   {"amount"=>"84785778120382011", "precision"=>6, "nai"=>"@@000000037"},
  "delegated_vesting_shares"=>
   {"amount"=>"0", "precision"=>6, "nai"=>"@@000000037"},
  "received_vesting_shares"=>
   {"amount"=>"0", "precision"=>6, "nai"=>"@@000000037"},
  "vesting_withdraw_rate"=>
   {"amount"=>"6505147286153846", "precision"=>6, "nai"=>"@@000000037"},
  "next_vesting_withdrawal"=>"2019-01-27T05:34:06",
  "withdrawn"=>0,
  "to_withdraw"=>"84566914720000000",
  "withdraw_routes"=>4,
  "curation_rewards"=>0,
  "posting_rewards"=>3548,
  "proxied_vsf_votes"=>["14511431797", 0, 0, 0],
  "witnesses_voted_for"=>0,
  "last_post"=>"2016-03-30T18:30:18",
  "last_root_post"=>"2016-03-30T18:30:18",
  "last_vote_time"=>"2016-12-04T23:10:57",
  "post_bandwidth"=>0,
  "pending_claimed_accounts"=>0,
  "is_smt"=>false}]
```

## Steem-Print-Accounts.rb using radiator

Next I show you how to get the account informations using radiator. I called the script [Steem-Print-Accounts.rb](https://github.com/krischik/SteemRubyTutorial/blob/master/Scripts/Steem-Print-Accounts.rb) as the output is more high level.  Check out the comments in the sample code for details. The one thing I would like to point it the use of an error attribute for error handling which is a bit awkward to use and leads to a rather ugly `Result.result` construct.

```Ruby
#!/opt/local/bin/ruby
```

use the steem.rb file from the radiator gem. This is only needed if you have both steem-api and radiator installed.

```ruby
gem "radiator", :require => "steem"

require 'pp'
require 'colorize'
require 'radiator'

if ARGV.length == 0 then
   puts """
Steem-Print-Accounts — Print account infos from Steem database

Usage:
   Steem-Print-Accounts account-name …

"""
else
```

read arguments from command line

```ruby
   Account_Names = ARGV
```

create instance to the steem database API

```ruby
   Database_Api = Radiator::DatabaseApi.new
```

request account informations from the steem database and print out the accounts found using pretty print (pp) or print out error informations when an error occurred.

```ruby
   Result = Database_Api.get_accounts(Account_Names)

   if Result.key?('error') then
      puts "Error reading accounts:".red
      pp Result.error
   elsif Result.result.length == 0 then
      puts "No accounts found.".yellow
   else
      pp Result.result
   end
end
```

**Hint:** opening  [Steem-Print-Accounts.rb on GitHub](https://github.com/krischik/SteemRubyTutorial/blob/master/Scripts/Steem-Print-Accounts.rb) will give you a nice display with syntax highlight.

The output of the command (for the steemit account) looks like this. Do note how all the balances are reformatted to be human readable and that there are 10 additional attributes at the end.

```
>ruby Steem-Print-Accounts.rb steemit
[{"id"=>28,
  "name"=>"steemit",
  "owner"=>
   {"weight_threshold"=>1,
    "account_auths"=>[],
    "key_auths"=>
     [["STM6Ezkzey8FWoEnnHHP4rxbrysJqoMmzwR2EdoD5p7FDsF64qxbQ", 1],
      ["STM7TCZKisQnvR69CK9BaL6W4SJn2cXYwkfWYRicoVGGzhtFswxMH", 1]]},
  "active"=>
   {"weight_threshold"=>1,
    "account_auths"=>[],
    "key_auths"=>
     [["STM5VkLha96X5EQu3HSkJdD8SEuwazWtZrzLjUT6Sc5sopgghBYrz", 1],
      ["STM7u1BsoqLaoCu9XHi1wjWctLWSFCuvyagFjYMfga4QNWEjP7d3U", 1]]},
  "posting"=>
   {"weight_threshold"=>1,
    "account_auths"=>[],
    "key_auths"=>
     [["STM6kXdRbWgoH9E4hvtTZeaiSbY8FmGXQavfJZ2jzkKjT5cWYgMBS", 1],
      ["STM6tDMSSKa8Bd9ss7EjqhXPEHTWissGXJJosAU94LLpC5tsCdo61", 1]]},
  "memo_key"=>"STM5jZtLoV8YbxCxr4imnbWn61zMB24wwonpnVhfXRmv7j6fk3dTH",
  "json_metadata"=>"",
  "proxy"=>"",
  "last_owner_update"=>"2018-05-31T23:32:06",
  "last_account_update"=>"2018-05-31T23:32:06",
  "created"=>"2016-03-24T17:00:21",
  "mined"=>true,
  "recovery_account"=>"steem",
  "last_account_recovery"=>"1970-01-01T00:00:00",
  "reset_account"=>"null",
  "comment_count"=>0,
  "lifetime_vote_count"=>0,
  "post_count"=>1,
  "can_vote"=>true,
  "voting_manabar"=>
   {"current_mana"=>"84785778120382011", "last_update_time"=>1547781042},
  "voting_power"=>0,
  "balance"=>"0.002 STEEM",
  "savings_balance"=>"0.000 STEEM",
  "sbd_balance"=>"8716.549 SBD",
  "sbd_seconds"=>"7108510241427",
  "sbd_seconds_last_update"=>"2019-01-22T14:09:18",
  "sbd_last_interest_payment"=>"2019-01-13T03:37:18",
  "savings_sbd_balance"=>"0.000 SBD",
  "savings_sbd_seconds"=>"0",
  "savings_sbd_seconds_last_update"=>"1970-01-01T00:00:00",
  "savings_sbd_last_interest_payment"=>"1970-01-01T00:00:00",
  "savings_withdraw_requests"=>0,
  "reward_sbd_balance"=>"0.001 SBD",
  "reward_steem_balance"=>"0.359 STEEM",
  "reward_vesting_balance"=>"730.389810 VESTS",
  "reward_vesting_steem"=>"0.363 STEEM",
  "vesting_shares"=>"84785778120.382011 VESTS",
  "delegated_vesting_shares"=>"0.000000 VESTS",
  "received_vesting_shares"=>"0.000000 VESTS",
  "vesting_withdraw_rate"=>"6505147286.153846 VESTS",
  "next_vesting_withdrawal"=>"2019-01-27T05:34:06",
  "withdrawn"=>0,
  "to_withdraw"=>"84566914720000000",
  "withdraw_routes"=>4,
  "curation_rewards"=>0,
  "posting_rewards"=>3548,
  "proxied_vsf_votes"=>["14511431797", 0, 0, 0],
  "witnesses_voted_for"=>0,
  "last_post"=>"2016-03-30T18:30:18",
  "last_root_post"=>"2016-03-30T18:30:18",
  "last_vote_time"=>"2016-12-04T23:10:57",
  "post_bandwidth"=>0,
  "pending_claimed_accounts"=>0,
  "vesting_balance"=>"0.000 STEEM",
  "reputation"=>"12944616889",
  "transfer_history"=>[],
  "market_history"=>[],
  "post_history"=>[],
  "vote_history"=>[],
  "other_history"=>[],
  "witness_votes"=>[],
  "tags_usage"=>[],
  "guest_bloggers"=>[]}]
```

# Curriculum
## First tutorial

[Using Steem-API with Ruby Part 1](https://steemit.com/@krischik/using-steem-api-with-ruby-part-1)

## Previous tutorial

[Using Steem-API with Ruby Part 1](https://steemit.com/@krischik/using-steem-api-with-ruby-part-1)

## Next tutorial

[Using Steem-API with Ruby Part 2](https://steemit.com/@krischik/using-steem-api-with-ruby-part-2)

## Proof of Work Done

https://github.com/krischik/SteemRubyTutorial

<center> ![comment](https://steemitimages.com/50x60/http://steemitboard.com/@krischik/Comments.png) ![votes](http://steemitimages.com/60x70/http://steemitboard.com/@krischik/Votes.png) ![posts](http://steemitimages.com/70x80/http://steemitboard.com/@krischik/Posts.png) ![level](http://steemitimages.com/100x80/http://steemitboard.com/@krischik/Level.png) ![payout](http://steemitimages.com/70x80/http://steemitboard.com/@krischik/Payout.png) ![commented](http://steemitimages.com/60x70/http://steemitboard.com/@krischik/Commented.png) ![voted](https://steemitimages.com/50x60/http://steemitboard.com/@krischik/voted.png) </center>
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
properties (23)
authorkrischik
permlinkusing-steem-api-with-ruby-part-1
categoryutopian-io
json_metadata{"community":"steempeak","app":"steempeak","format":"markdown","tags":["utopian-io","tutorials","ruby","steem-api","programming"],"users":["000000021","000000013","000000037","krischik"],"links":["https://github.com/steemit/steem-ruby","https://github.com/inertia186/radiator","https://github.com/krischik/SteemRubyTutorial/blob/master/Scripts/Steem-Dump-Accounts.rb","https://github.com/krischik/SteemRubyTutorial/blob/master/Scripts/Steem-Dump-Accounts.rb","https://github.com/krischik/SteemRubyTutorial/blob/master/Scripts/Steem-Print-Accounts.rb","https://github.com/krischik/SteemRubyTutorial/blob/master/Scripts/Steem-Print-Accounts.rb","https://steemit.com/@krischik/using-steem-api-with-ruby-part-1","https://steemit.com/@krischik/using-steem-api-with-ruby-part-1","https://steemit.com/@krischik/using-steem-api-with-ruby-part-2","https://github.com/krischik/SteemRubyTutorial"],"image":["https://steemitimages.com/500x270/http://ipfs.busy.org/ipfs/Qmb2hiQCAWohe59NoRHxZXE4X5ok29ZRmNETGHE8qZdwQR","https://steemitimages.com/50x60/http://steemitboard.com/@krischik/Comments.png","http://steemitimages.com/60x70/http://steemitboard.com/@krischik/Votes.png","http://steemitimages.com/70x80/http://steemitboard.com/@krischik/Posts.png","http://steemitimages.com/100x80/http://steemitboard.com/@krischik/Level.png","http://steemitimages.com/70x80/http://steemitboard.com/@krischik/Payout.png","http://steemitimages.com/60x70/http://steemitboard.com/@krischik/Commented.png","https://steemitimages.com/50x60/http://steemitboard.com/@krischik/voted.png"]}
created2019-01-23 20:27:33
last_update2019-01-29 10:00:09
depth0
children9
last_payout2019-01-30 20:27:33
cashout_time1969-12-31 23:59:59
total_payout_value12.696 HBD
curator_payout_value4.209 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length12,784
author_reputation15,247,708,436,415
root_title"Using Steem-API with Ruby Part 1 — Print Account Info"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd0
post_id78,832,530
net_rshares34,283,066,690,242
author_curate_reward""
vote details (49)
@digital.mine ·
$0.20
I'm a python guy, and I do not use ruby, but this is an interesting tutorial ;)
👍  ,
properties (23)
authordigital.mine
permlinkre-krischik-using-steem-api-with-ruby-part-1-20190123t203456414z
categoryutopian-io
json_metadata{"tags":["utopian-io"],"app":"steemit/0.1"}
created2019-01-23 20:34:57
last_update2019-01-23 20:34:57
depth1
children2
last_payout2019-01-30 20:34:57
cashout_time1969-12-31 23:59:59
total_payout_value0.154 HBD
curator_payout_value0.047 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length79
author_reputation16,709,274,423,272
root_title"Using Steem-API with Ruby Part 1 — Print Account Info"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id78,832,846
net_rshares420,162,590,291
author_curate_reward""
vote details (2)
@krischik ·
There is an official python library as well:

https://github.com/steemit/steem-python
properties (22)
authorkrischik
permlinkre-digitalmine-re-krischik-using-steem-api-with-ruby-part-1-20190123t204535940z
categoryutopian-io
json_metadata{"community":"busy","app":"busy/2.5.6","format":"markdown","tags":["utopian-io"],"users":[],"links":["https://github.com/steemit/steem-python"],"image":[]}
created2019-01-23 20:45:36
last_update2019-01-23 20:45:36
depth2
children1
last_payout2019-01-30 20:45:36
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length85
author_reputation15,247,708,436,415
root_title"Using Steem-API with Ruby Part 1 — Print Account Info"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id78,833,302
net_rshares0
@digital.mine ·
$0.20
I know I'm using it for all of my scripts ;)
👍  , ,
properties (23)
authordigital.mine
permlinkre-krischik-re-digitalmine-re-krischik-using-steem-api-with-ruby-part-1-20190123t204734025z
categoryutopian-io
json_metadata{"tags":["utopian-io"],"app":"steemit/0.1"}
created2019-01-23 20:47:33
last_update2019-01-23 20:47:33
depth3
children0
last_payout2019-01-30 20:47:33
cashout_time1969-12-31 23:59:59
total_payout_value0.152 HBD
curator_payout_value0.049 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length44
author_reputation16,709,274,423,272
root_title"Using Steem-API with Ruby Part 1 — Print Account Info"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id78,833,396
net_rshares412,725,961,390
author_curate_reward""
vote details (3)
@portugalcoin ·
$8.21
Thank you for your contribution @krischik.
After analyzing your tutorial we suggest the following points below:

- It would be interesting to follow the template of the tutorials category. It is available <a href="https://github.com/utopian-io/editor-templates/blob/master/tutorials">here</a>.

- In the tutorials it is important to place at the end of the contribution the proof of the work.

- We suggest you put some gifs to show the results on the console. It gets more interesting in visual terms.

Your tutorial is interesting, thanks for your work in developing this contribution.

Your contribution has been evaluated according to [Utopian policies and guidelines](https://join.utopian.io/guidelines), as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, [click here](https://review.utopian.io/result/8/2-1-3-2-0-3-2-3-).

---- 
Need help? Chat with us on [Discord](https://discord.gg/uTyJkNm).

[[utopian-moderator]](https://join.utopian.io/)
👍  , , , , , , , , , , , ,
properties (23)
authorportugalcoin
permlinkre-krischik-using-steem-api-with-ruby-part-1-20190124t192101677z
categoryutopian-io
json_metadata{"tags":["utopian-io"],"users":["krischik"],"links":["https://github.com/utopian-io/editor-templates/blob/master/tutorials","https://join.utopian.io/guidelines","https://review.utopian.io/result/8/2-1-3-2-0-3-2-3-","https://discord.gg/uTyJkNm","https://join.utopian.io/"],"app":"steemit/0.1"}
created2019-01-24 19:21:03
last_update2019-01-24 19:21:03
depth1
children2
last_payout2019-01-31 19:21:03
cashout_time1969-12-31 23:59:59
total_payout_value6.238 HBD
curator_payout_value1.973 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length1,039
author_reputation599,460,589,822,571
root_title"Using Steem-API with Ruby Part 1 — Print Account Info"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id78,884,676
net_rshares16,838,196,840,344
author_curate_reward""
vote details (13)
@krischik ·
Thanks for the suggested. I incorporated two of them. Account dumps are to long for console screen shots but part two is in the making and has more manageable output so I'll make pictures for part two.
properties (22)
authorkrischik
permlinkre-portugalcoin-re-krischik-using-steem-api-with-ruby-part-1-20190125t090646480z
categoryutopian-io
json_metadata{"tags":["utopian-io"],"app":"steemit/0.1"}
created2019-01-25 09:06:45
last_update2019-01-25 09:06:45
depth2
children0
last_payout2019-02-01 09:06:45
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length201
author_reputation15,247,708,436,415
root_title"Using Steem-API with Ruby Part 1 — Print Account Info"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd0
post_id78,910,001
net_rshares0
@utopian-io ·
Thank you for your review, @portugalcoin! Keep up the good work!
properties (22)
authorutopian-io
permlinkre-re-krischik-using-steem-api-with-ruby-part-1-20190124t192101677z-20190127t132627z
categoryutopian-io
json_metadata"{"app": "beem/0.20.17"}"
created2019-01-27 13:26:27
last_update2019-01-27 13:26:27
depth2
children0
last_payout2019-02-03 13:26:27
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length64
author_reputation152,955,367,999,756
root_title"Using Steem-API with Ruby Part 1 — Print Account Info"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id79,012,114
net_rshares0
@steem-plus ·
SteemPlus upvote
Hi, @krischik!

You just got a **0.1%** upvote from SteemPlus!
To get higher upvotes, earn more SteemPlus Points (SPP). On your Steemit wallet, check your SPP balance and click on "How to earn SPP?" to find out all the ways to earn.
If you're not using SteemPlus yet, please check our last posts in [here](https://steemit.com/@steem-plus) to see the many ways in which SteemPlus can improve your Steem experience on Steemit and Busy.
👍  
properties (23)
authorsteem-plus
permlinkusing-steem-api-with-ruby-part-1---vote-steemplus
categoryutopian-io
json_metadata{}
created2019-01-24 22:08:42
last_update2019-01-24 22:08:42
depth1
children0
last_payout2019-01-31 22:08:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length434
author_reputation247,952,188,232,400
root_title"Using Steem-API with Ruby Part 1 — Print Account Info"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id78,890,351
net_rshares22,962,540,654
author_curate_reward""
vote details (1)
@steem-ua ·
#### Hi @krischik!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
**Feel free to join our [@steem-ua Discord server](https://discord.gg/KpBNYGz)**
👍  , ,
properties (23)
authorsteem-ua
permlinkre-using-steem-api-with-ruby-part-1-20190124t213804z
categoryutopian-io
json_metadata"{"app": "beem/0.20.14"}"
created2019-01-24 21:38:06
last_update2019-01-24 21:38:06
depth1
children0
last_payout2019-01-31 21:38:06
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length287
author_reputation23,214,230,978,060
root_title"Using Steem-API with Ruby Part 1 — Print Account Info"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id78,889,274
net_rshares1,488,041,355
author_curate_reward""
vote details (3)
@utopian-io ·
Hey, @krischik!

**Thanks for contributing on Utopian**.
We’re already looking forward to your next contribution!

**Get higher incentives and support Utopian.io!**
 Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via [SteemPlus](https://chrome.google.com/webstore/detail/steemplus/mjbkjgcplmaneajhcbegoffkedeankaj?hl=en) or [Steeditor](https://steeditor.app)).

**Want to chat? Join us on Discord https://discord.gg/h52nFrV.**

<a href='https://steemconnect.com/sign/account-witness-vote?witness=utopian-io&approve=1'>Vote for Utopian Witness!</a>
properties (22)
authorutopian-io
permlinkre-using-steem-api-with-ruby-part-1-20190125t135517z
categoryutopian-io
json_metadata"{"app": "beem/0.20.17"}"
created2019-01-25 13:55:18
last_update2019-01-25 13:55:18
depth1
children0
last_payout2019-02-01 13:55:18
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length590
author_reputation152,955,367,999,756
root_title"Using Steem-API with Ruby Part 1 — Print Account Info"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id78,919,672
net_rshares0