Important note for anyone holding HBD before hardfork 25

in Hive Improvement3 years ago (edited)

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 https://hiveblocks.com/@{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 https://hiveblocks.com/@hiveio 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.

Sort:  

Thanks for the comprehensive answer 😅

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

Probably easier to go to https://peakd.com/@{my_account}/wallet and check the actual pending amount ;)

image.png

Unfortunately, that doesn't show the date when the last interest payment was made, so it doesn't allow for easy optimal planning.

Do you think this will be enough?

image.png

Always making things easier for common folk 🙌👏

Yes, that seems fine.

Love that feature thanks!

Showing when the next payment/claim will be available might be more helpful.

This is already shown, but only when you are logged in and looking at your own wallet:

image.png

That should be enough

I dont own any HBD because im poor :D Rich peoples problems :P

The truth is, I don't know a lot of HBD holders who hold their own HBD onchain. Seems like a lot of it is being held on exchanges, where the exchange is collecting the interest.

We'll see if and how that changes after the hardfork, which should stabilize the price of HBD and discourage speculation on it. That, combined with the increased interest rates being voted for by Hive witnesses, should encourage more people to keep their HBD in their local savings balance.

There's not even many exchanges which accept HDB(and none with another stable pair). I hope more exchanges decide to list in the future.

There are even some exchanges which "accept" HBD and then keep it. Ugh.

Whats the exchange to avoid?

Binance ,I guess

I understand binance is one (reporting what I've heard, have no personal experience), but any exchange that doesn't support HBD but won't send it back if you ask.

Oh, I thought you meant more like an exchange which showed they accepted HBD but didn't credit you for it haha. Not sending it back is scummy, but if its insanely low value, it probably might cost them more in manhour to send it back then its worth, I know Binance does recover assets that they support for a fee(had someone use that feature), but no clue on assets they don't support.

It's weird, in my five years on Steem/Hive, there has only been one interest payment I've been aware of. I'll check out that link you dropped to see if I can spot any more.

Thanks man.

Cg

At a quick check, I can see you got paid one on 2021-05-25 06:38:00. Unfortunately, it's not easy to find previous payments before the last one without using something like HiveSQL.

Right, I don't remember seeing it, does it just get automatically added?

EDIT: seen your other reply. Thanks.

Cg

With an onchain contract/ liquidity pool between Hive/HBD i think the coin would become much more stable and people want less likely to hold on exchanges.

Also, the 10% interest can be paid there, in the liquidity pool :)

I'll give it some thought after the hardfork.

:) perfect

Would be super cool because liquid assets would become a use case everyone would benefit from. And the 10% would end up in a much more useful way :)

I'm one of the few who keep an HBD savings, started a few weeks ago. 11HBD right now but better than nothing! Thanks for the work on it, will be good to incentivize the savings account.

Are there plans to give interest on hive held in there? Just curious.

Someone did suggest the idea, but I think the general consensus was that Hive already has a staking mechanism (power up). These are some of the anti-"Hive interest payments" arguments that I recall hearing:

Hive power already pays a variable base interest rate (it varies depending on things like overall supply of Hive/Hive power and the inflation rate of Hive, last time I checked it was ~3%) plus staked In addition, Hive power pays curation rewards for active voters (which easily yields an extra 8-11%). So an active hive power holder will typically earn around 14% APR (probably more given the curation rewards can compound weekly). In other words, if you want to earn interest on Hive, the current way is to power it up and earn by actively participating in governance of the network (by voting on posts and witnesses).

Creating a second staking mechanism for earning interest on Hive passively could also create a disincentive for Hive holders to power up, which means less hive power voting for witnesses, which would make it easier for one larger stakeholder to vote in their own slate of witnesses.

True, good point! We make enough hive with voting. Thanks for that.

I currently own $77.184 HBD, but I am not rich.
I live under the minimum wage.

The HBD I own comes mostly from rewards, and not from investments. Only a small percentage comes from interest.

Hbd last interest payment 2021-06-08 23:59:51.

img_0.30559681560466834.jpg

