Proposal: New Custom JSON Standard for Reactions/Emojis

in Hive Improvement10 months ago

I've been waiting a long time to make this post. 😅


Basically, what I've done on is that I combined emojis with upvotes.


You can set a certain percentage to emojis, which when used as reaction on a post/comment, will also result in an upvote (if enabled).

This makes it (hopefully) super easy to i.e. reward comments on your posts.


To showcase emojis across frontends though, we need to save this data within in hive and make it accessible via hivemind.

Right now, reactions/emojis can (and are) already written to Hive via Custom JSONS, but there isn't a way to get a list of reactions for a specific post.

For inji, I have to do it quick and dirty and save the votes on Hive posts/comments within the database. Would be much better and cleaner to receive reactions either as a separate Hivemind call or within the post-object.

Possible Solution

    id: `reaction`, // example
    requiredPostingAuths: [user], // string - i.e. therealwolf
    json: {
      app, // string
      user, // string
      author, // string
      permlink, // string
      reaction, // string
      emoji, // string - i.e. ❤
      timestamp // date - ie. moment.utc().valueOf(),
    requiredAuths: [],



    required_auths: [],
    required_posting_auths: ['brianoflondon'],
    id: 'reaction',

I named the id reaction, but it could theoretically also be named emoji or something else.

Another question would be whether this should be integrated directly into Hivemind or a HAF specific project.

Looking forward to your feedback!



Nice. I will make a plug to parse the custom_json ops and make data available via endpoints on HAF Plug & Play.

This was on the roadmap during the communities rollout, but never happened.

i think we should have a ton of emojis on hive. Simple because they can be NFts at one time.

Could be really cool.

Every community with own NFT emojis sounds really "want it".

I would not want that a certain emoji which I can´t influence is associated with a specific %upvote number. I curate manually according to the amount of work and a post of a pic with a few lines gets a much less %age than a 1000 word article, yet both can be ❤️.

I completely agree. The length of the posts should not matter. And it does not matter on traditional social networks, for example Facebook, Twitter, YouTube. Facebook is full of short posts. People rarely write long posts. And on YouTube, the short, mostly funny videos on YouTube are often more successful than the longer videos. Many people love short videos.

Think of it as a vote on which type of reactions the post generated

This all looks like Hive engine stuff that I'm typically scared to mess with.

With your help I hope to successfully mess with it.

From what i understand I'll go to right?

Is there any reason to add timestamp to the custom json since that info is provided on the block itself? Also seems like something nice that might be possible with HAF(I think moving more stuff from Hivemind to that would be nice, as it would mean I can keep track of only what I want instead of all of Hivemind, a problem I am dealing with right now). Thought about this in the past and seeing others have the same idea is awesome.

Good point. No, timestamp shouldn't be needed in that case.

Feels good, makes sense. So I guess you also write into a local DB and select from there ‚per post‘? The Reaction by smily approach makes way more sense for me as well. I mostly spray 5%,11% and 22% with fast clicks and manually crank up to 50-100% votes sometimes.

I think using emojis are cool but not sure about having them for certain % votes. I might get confused unless it is auto. Plus I am a manual voter so not sure how it will impact my voting ability

I 100% approve this one. 😀


Question... why the two fields?


Is it supposed for one to be the encoded format and the other the emoji reference metadata?

I wonder if you can do this kind of thing somehow with the follow, command. Right now, you can pass ["blog"] or []. Why is it an array instead of a boolean unless you can put other things like ["reactions", "blog"]?