Skip to content
Monorepo for Kosu (濾す). Includes network client, solidity contracts, and supporting libraries/tooling.
Go TypeScript Solidity Vue JavaScript HTML Other
Branch: master
Clone or download
Latest commit 924d628 Oct 21, 2019

This monorepo contains the packages that implement the Kosu protocol, alongside supporting packages and developer tooling.

Documentation for Kosu packages is available in this repository, and hosted at



Contract packages

Smart-contract packages (Solidity) including the core Kosu system contracts and SubContract SDK and contract test suite.

Package             Version Description
@kosu/system-contracts npm The core Kosu contract system in Solidity (with low-level wrappers).
@kosu/solidity-tests npm TypeScript test suite for the Kosu contract system.
@kosu/subcontract-sdk npm The Kosu SubContract interface and example implementations.
@kosu/migrations npm Scripts and utilities for deploying Kosu contracts to Ethereum networks.

Client packages

Kosu network clients (currently, only go-kosu). Includes validator implementation, full/light node's, CLI, and JSONRPC server.

Package Version Description
go-kosu version The reference implementation of the Kosu network in Go, built on Tendermint Core.

Library packages

Client/server libraries for interacting with the Kosu network and contract system.

Package             Version Description
@kosu/kosu.js npm Exports all Kosu helper classes, utility functions, and contract wrappers.
@kosu/node-client npm TypeScript client for interacting with a Kosu node over JSONRPC.
@kosu/genesis-cli npm Library and CLI for generating network genesis files from contract sate.
@kosu/contract-utils npm Utilities for interacting with Kosu (decoding event logs, etc.).
@kosu/contract-helpers npm High-level convenience wrappers for interacting with Kosu contracts.

Utility/development packages

Package             Version Description
@kosu/deployed-addresses npm Kosu contract addresses for various Ethereum networks.
@kosu/test-helpers npm Helpful utilities for testing building Kosu contract-related tests.
@kosu/types npm TypeScript type definitions for Kosu projects.
@kosu/dev-images npm Development docker images and supporting scripts for Kosu packages.
@kosu/kosu-geth version Geth PoA configuration for private Kosu test networks (CI, etc.).
@kosu/tslint-config npm TypeScript linter base configuration for Kosu TypeScript projects.
@kosu/tsc-config npm TypeScript compiler base configuration for Kosu TypeScript projects.
@kosu/web-helpers npm Simple web interface for interacting with the Kosu contract system.

Install Instructions


In order to build the full monorepo, the following is required:


MacOS users can install most required packages with Homebrew package manager.

For other operating systems, see the official install instructions for each required package (linked above).


This will also install Node.js if it is not already installed.

brew install yarn

Ethereum tools

To install the go-ethereum suite with brew:

brew tap ethereum/ethereum
brew install ethereum

Jq (JSON query)

To install jq (JSON parsing binary):

brew install jq

Clone kosu-monorepo

Clone the repository via SSH:

git clone

Or via HTTP:

git clone

Build packages

Install dependencies:


To build all packages:

yarn build


Generated documentation is published for the following packages with each commit, and published to

  • go-kosu: Golang Tendermint-based network reference implementation and CLI.
  • @kosu/kosu.js: TypeScript library for interacting with the Kosu contract system and network.
  • @kosu/system-contracts: The core Kosu system smart-contracts in Solidity, and TypeScript test suite.

Documentation is also checked in to each package and viewable on GitHub.

Docker images

Various development images used for Kosu CI/CD and development are publicly available on GCR (download with docker pull), and built from each master commit.


A custom Node.js (lts) image with additional binaries used to assist in building/testing Kosu packages. Drop-in replacement for node:lts image.

  • GCR URI:


A custom golang (1.13-stretch) image with Tendermint and other binaries pre-installed, used as the CI image for go-kosu (Tendermint is compiled into kosud and not needed for production builds, but used in testing).

  • GCR URI:


Contains geth with PoA consensus in a single-node private network configuration used for testing Kosu system contracts. Note that contracts are not pre-migrated and must be deployed with @kosu/system-contracts (see scripts).

  • GCR URI:


Pre-built binaries for go-kosu are available (per-commit CD builds are currently Linux/x86_64 only, build locally for other targets):


Kosu network client reference implementation, built on Tendermint consensus. Run kosud --help for usage.

chmod +x kosud
install kosud /usr/local/bin


Command-line interface for kosud (run kosu-cli for usage).

chmod +x kosu-cli
install kosu-cli /usr/local/bin


We strongly encourage all contributions! Read our contribution guidelines and feel free to reach out with any questions.


To report bugs within a specific Kosu package, please create an issue in this repository (template will auto-populate).


Kosu is being developed as free open-source software under an MIT license.

You can’t perform that action at this time.