Hive's Internal Market UX is Absolute Trash. (and how to actually fix it)
Let the hatchet job begin!
At this point it's totally unacceptable how not only the internal market works, but also every market on HiveEngine. I assume dLUX and the SPEAK network aren't going to improve much on these issues considering what I'm seeing.
Consolidate the order books ledger.
This is something that all the frontends can do.
Here's the UI from Tribaldex.com (HiveEngine Frontend)
This the Trade History, and it's completely worthless and human-unreadable. The problem with it is that a single taker order can appear as literally DOZENS of transactions. If a single taker order liquidates dozens of maker orders, they all show up in this log as separate transactions. This is obviously a really fucking stupid way to display the information. Like seriously, why? @elevator09 gets 9 transactions with the same timestamp for a single taker order? Seriously, no... stop it. So bad.
One taker order: one transaction.
Duh. Instead of listing every maker order that the taker order liquidated, you just list the average price of the taker order and consolidate 95% of the transactions on the order history. So so so so so obviously. Displaying the information in the current form is fucking ridiculous on so many levels. I seriously can't believe we've been making these rookie mistakes for literally years and no one even talks about it. Everyone is more concerned with "wen moon" than actually grinding out the infrastructure that might actually get us there one day.
But that's not even close to the worst problem.
The internal market doesn't even display trade history.
Which is arguably even lamer than HiveEngine's bonehead iteration, but it does conserve a good amount of bandwidth considering it's information that most users don't need.
Feast your eyes boys!
The shittiest UI ever that hasn't changed since I joined Steem in 2017. LOL fucking embarrassing. And we wonder why we don't get taken seriously. Silly.
The biggest insult of the internal market (and Hive in general) is that it always assumes that 1 HBD = 1 USD
- HIVE/HBD is an orderbook of Hive bids/asks being priced in HBD.
- Why are we using a dollar sign?
- HBD is not USD.
- Stop pretending that HBD is USD.
- It's fucking stupid and confusing.
If Hive is listed as 50 cents on the internal market, is it worth 50 cents?
The UI says that this is the case. 1 HBD OBVIOUSLY = 1 USD so on the internal market if you can buy Hive for 0.5 you are buying Hive for 50 cents a coin. Oh but wait, it's exactly the opposite of that and is fully dependent on the current value of HBD.
This requires further explanation.
Because it confuses me on a daily basis. Seriously just can't get over how bad this UX is. If Hive costs 50 'cents' on the internal market, but you can buy it for 51 cents on an external market, is the internal market a better deal? Not if HBD has depegged lower than $1, which is more common than not.
Having a hard time even explaining this problem.
Liquidity on the internal market is so bad and embarrassing (even with the stabilizer) that the price displayed is always wrong. The real price of Hive is determined by centralized exchanges (because that's where the liquidity is). When looking at the internal market, the displayed "dollar value" of Hive is actually an inverse representation of how badly HBD has broken the peg. This is what makes it so stupidly nonsensically confusing.
If Hive is listed at $0.50 on the internal market but is selling for $0.52 on Binance, then the price of Hive is 52 cents. However, because Hive can be bought for 50 'cents' on the internal market, that actually means that HBD has broken the peg to the upside because more Hive can be bought for less HBD. In this case a 50 cent Hive price on the internal market actually just means that HBD is valued at $1.04. Yeah, not confusing and stupid at all.
However, if Hive is listed at $0.50 on the internal market but is selling for $0.48 on Binance (the most likely case, and gets even more confusing when Tether breaks its own peg) this means that HBD is actually worth $0.96.
In both cases, Hive was listed as being worth 50 cents, and in both cases that displayed price had nothing to do with the value of Hive, but rather the value of HBD, and the information has to be reverse interpreted by the user looking at an outside exchange to arrive at the correct conclusion.
Making users do mental gymnastics just to use the internal market is really stupid, and I shouldn't have to explain why, but I will anyway.
The fucked up thing is that the Hive network ALREADY KNOWS how much both Hive and HBD are worth without looking at the orderbook on the internal market. It's embarrassing that our frontend doesn't employ this information to make it less confusing.
- This is accomplished by witnesses acting as oracles and providing a price feed for Hive on exchanges. Does the internal market use the price feed from the oracles to provide this desperately needed information to the internal market frontend? No, of course it doesn't.
So what should we change?
First of all, stop using the dollar sign on the internal market. HBD is not dollars, it's HBD. The only time we should use a dollar sign on the internal market is by estimating the current value of HBD, and perhaps the witness price feed for Hive which this is based on.
We also need to understand what the internal market is actually used for. The debt ratio of HIVE/HBD is less than 5%, and the haircut currently stands at 10%. The internal market doesn't exist to sell Hive, it exists to buy Hive, with HBD. Thus, the value of HBD is far more important than the value of Hive when making this decision (especially because the value of HBD is inferred by estimating the value of Hive). When HBD is valued over $1, in theory more people should want to sell. When HBD is valued under $1, they might want to buy HBD, but they definitely don't want to sell and may consider conversions instead.
Calculating the value of HBD.
The only way to know the value of an asset is to track how much people are buying or selling it for on exchanges. Unfortunately, HBD doesn't really exist on exchanges at this point. It never had enough liquidity on Bittrex, and now liquidity is zero because Bittrex and Hive are no longer friends.
The only other place HBD is listed is Upbit, and the regulations on this South Korean exchange are very strict and most of us to not have access because we don't live in South Korea. On sites like CMC and CoinGecko the price of HBD is constantly misrepresented as under-pegged, even though the actual value of HBD on the internal market has been doing quite well thanks to Smooth's stabilizer.
This is also another reason why @khaleelkazi doesn't get nearly enough credit for creating the pHBD/USDC LP on Polygon and allocating free yield to an HBD derivative at zero cost to the Hive ecosystem. If we can move this LP to Curve under the stable-coin pairing we can x10 the liquidity near the peg using the same amount of value inside the pool. That will be a huge development going forward, as pHBD will be the ultimate way to actually get on-chain HBD through the unwrapping process.
Calculating the value of HBD.
So how do we calculate the value of HBD? Again, unfortunately, the only place that HBD even exists is on-chain using the internal market. We really need to work on outsourcing our debt and increasing the demand to actually hold it. This is of course a terrible time to say so, but LUNA went x100 in a year because of UST. HBD could easily do the same for Hive, without the risk of crashing to zero in an instant.
Thus, the only way to calculate the value of HBD is to use the witness oracle price feed for Hive and reverse engineer the value.
The red highlighted section is the ultimate problem with the internal market.
We need to stop tracking the price of Hive. We already know the price of Hive. Bittrex tells us. Binance tells us. Upbit tells us... MEXC, HUOBI, etc etc. There are no shortage of Hive markets out there (even if a coinbase listing would be epic). Most importantly, the witnesses themselves interpret these external APIs and give their best guess on the price feed as to what Hive's current value is:
It's actually impressive that every witness has a different price feed. That means no single node is calculating this number in exactly the same way, which makes the whole system more robust and accurate. Given this snapshot, we see that the mean average of Hive is very close to 47 cents. This is how we estimate the value of HBD.
Instead of showing the BID and ASK price of HIVE within the context of HBD as if HBD is automatically perfectly pegged, what we should really be doing is estimating the USD value of HBD. That is what users really want to know when buying or selling it. The value of Hive is irrelevant and determined by (currently centralized) exchanges.
How is this done?
Let's assume the mean price feed for Hive was telling us Hive was worth 46 cents externally. We can see that there is a bid for Hive at 0.478805 HBD and an ask of $0.479430. Rather than making the claim that Hive is worth 48.9 cents we should instead reverse this to say that HBD is worth $0.96. Conversely, if the witness feed was telling us Hive was worth 50 cents, the internal market should list HBD as worth $1.02.
This is a much better UI and a much better UX because users will actually know if it is smart to use the internal market or not. This also has the synergistic side-effect that further stabilizes the price of HBD because users are selling high and buying low by design.
Speaking of stabilizing HBD.
The orders themselves should be constructed in a way that allows users to buy and sell HBD in this exact way instead of being based on trading Hive via Hive prices. Without the use of a bot, it is impossible to automatically sell HBD at $1.02 and buy at $0.98. That's a big problem. Any user on Hive should be able to trade based on the depegging of HBD and not on the price of Hive.
Trading based on HBD value.
I imagine this would take a hardfork and require permission and implementation by the top 20 witnesses. The way in which the price of Hive is calculated from the price feed is also a potential attack vector that requires further game-theory.
Anyone can create an internal market.
And anyone can create a bot that acts as a custodian for others.
If I recall correctly, Blocktrades is the entity hosting https://wallet.hive.blog/market out of necessity in the wake of the hostile takeover. But what is the internal market? It is simply a frontend display based on information that literally EVERY HIVE NODE has direct access to. All of this info is public and open source. Any dev on Hive could create a reasonable front end for the internal market instead of this hammered dogshit we have access to today... but nobody does it. Why?
There's a very good reason why.
There's no money in it for the dev that builds it (making it a good project for the @hive.fund). That's what it usually comes down to it when it comes to building infrastructure or generic value to a community (like roads or healthcare). No one wants to be the one to build it, but everyone wants to be the one to profit from the value created from the communal infrastructure. Consider this an extension of the tragedy of the commons.
This whole thing is just a tiny example of how crypto infrastructure simply isn't there or exists in a very haphazard user-unfriendly form. That's just the name of the game. Crypto is still in its infancy.
Still, it wouldn't take a whole lot of effort to clean this stuff up. At the end of the day we need to be thinking about strategies to train more devs and clean up the documentation and tutorials so they are much easier to navigate. Paying people to learn wouldn't hurt either, but that's more of an end-game play that we probably don't have time to worry about right now.
Hive is making some really great fundamental developments right now even though the market has been thrashed and we are on the brink of recession. Bear markets are for building. We aren't going to get the kind of stability we need until we have the infrastructure to operate independently of the current system. It's a long road filled with blood, sweat and tears, but I'm here for it. Are you?