Announcing steem-state - Build Any DApp on Steem!steemCreated with Sketch.

in #utopian-io2 years ago (edited)

A framework for creating arbitrary soft-consensus-based DApps on Steem! Build any DApp, from tokens to games.


steem-state is an npm package that allows developers to build DApps using the Steem blockchain.

The Steem blockchain is one of the fastest and most performant blockchains in existence and also has over 60,000 active users each day, with free and fast transactions. steem-state makes it incredibly easy to create decentralized apps on the Steem blockchain using soft consensus.

What is soft consensus?

Most, if not all, blockchains focused on the creation of DApps today such as Ethereum are based around the idea of smart contracts. DApps running using smart contracts have their transactions verified by each node in the network. But this method is not the only way; not every node in the network has to verify every transaction for each DApp even if it doesn’t apply to them. When a transaction is not verified by every node in the network, but only the ones who use the DApp that the transaction applies to verify that transaction, soft-consensus occurs.

To use an analogy, the most adopted internet data transfer protocols (such as UDP) don’t try to do anything special with the data that is being sent. These protocols let the two users who are communicating verify, authenticate, etc their own data. Not everyone on the internet authenticates and verifies every data packet; it’s just not feasible.Similarly, not everyone on a blockchain has to verify and authenticate every data packet. Ethereum is trying to introduce unneeded complexity to the problem of creating DApps by requiring that every user has to verify every transaction in every DApp, and it’s already hitting a scalabililty barrier partly because of it.

Anything that a smart contract can do can be done with soft-consensus, and soft-consensus can actually do much more. A soft consensus DApp is easy to hard fork without forking the main chain it runs on, and it has easy support for virtual operations (when a DApp creates a transaction that will execute after a certain amount of time), which Ethereum and most smart contract blockchains do not have, and will be implemented into the steem-state package in v2.0.0.

steem-state uses the custom_json operation type to create soft-consensus transactions. You can read more at the dev portal by searching up custom_json.


steem-state is a framework that allows developers to define events that occur on a certain transaction type, e.g. displaying data to the user or updating the internal state (such as the balance of the user). Using steem-state, one can create any possible DApp on the Steem blockchain, from tokens to games!

It can be installed by using npm install steem-state in any existing npm project.


In the future, version 2.0.0 will be released (currently in v1.0.7), which will include support for virtual transactions in DApps.


The best way to understand this is by trying out a tutorial, which can be found in the README on github. It will walk you through creating a fully decentralized messaging app on the Steem blockchain in 28 lines of code.


If you have an interest in helping develop virtual transactions for v2.0.0, simply email me at [email protected] or contact me in the steem-devs discord at @Shredz7. But the best way to contribute right now is to create tutorials for the project! Email me at [email protected] if you create a tutorial, because I will be glad to resteem it and post it on the repository wiki. This doesn’t really fit into’s actual contributing section, but a great way to contribute is to spread the word and build DApps using this package!

If you have any questions, feel free to comment on this post or email me at [email protected]


Great project.

Custom JSONS are great. There are so much possibilities to implement great ideas.

  • I know this is an early state but unit tests with a good code coverage would be good. If I was a dApp owner, I would like to see the project includes tests.

  • Sometimes, RPC nodes have hiccups and return funny things. Not sure dsteem handles that internally, but having retry mechanisms on that kind of unexpected responses may help not to miss any custom json.

  • Also, thinking about a feature which makes this also a notification bus to send certain events to registered endpoints. This would help running the steem-state in a black box, and push events to other apps. (any type of language may benefit with that way.)

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.

Need help? Write a ticket on
Chat with us on Discord.

Thanks for your recommendations!

Thank you for your review, @emrebeyler! Keep up the good work!

Great initiative. Its very important to always ask the questions for any application:

  1. What exactly needs to be decentralised and what doesn't?
  2. How much does it need to be decentralised.

For this application, we can allow for any level of decentralization; in the tutorials we demonstrate full decentralization but DApps like SteemMonsters use the same methods with less decentralization. It is important to choose the right amount of decentralization and therefore using steem-state may not be perfect for all DApps (ones who choose to be more on the centralized side).

This story was recommended by Steeve to its users and upvoted by one or more of them.

Check @steeveapp to learn more about Steeve, an AI-powered Steem interface.

It's great to hear more people are working on these issues. We would love to help and contribute. We have a dApp platform built at that is also in a prototype stage. We were discussing earlier today implementing incentivized decentralized relays and IPFS nodes to store state signed by keys and paid through fees. We already have AR/VR running in our containers. Find us on discord at

Great! I’m also trying to create a way to synchronise state for steem-state. I’ll hop on the discord and read more about your DApp platform!

Great initiative @shredz7

The steem chain has a lot of potential to exploit and thanks to this independent developers will be able to carry out their projects.

All the best, Piort.

Yes, I’ve already had multiple developers talk to me about building DApps using steem-state such as @dlux-io, which has already publicly announced their super interesting incentivization coin which might also open up the doors to even more potential for DApps running on Steem (the ability to create transactions).

I’m very excited about the future of steem-state and the Steem blockchain as a whole and would love to see Steem apps use the new potential allotted by steem-state!

I’m glad you’re interested in this technology. If you have any questions (Or suggestions for interesting DApps that could run on this for that matter), please reply!

Dear @shredz7

It's also great to see how responsive you are. Steemit need more people like you.

Thank you.

cheers, Piotr

Hi @shredz7!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server

Hey, @shredz7!

Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Get higher incentives and support!
Simply set as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

Want to chat? Join us on Discord

Vote for Utopian Witness!

Coin Marketplace

STEEM 0.17
TRX 0.03
JST 0.022
BTC 17433.40
ETH 531.49
SBD 1.16