Ergo protocol description & reference client implementation
520
stars
10,758
commits
Scala
primary language
Sep 12, 2026
updated
The World still needs for better money. Join us in this quest.
Welcome to the repository for the Ergo Platform. Ergo is a Proof-of-Work cryptocurrency protocol that has been designed to offer a secure environment for new kinds of money, peer-to-peer interactions, trust-minimized financial tooling and derivatives. This repository contains the reference client, also known as the node, for Ergo.
The reference client is primarily written in Scala. While certain components of the protocol are implemented in other languages (for instance, sigma-rust is a Rust-based implementation of the ErgoScript cryptocurrency scripting language), the reference client provides the most complete and comprehensive implementation of the Ergo protocol at the moment.
Ergo, while sharing some commonalities with Bitcoin as a UTXO Proof-of-Work cryptocurrency, stands out due to its unique design and features. It has been built from the ground up to achieve its goals , introducing several innovative elements:
More papers can be found at docs.ergoplatform.com/documents.
The Ergo client operates under certain assumptions about its environment:
For instructions on how to build and run the node and UI, refer to the official documentation.
By default, the node processes all blocks from the genesis block. However, there are other options available that may be more suitable for hardware with limited resources.
ergo {
...
node.utxo.utxoBootstrap = true
...
}
ergo{
...
node.nipopow.nipopowBootstrap = true
node.utxo.utxoBootstrap = true
...
}
ergo {
...
node.stateType = "digest"
node.blocksToKeep = 2160 # store and process last three days only
node.nipopow.nipopowBootstrap = true # compatible with NiPoPoWs
...
}
For more detailed information on different modes of node operation, please visit docs.ergoplatform.com/node/modes.
Ergo utilizes three types of tests:
sbt test command.sudo sbt it:test command.sudo sbt it2:test command.You can use either IntelliJ IDEA (Community or Ultimate edition) or VSCode with the Metals extension.
Ensure that the project can be built with sbt before opening it in an IDE. You may need to resolve any dependency errors first.
To open the project in IntelliJ IDEA, select File / Open and navigate to the project folder. This will initiate the Project Import Wizard, which uses the SBT configuration (build.sbt file) to generate the project configuration files for IDEA. You can view the project configuration in the File / Project Structure... dialog. If the import is successful, you should be able to compile the project in the IDE.
This repository has modular structure, so only parts which are needed for an application could be used:
Using IntelliJ IDEA be sure to set Build Tools / sbt -> sbt shell / use for / builds, to avoid compilation errors
Ergo is an open-source project and we welcome contributions from developers and testers! Join the discussion over Ergo Discord in #development channel, or Telegram: https://t.me/ErgoDevelopers. Please also check out our Contributing documentation.
For common queries, please refer to our Frequently Asked Questions page.
Scala
83.7%
TeX
14.7%
Ergo protocol description & reference client implementation
520
stars
10,758
commits
Scala
primary language
Sep 12, 2026
updated
The World still needs for better money. Join us in this quest.
Welcome to the repository for the Ergo Platform. Ergo is a Proof-of-Work cryptocurrency protocol that has been designed to offer a secure environment for new kinds of money, peer-to-peer interactions, trust-minimized financial tooling and derivatives. This repository contains the reference client, also known as the node, for Ergo.
The reference client is primarily written in Scala. While certain components of the protocol are implemented in other languages (for instance, sigma-rust is a Rust-based implementation of the ErgoScript cryptocurrency scripting language), the reference client provides the most complete and comprehensive implementation of the Ergo protocol at the moment.
Ergo, while sharing some commonalities with Bitcoin as a UTXO Proof-of-Work cryptocurrency, stands out due to its unique design and features. It has been built from the ground up to achieve its goals , introducing several innovative elements:
More papers can be found at docs.ergoplatform.com/documents.
The Ergo client operates under certain assumptions about its environment:
For instructions on how to build and run the node and UI, refer to the official documentation.
By default, the node processes all blocks from the genesis block. However, there are other options available that may be more suitable for hardware with limited resources.
ergo {
...
node.utxo.utxoBootstrap = true
...
}
ergo{
...
node.nipopow.nipopowBootstrap = true
node.utxo.utxoBootstrap = true
...
}
ergo {
...
node.stateType = "digest"
node.blocksToKeep = 2160 # store and process last three days only
node.nipopow.nipopowBootstrap = true # compatible with NiPoPoWs
...
}
For more detailed information on different modes of node operation, please visit docs.ergoplatform.com/node/modes.
Ergo utilizes three types of tests:
sbt test command.sudo sbt it:test command.sudo sbt it2:test command.You can use either IntelliJ IDEA (Community or Ultimate edition) or VSCode with the Metals extension.
Ensure that the project can be built with sbt before opening it in an IDE. You may need to resolve any dependency errors first.
To open the project in IntelliJ IDEA, select File / Open and navigate to the project folder. This will initiate the Project Import Wizard, which uses the SBT configuration (build.sbt file) to generate the project configuration files for IDEA. You can view the project configuration in the File / Project Structure... dialog. If the import is successful, you should be able to compile the project in the IDE.
This repository has modular structure, so only parts which are needed for an application could be used:
Using IntelliJ IDEA be sure to set Build Tools / sbt -> sbt shell / use for / builds, to avoid compilation errors
Ergo is an open-source project and we welcome contributions from developers and testers! Join the discussion over Ergo Discord in #development channel, or Telegram: https://t.me/ErgoDevelopers. Please also check out our Contributing documentation.
For common queries, please refer to our Frequently Asked Questions page.
(top 30 of 54)
Scala
83.7%
TeX
14.7%