Claiming Rewards

Claiming Rewards

Proton is so mysterious and scary at times. The first time that I tried to claim validator rewards, I thought that I accidentally sent them the wrong account. Thus I figured that a post about how to do this correctly would be useful.

Voter Rewards

To claim voter rewards, unlock your wallet and run the following command (replacing luminaryvisn with your producer name):

./cleos.sh push transaction '{
  "delay_sec": 0,
  "max_cpu_usage_ms": 0,
  "actions": [
    {
      "account": "eosio",
      "name": "voterclaim",
      "data": {
        "owner": "luminaryvisn"
      },
      "authorization": [
        {
          "actor": "luminaryvisn",
          "permission": "owner"
        }
      ]
    }
  ]
}'

Validator Rewards

Eoseo allows us very granular control over permissions. Here we are creating a new permission called "claimer" using our active key:

./cleos.sh set account permission luminaryvisn claimer '{"threshold":1,"keys":[{"key":"EOS83tLDZorE8eQDhKrZdUG21DG1jctGhEJDEKpsfKJ6kjbQHtCjg","weight":1}]}' "active"

Now, we configure the permission we just created called "claimer" to be able to claim rewards and do nothing else:

./cleos.sh set action permission luminaryvisn eosio claimrewards claimer

Finally we are able to claim rewards:

./cleos.sh system claimrewards luminaryvisn -p luminaryvisn@claimer

We can only do this every 24 hours and just because the command appears to execute, doesn't mean that you actually had any rewards to claim.

I created a script to automatically perfrom these actions for you. Set it up as a cron job to run every day. Apparently you can claim every 24 hours plus 1 second, so it may not actually be able to claim on every single run. Note that you may want to use another keypair when you create the permission (for security reasons) – at some point, there will be another blog post about that.