Skip to content
Cosmos SDK (Tendermint consensus) side-chain implementation for plasma
Go JavaScript Solidity Other
Branch: develop
Clone or download
hamdiallam Hamdi/datastore (#170)
* merge the blockstore into the data store. add corresponding keys and lowercase filename

* merged into one datastore. fixed tests

* re-add NextPlasmaBlockHeight into store api

* handlers reflect the changes of the store

* single querier file under the /data/... route

* add the height into the block struct. app reflect changes

* remove hardcoded store name

* fixed errors in the cli

* fixed build errors in test

* datastore arg after context. parseHeight bug and ErrDNE for nonexistent plasma blcok

* Update store/querier.go
Latest commit e079a14 Jul 30, 2019

Plasma MVP Sidechain

Go Report Build Status codecov Discord license

Implementation of Minimum Viable Plasma compatible with our rootchain contract

What is Plasma?

Plasma has two major components: verification and computation. Verification is handled by the rootchain contract, which resolves any disputes and distributes funds accordingly. Computation is handled separately by a sidechain, which maintains its security through reporting proofs via merkle roots to the rootchain contract.

Plasma MVP utilizes a UTXO model, which allows for secure and compact proofs. Learn more about plasma on!

We are using Tendermint for our consensus protocol. This sidechain currently supports a single validator, but will be updated in the future to support multiple validators.

Quick Start

Install using a script

This script can be used on a fresh server that has no dependencies installed.

curl >
chmod +x

Manual Install


Pull the latest version of the develop branch.

make install

Plasma Node:

Run plasmad init to start an instance of a plasma node. Use the --home <dirpath> to specify a location where you want your plasma node to exist.

Navigate to <dirpath>/config/ (default is $HOME/.plasmad/config), set configuration parameters in config.toml and plasma.toml. Run plasmad start to begin running the plasma node.

Plasma Client:

Navigate to $HOME/.plasmacli, set ethereum client configuration parameters in plasma.toml. Use plasmacli to run any of the commands for this light client

Plasma Architecture

See our research repository for architectural explanations of our Plasma implementation.


See our documentation


See our contributing guidelines. Join our Discord Server.

You can’t perform that action at this time.