Imagine if someone made a bot that tracked everyones interest times and automatically sent 0.001 hbd to them to trigger their interest. It's kinda be a cool too and also be kinda funny to annoy people who are trying to hold off claiming interest.
I think you can also directly transfer hbd to someones savings right?


Communities I run: Gridcoin (GRC)(PeakD) / Gridcoin (GRC) (hive.blog)| Fish Keepers (PeakD) / Fish Keepers (hive.blog)
Check out my gaming stream on VIMM.TV | Vote for me as a witness!

Yes, I thought about that exact scenario as well :-) And yes, you can send to someone's savings account, it's happened maybe twice even where people accidentally sent HBD to the blocktrades saving account instead of our liquid account.

How is it possible to send to savings account ?

When I transfer HBD it doesn't ask me any option to send to liquid or savings ?

If you use PeakD, it's on the dropdown. If you use vessel, there's a option to send it to savings. I don't use other platforms so I can't help out on them, but there's probably a way and if there isn't, it can be added.

It depends on what wallet you use. In the command-line wallet, you use "transfer_to_savings" command. on wallet.hive.blog, it looks like this:

image.png

Can you confirm (and maybe update your post with that info) that the interest payment is triggered by a balance change and not by any operation involving HBD?
Therefore:

  • sending HBD to yourself and to the same balance will NOT trigger the interest payment.
  • sending HBD to yourself between liquid and savings balance will trigger the interest payment.

In my writeup, I described it as a balance change triggering the interest payment. That's what I was told. But I can't be 100% sure without reviewing the code.

But it should be easy to test empirically by doing a transfer and checking the results on hiveblocks.com, so I'll leave it as an exercise for the interested reader.

OK, I checked the code (way more accurate than empiric tests), and it is NOT a balance change that triggers the interest but any operation that involves HBD.

Any operation involving assets call function(s) (database::adjust_balance() which calls database::modify_balance() for liquid, or database::adjust_savings_balance() for savings) which will do the interest payment if required, whether the balances really change or not.

Even cancelling a withdrawal from savings can trigger an interest check and potential payment.

So it's better to tell people that any operation involving HBD could trigger interest payment!

way more accurate than empiric tests

Ah, speaks the overly-confident programmer :-) While I agree that code inspection plays an important role in determining in full how code is intended to function, it's my experience that empirical testing is also a vital part of determining actual functionality. And if I have to rely on just one or the other, I'm much more willing to trust empirical tests.

any operation involving HBD could trigger interest payment!

That's overly broad, IMO :-) Consider a hypothetical operation that changes the time period for which funds are staked. Such an operation would have no reason to call adjust_balance(). On the whole, I think that the best description is still that operations that change the balance are the ones that are intended to trigger interest payments. It's really only a current implementation detail that results in calls to this function even when the balance isn't changed (ie. when the delta parameter value passed is 0). And it's easy to imagine a future where the call immediately returns after checking that value, before triggering an interest computation.

Please make it 10% not 7%

Several witnesses have proposed increasing it to 10% after the hardfork, as only savings accounts will collect interest then, so the cost to the blockchain inflation rate will be lower. I have no strong opinion on 7% vs 10% as of yet, either sounds acceptable to me.

It is good and healthy to know that witnesses are always debating for improvements within #HIVE

1% per month would be so much easier. 😍

Thank you for the heads up appreciate it.

  1. So if the interest rate is 10% and drops to 7% I'll still get 10% if I don't make a HBD transaction? ;)

  2. After HF25 I can claim posts/curation rewards and if some is paid in HBD if I transfer it to savings that would trigger the event that's needed?

  1. No, you will only get 7% if you trigger the calculation after the interest rate change.
  2. Yes

What about right now, the HBD portion of the rewards, does it trigger the interest calculation on the liquid HBD if there have been 30 days from the previous one?

If you claim the rewards, this will change your liquid HBD balance, so I believe it should trigger an interest payment if you haven't had one in 30 days. But I've not confirmed this personally. But you should be able to check if you're in that situation.

Great detailed write-up with very valuable information, thank you. Btw, there is a typo in the URL from step 1a.

