Skip to content

OpenST is a framework for building token economies on Ethereum


Notifications You must be signed in to change notification settings


Repository files navigation

OpenST Contracts - Empowering Decentralized Economies

OpenST Contracts is a collection of smart contracts that enable developers to program Token Economies.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.


Project requires node and npm to be installed on dev machine.


In case of fresh clone, use --recursive-submodules option while cloning:

git clone --recursive-submodules

To update git submodules for already cloned repos, run:

git submodule update --init --recursive


Install npm packages, by running:

npm install

Afterwards, add ./node_modules/.bin to PATH environment variable:

export PATH=./node_modules/.bin:${PATH}

Compiling the contracts

The following npm script compiles updated contracts from the last call:

npm run compile

, to compile all contracts, run:

npm run compile-all



In openst-contracts to lint solidity files we use Ethlint. The following npm script lints all contracts within ./contracts directory:

npm run lint:sol

Ethlint is able to fix a subset of rules. The following npm script fixes (only a subset of rules) contracts within ./contracts directory:

npm run lint:sol:fix


ESLint is used to lint js files.

To lint all js files within ./test directory, run:

npm run lint:js

ESLint is able to fix a subset of rules. To fix js files, run:

npm run lint:js:fix

Running the tests

Before running the tests run ganache-cli by:

npm run ganache-cli

Run tests by calling:

npm run test


Please read for details on our code of conduct, and the process for submitting pull requests to us.


We use SemVer for versioning. For the versions available, see the tags on this repository.


See also the list of contributors who participated in this project.


This contracts are licensed under the Apache License Version 2.0 - see the file for details.