Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

SmartJ: Java smart contracts for Signum


Signum (previously know as Burstcoin) was the world's first HDD-mined cryptocurrency using an energy efficient and fair Proof-of-Capacity (PoC) consensus algorithm.

It was also the first to implement a turing-complete smart contract system in the form of Automated Transactions (AT), as specified by CIYAM. However, before SmartJ, the creation and deployment of smart contracts required writing (assembler-like) bytecode and testing on-chain, making the development of contracts cumbersome.

This project allows the user to write, debug, and deploy Signum smart contracts relying only on Java. You can use a simple text editor or your preferred IDE. SmartJ consists of the following key components:

  • a Java abstract class defining the basic API available for contracts
  • Emulator: an emulated blockchain and respective UI
  • Compiler: a system to convert Java bytecode into Signum AT bytecode that can run on the Signum blockchain

Simple hello world contract

As any open source project, this is experimental technology. Please carefully inspect your compiled AT contracts and test it exhaustively on the testnet before production.

Sample Contracts

Take a look on the samples source folder.

Using (write your own contract)

Sample application

The easiest way to start with SmartJ is to clone this project and import as an existing gradle project using your preferred IDE. Check the samples source folder and modify existing contracts or create new ones.

Add Signum SmartJ to your gradle project

Add the following to your file:

repositories {
	maven { url '' }
dependencies {
	implementation 'com.github.signum-network:signum-smartj:-SNAPSHOT'

Add Signum SmartJ to your maven project

Add the repository to your configuration:



This code is licensed under GPLv3.



Donation address: S-JJQS-MMA4-GHB4-4ZNZU