It's not a typo: it's not supposed to be a working URL, it's a template for how to generate a valid URL that is specific to the reader. The hiveio URL shows an example usage of this template.

Oh yeah, I didn't mean the placeholder parameter. I meant that the URL points to hivehlocks.com instead of hiveblocks.com.

Oh, thx! I've fixed it now.

Love the fact that we're incentivizing the holding of HBD. What is the long term reason behind this though?

Other witnesses such as @smooth (and others, just can't recall which right now) have been the driving force behind the idea of increasing interest payments on HBD as a "DeFi" play, so you may want to check some of their posts and comments. But my take on it is that "DeFi is hot right now, and Hive has had DeFi capability in the form of staking for interest for years, so let's make it competitive".

Well that makes sense. Is this part of the master plan to maybe add smart contracts?

It's an unrelated initiative, but I'm sure the smart contracts capability will open up more DeFi opportunities.

Is it possible to directly send HBD to the savings account of another user and trigger an interest payout this way or would it always go to the liquid balance first?

You can directly send to their savings account.

Thanks for the write and clarification on some things. It appears that this closes some holes in my thinking in the post I did earlier.

We will see how well the peg works post HF25, but it seems like we are on the right track. Hopefully the arbitrage seekers will see the opportunities when the peg breaks.

Thank you very mach 🤷😳

Hello sir,
I have never claimed my HBD interest before i forgot to claim that.
Will that add for the next claim or it will be new every month if we don't claim that

I think i missed to claim my past two interest.
Does it add automatically to my balance or it will vanish if we don't claim that. i am confused.
Have a great day. 😊🙏⁦✌️⁩

The system will calculate and give you the interest whenever your HBD balance changes, IF it hasn't already computed it in the last 30 days. So you don't have to necessarily claim it: external events can cause it to be computed for you. But if your balance isn't being changed, you may need to make a change to it (either by sending HBD from your account, or sending HBD to your account). It works differently than the mechanism for claiming posting rewards.

thanks for the response, sir.
will understand slowly 😁
Have a great day.

Thanks for the information. I am just using the HBD I earn to buy Hive and stake it. Want to get to Dolphin status by the end of the year.

That's probably a sound strategy. Best of luck in your journey!

Thank you, @blocktrades! I like to think so! It seems to be working so far. Happy weekend! 😀
!ENGAGE 10
!ALIVE



Made in Canva

@lisamgentile1961
___

You Are Alive and have been rewarded with 0.1 ALIVE tokens from the We Are Alive Tribe, and it's paid for by the earnings on @alive.chat, swing by our daily chat any time you want.

Thank you for your engagement on this post, you have recieved ENGAGE tokens.

Great post and notification! Thanks!

hbd for life this is so awesome had no clue about hbd before this article!

Congratulations @blocktrades! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s) :

Your post has been really appreciated and was the most upvoted of the day

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

So that I can understand correctly...
If I make a transfer with the liquid SBD to another account that will allow me to continue to earn and collect the interest within the Savings HBD? Or if I deposit/withdraw into/from my savings HBD that will allow me to collect the accumulated interest?

I'm suggesting that you may want to transfer your liquid HBD balance to your HBD savings balance in the same account. This is because interest payments will only get paid to savings balances after the hardfork.

Sounds interesting...and in this case, does this point apply? what could I do?

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.

capt.jpg

The above image means you've received interest recently on your liquid HBD balance, but not on your HBD savings balances. And that make sense, because you only have HBD in your liquid HBD balance, your savings HBD balances is empty.

There's nothing you really need to do in this case. But if you want to earn maximum interest on your HBD, you could transfer it from your liquid HBD balance to your savings HBD balance. But the amount of extra HBD you would get is very small, so I don't think you should worry about it.

Thank you for your very complete explanation and suggestion.
suggestion.
But in the future, I mean, if the interest changes after the hardfork, can I put hBD in savings?

Yes, you will be still be able to move funds back and forth between liquid HBD and savings HBD balances after the hardfork.

