Important note for anyone holding HBD before hardfork 25

Note: This post was inspired by a question from @demotruk. I decided the topic was of general enough interest and associated complexity that his question and related issues were better handled in a full post.

After hardfork 25 triggers, the blockchain code will no longer pay interest on HBD holdings unless the HBD is held as “savings” (in an HBD savings balance).

I’m writing this post to give some quick advice on how to handle this change if you hold (or plan to hold) a significant amount of HBD in your account before the hardfork, and you would like to maximize the interest that you get paid for holding it.

There is also some information in the background section that may be of interest to anyone holding HBD. If you don’t hold much HBD, you can cheerfully ignore the rest of this post.

Some background notes on how HBD interest payments work

Hive pays interest on HBD only when there is an HBD balance change

The first thing to know is that Hive only makes an interest calculation when an HBD balance in an account changes. So if you received 10 HBD one year ago, and you’ve never sent or received any HBD since then (i.e. the balance has never changed), you’ve not yet received any interest on that HBD. To get your interest, you need to send or receive some HBD to cause the balance amount to change.

Hive only considers the current interest rate when it computes interest

Another important thing to note is that the interest rate that gets paid is soley dependent on the current interest rate at the time when the interest rate calculation is triggered. To see the importance of this, consider the following scenario: You’ve held HBD in an account for one year, and the interest rate on HBD was 3% during that time. The witnesses vote to change the interest rate to 10%. If you now send some HBD from your account and trigger the interest rate calculator for the first time, you will receive 10% for the entire year since your account balance changed, instead of 3% for that one year in which you held the HBD.

The fastest rate you can trigger interest rate payments on an HBD balance is once every 30 days

The next thing to know is that Hive will make at most one HBD interest payment for an HBD balance every 30 days. So if you’ve received an interest payment for a balance in the last 30 days, you can’t trigger another interest payment yet (you have to wait a full 30 days from that last payment).

Each Hive account has two separate HBD balances which receive interest independently

In everything I’ve written above, you may have noted that I was always referring to “an HBD balance” instead of to “a hive account”. This is because each hive account has two distinct HBD balances: a regular “liquid” balance from which funds can be sent immediately and a “savings” balance where it takes 3 days to withdraw funds.

All the rules for interest payments I’ve discussed so far treat each of these balances as completely separate things. *So if there is only a change in your savings HBD balance, this will NOT trigger an interest payment for your liquid HBD balance account, and vice-versa. And the blockchain recalls the last change date for each of these balances separately and applies the 30 day minimum interest payment rule separately to each of these change dates.

Also, as a reminder, after hardfork 25, the liquid HBD balance will no longer receive interest payments at all.

How HBD holders can maximize their interest payments

If you currently hold HBD as a liquid balance in your account, you will probably want to collect as much interest as possible on that HBD before Hive stops paying interest on this balance (i.e. when HF 25 triggers). Currently it expected that HF 25 will be triggered on June 30th (ie. just under two weeks from now).

Step 1: determine when your liquid HBD balance last received an interest payments

a. Go to{my_account} where {my_account} = your Hive account name.
b. Search for “Hbd last interest payment” and lookup the data there. For extra points, you may also want to check the date of your “Savings hbd last interest payment”. If either of these dates is shown as “1970-01-01 00:00:00”, then it means that the associated HBD balance has never yet received an HBD interest payment.

For example, if we look at I can see at the time of this post that “Hbd last interest payment” = 2020-10-21 02:45:12, which means it hasn’t received interest for several months. And it has 43.575 HBD that it could potentially collect interest on.

Step 2: figure out how to maximize your interest rate payment before the hardfork

a. Add 30 days to the date for your “Hbd last interest payment”. This new date is the earliest day you can trigger another interest payment for your liquid HBD balance.

If it is after the hardfork date, then you can’t receive any more interest on that balance as long as it is held in liquid form.

In the example of @hiveio, we can see that not only can it collect interest before the hardfork, it can collect it right now, because it hasn’t collected interest in quite some time.

Step 3: decide if it is worth it to maximize your interest return for the remaining time till the HF

So you may want to consider transferring the HBD in your liquid balance to your HBD savings balance. This will allow you to start building up “interest time” for that HBD.

There is one disadvantage to this transfer: once it is in your HBD savings balance, it will take you 3 days to transfer it back out. So this transfer will only be beneficial if you plan to hold the HBD in your savings account for a while (at least 30 days), and you don’t mind waiting 3 days after you decide you want to do something with the HBD that you’ve moved there.

So what should @hiveio do in this case to maximize its HBD? There are two plausible choices:

  • make an HBD transfer (in or out) that triggers an interest payment. This will trigger an interest payment on the HBD that’s been held there since the last interest payment. For best effect with this strategy, hiveio should wait until just before the hardfork to get the maximum amount of interest, but doing it a few days early wouldn’t matter much. Note that someone else could also defeat this “wait till the last moment” strategy by sending some HBD there 29 days before the hardfork. In this case, if the funds were kept in the liquid account, hiveio wouldn’t be able to collect interest for those 29 days. In that case, hiveio could make the 2nd choice to get that remaining interest time back:
  • transfer the HBD to hiveio’s savings HBD balance. This will do two things: 1) it will trigger an immediate interest payment for the HBD in the account and 2) the funds will start earning “interest time” in the HBD savings account.

One final point for financial oracles

There’s one last “interesting” aspect to how Hive calculates interest. Generally speaking, it doesn’t matter much, as long as interest rates don’t change often or rapidly, but I’m adding information about it for the sake of completeness.

As I mentioned earlier, Hive computes an interest payment solely based on the interest rate at the time the calculation is performed. It doesn’t matter what the interest rate was during the time since the last HBD calculation.

So, while normally the optimum strategy for interest payment collection is to collect it every 30 days, in order to maximize interest compounding, you might not want to do that if you believed that interest rates are likely to increase in the near future. For example, let’s say you’ve just passed the 30 day interval when you can collect an interest payment again, and Hive is currently paying 3%, but you’ve heard witnesses are considering increasing the rate to 10% next week. In that case, you would likely be better off waiting a week before you trigger your interest payment, so you could collect at a 10% interest rate instead of 3%. But one final point: this isn’t entirely under your control as someone could send you some HBD, automatically triggering the payment to you at 3% :-) So strategies like this can only really be considered by accounts that are mostly dormant.

3 columns
2 columns
1 column