Introducing Riemann

James Prestwich
Summa
Published in
2 min readMay 7, 2018

--

Summa is building the future of financial services on the blockchain. Subscribe to our newsletter and stay up to date at: summa.one

Today we’re pleased to announce the release of Riemann, a toolbox for application development on Bitcoin and dozens of other UTXO-based blockchains. Riemann makes it easy to build application-specific transactions. It assembles and disassembles scripts from human-readable strings, provides a simplified interface to spending P2PKH and P2SH outputs, and supports SegWit.

Riemann is focused and opinionated. It doesn’t manage keys or worry about nodes. It doesn’t debug scripts, and it doesn’t support anti-features like SIGHASH_NONE. Riemann cuts out the frustration and turns developer intent into transactions.

Script Support

Riemann is designed to take your script from the whiteboard to the blockchain as fast as possible. It accepts human-readable scripts and uses string formatting to insert pubkeys, timelocks, and other parameters.

To make development easier, Riemann distinguishes between the two parts of the scriptsig: the stack script and the redeem script. These are constructed and set separately, so you can easily interact with your script, its arguments, or both.

Multi-chain support

Riemann supports dozens of chains. Every significant Bitcoin-based chain is a first-class citizen. This includes mainnets and testnets for Bitcoin, Zcash, Bitcoin Cash, Decred, Litecoin, and many more.

Devs can access these via a global setting. Simply select the network you want to use. Everything else is handled behind the scenes. Riemann knows chain-specific prefixes, sighash algorithms, opcodes, and more so you don’t have to.

Using Riemann on multiple networks

Simple Interface

By providing several layers of abstraction, Riemann allows you to quickly get down and dirty with the serialization format, or stick with human-readable inputs. The tx_builder interface provides convenience functions for building inputs, outputs, witnesses, and transactions. The interface is the tool you’ve been waiting for. It accepts human-readable inputs and can guess a lot of transaction information based on script content.

What can I build with Riemann?

You can build wallets, cold-storage solutions, lightning clients, atomic swap tools, and so much more. You can write Script on a whiteboard and get an on-chain transaction in minutes. Riemann is a dev-friendly lingua franca for UTXO-based chains.

Anything you build with Riemann comes with native support for dozens of cryptocurrencies. You write your code once and re-use it over and over. You worry about the users, and let us worry about cashaddresses and SIGHASH_FORKID.

What’s next?

We built Riemann to be the tool we need. We’re excited to see it out in the wild. We’ll be using it in production, and hope others will too. If you want to get involved in development, reach out on Github, and subscribe to our newsletter or reach out to us at summa.one

--

--

James Prestwich
Summa
Editor for

Curry Enthusiast | Formerly Founder @ Storj, Summa, Nomad