I recently read about Tendermint releasing it's own public blockchain soon.

After crossreading their blog, I see multiple mentions of the EVM.

Does Tendermint implement the Ethereum Virtual Machine? Will Ethereum Smart Contracts also work on Tendermint?

  • The second link doesn't mention the EVM at all, as far as I can see. It looks like they're trying to build a blockchain framework that can have different types of executor plugged in; one could be an EVM. – Nick Johnson May 19 '16 at 12:08
  • Sorry posted that from mobile, will search for the correct link back home. – Afr May 19 '16 at 12:11

No, Tendermint does not implement the Ethereum Virtual Machine. With Tenderment, you can implemement 'smart contracts' in any language you choose.

Smart contracts speak to the Tendermint blockchain via a messaging protocol vs. actually running on the blockchain as they do in Ethereum. However you could use Tendermint to integrate with Ethereum if desired.

  • 1
    "vs. actually running on the blockchain as they do in Ethereum" is not quite correct. Instead of an EVM, you write your own application, in whatever language, that communicates with TendermintCore (the consensus) via a socket. The contracts/transactions are still very much "on the blockchain". Of course, the application can even be ethereum and the EVM. – Ethan Jul 24 '16 at 3:45

Yes, but you have to use more than just Tendermint. Tendermint itself is a consensus engine that doesn't know anything about application states or virtual machines. All it knows is that it needs to order transactions, which are just arbitrary bytes. To make Tendermint useful, it can relay transactions to an application running in another processes, using TMSP, and that application can be written in any language and support any arbitrary application state. So you can take existing ethereum codebases, adapt them to TMSP, and run them with Tendermint instead of ethereum's proof of work. And you can do this for the implementation in every language!

In fact, we've already done this in go:

geth-tmsp is a fork of go-ethereum that satisfies the TMSP interface, so it can be driven by a Tendermint blockchain. That is, you can use existing go-ethereum tools and web3 like you would, but with a Tendermint backend instead of the Ethereum networking and proof of work. eris-db is a smart-contract blockchain that hosts a fully compatible EVM (ie. you can run solidity contracts), as well as a capabilities system and a global key-value store. It also satisfies the TMSP interface and is natively driven by Tendermint.

We are working towards the launch of a public blockchain called Atom, which is really just a generalization of sidechains using Tendermint. One of the sidechains will host the EVM, so there will be a public Tendermint-powered blockchain hosting the EVM.


The tendermint protocol is best suited with LLVM. Since LLVM uses k-framework which provides a tool to verify smart contracts and implements defensive programming.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.