Blockchain smart-contracts in human language

Sawroom integrates the Zenroom VM to be used as a transaction processor in the Sawtooth blockchain distributed by the Linux Foundation's Hyperledger consortium.

To facilitate the creation of transaction families based on Zenroom and the Zencode human-friendly language for smart-contracts, the Sawroom TP uses the Sawtooth SDK in Python and the zenroom-py bindings.

Quick start

To try the Sawroom setup with a running Sawtooth is best to use the docker-compose inside docker-dyne-software repository:

git clone
cd sawroom
docker-compose up --build

Once all daemons are running, to run a transaction see:

docker exec -it zenroom-tp zenroom-tx --help

This will show you all the commands available from the zenroom-tx cli interface, which takes a Zencode script from stdin and sends its results into a transaction.


To send a transaction first generate a keypair using the keygen command

docker exec -it zenroom-tp zenroom-tx keygen FILENAME


docker exec -it zenroom-tp zenroom-tx transaction --help


The only environmental configuration accepted is is ZTP_VALIDATOR_ENDPOINT.


Copyright (C) 2019 by foundation, Amsterdam

Designed, written and maintained by Puria Nafisi Azizi.

Documentation contributed by Denis Roio.


Sawroom is Copyright (c) 2019 by the foundation

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <>.