Skip to main content

Currency Framework

The Currency Framework allows you to quickly launch & customize an entire decentralized application with currency-related transactions supported natively and automatically. In contrast to closed loop systems like smart-contract platforms, greater flexibility in supporting conventional code is offered by the ability to directly modify any & all application level code. The functionalities associated with peer-to-peer currency transactions, chain data construction, and more are encapsulated in an easy-to-use framework to allow you to begin developing a decentralized application with it's own internal currency.

This offers you the benefits of building and customizing your own application, with the support of a tested underlying framework saving you the effort involved in supporting conventional balance style transactions. Example entrypoints are supplied to make it quick and easy to launch your application immediately, which automatically supports a live, working token upon which your own features can be easily added.

Euclid Development Environment

It is recommended that you run this framework as part of a Euclid Development Environment project which will handle the installation and configuration of the project via the template described below, as well as provide a fully integrated minimal development environment. Manual installation instructions are provided below for completeness.


The Currency Framework is distributed as a g8 template project that can be built with giter8 and customized to your organization. The template exposes the Main method for both the L0 and L1 applications which allows full customization of their functionality.

See the project repo for further detail.


Make sure you have Scala installed and then install giter8

./cs install giter8

Now you can install the template

g8 Constellation-Labs/currency --tag VERSION_TAG

Run in the Tessellation repository

Run sbt shared/publishM2 kernel/publishM2 keytool/publishM2 sdk/publishM2 dagL1/publishM2 currencyL0/publishM2 currencyL1/publishM2 

Compile and run the generated project.