Hive to ride the defi wave
Thanks @blocktrades for dumbing this down as much as possible. Hopefully this encourages users to hodl Hbd .

this is something that I'm looking about the HBD. Thanks for this very informative post!

Okay so I've just checked my interest payments and it says I had one last month, but I never saw it. Are you saying I have to transfer the HBD and then I'll see the interest payment in my account?

Cg

You can see it here:

image.png

The interest was added to your account, but I'm not sure if the UI wallets show the payment (that would be a feature of each individual wallet). I found it for your account on hiveblocks.com block explorer.

Ah okay, that answers the question I've just put on your other comment. Thanks :-)

Cg

Thanks for this info!
I just noticed you can put hive into your savings aswell, does that receive interest like hbd in savings?

No, the way to earn by staking Hive is to power it up. No interest is paid for hive stored in a savings account. The savings account for Hive was just created to enable you to keep your Hive a little safer, because it takes 3 days to withdraw it.

Thanks for a detailed explanation.

I'm curious why is the method so to calculate and pay interest once a transaction occurs. Also, Normally when locking something, interest should occur automatically. But in our case one need to do transaction each 30 days to be able to collect interest. I guess it looks bit complicated for a new user.

Secondly, Why is there a 30 days period? can it be short or longer or daily? How it would affect the overall mechanics. Of course shorter time period will give more compounded results.

I can't say with certainty the reasons why these decisions were made, because these decisions were made many years ago and I wasn't involved in the development of this feature in any way.

From my point of view, some of the design choices seem a bit strange. My best guess is that the developer(s) were concerned about computationally loading the network nodes.

Why is there a 30 days period? can it be short or longer or daily?

Yes, it could be made shorter or longer. But we haven't done any performance analysis of changing this aspect of the algorithm (although my gut feeling is that there would be little negative impact from reducing it some). Truthfully speaking, we didn't want to spend a lot of time on this feature, we're mainly focused on developments that we believe can have a higher long term impact and I didn't think changing the interest rate period would make much difference.

Thanks for explanation.

we didn't want to spend a lot of time on this feature, we're mainly focused on developments that we believe can have a higher long term impact

Completely agreed. Keep the pace up ;)

I think another reason for the delayed payment is small balances. With a low balance, too-frequent interest payments could be <0.001 and you'd get nothing. There are other ways to solve this though.

Sounds plausible, although it's difficult for me to imagine anyone who should be deeply concerned about losing such amounts.

Possible.
But for someone holding a stable coin, 30 Days is a very large period to incentivize and then a 3 days unlocking period as well. I guess may be first interest payment should be after 30 days, but should be reduced to 7 days or more often after that. Else, holding fund for 27-29 days and then if someone needs to extract/move funds, he would be missing on some decent amount, which isn't great for big holders.

You don't actually have to hold for 30 days. You can only get one interest payment every 30 days but if you hold for one day then sell, you still get the interest but you might have to wait for it (and perform some transaction that affects the balance, even if only by 0.001)

Very interesting post @blocktrades

Thank you for this

Good post. I will take consideration on it.

I have another question but about the HP. I saw days ago that a new "blockchain" system will be started and renewed, where the POWER DOWN process will be now in 3 Weeks and not 3 Months. What do you know about that?

Greetings and blessing ♥

I don't know anything about it.

Thanks for you answer sir. Good day.

Noted, thanks for the update. It makes the sense the "savings" account would be the one earning a little interest.

Thanks for taking the time to write this, was just a week or so ago I was talking to @smooth about how little people know of how the HBD interest works (me included partly) and suggested him to write a post about it. Reblogged!

Very interesting, but I will simply stick to the Hive "Power-up" system as I think that it's the easiest.

Thank you for the detailed explanation.

Yes, I think that's true for most people on Hive (including me as I hold much more Hive than HBD). But there are definitely some people out there who hold Hive dollars, and figured it was only fair to tell them how to prepare in order to maximize the amount of interest they receive during the transition in rules with HF25.

Yes, totally agreed and well done in your efforts to be fair to all.
Each to his own.

Thank you very much for this article. This is very useful and beneficial. Hope that the change is for the better.