Skip to content

Developer's Guide#

Welcome to the Ergo Developer's Guide

This comprehensive guide is designed to provide an overview of our platform and introduce you to the various resources available for developers. Whether you're a seasoned blockchain developer or just starting out, this guide will help you navigate the Ergo ecosystem and understand its key features and functionalities.

Connect with Our Community#

If you encounter any issues or have questions, feel free to connect with us on any of the following platforms. All our chat platforms are bridged, ensuring seamless communication:

For in-depth discussions and community interactions, join our forum at ergoforum.org.

Contributing#
  • We host regular hackathons which are a great opportunity to get involved. For more information and links to past entries see this page
  • See the Contributing Guidelines for information on bounties and grants.

Ergo Platform Overview#

Ergo is a revolutionary platform that establishes the foundation for a new wave of blockchain-based applications. It is designed with a focus on decentralization, scalability, and security. Ergo's standout features include its advanced smart contract capabilities, efficient proof-of-work consensus algorithm, and robust transactional model. This section provides an overview of Ergo, its key features, and resources for further exploration.

Introduction to Ergo#
  • Get a concise overview of Ergo, its standout features, and the technology and decisions that power it on the Why Ergo? page.
  • Find answers to the most common questions about Ergo in our FAQ.
Technical Insights#
  • Protocol Overview: Dive deep into the core mechanisms of Ergo's protocol.
  • EUTXO Benefits: Understand the advantages of Ergo's Extended UTXO model, which allows UTXOs to carry arbitrary data and complex scripts.
  • Key Features:
    • Mining: Ergo utilizes Autolykos, an efficient, ASIC-resistant Proof of Work algorithm designed for fair launch.
    • NiPoPoWs: Short for Non-Interactive Proofs of Proof-of-Work, NiPoPoWs are compact data structures that validate blockchain events without needing full network connectivity or downloading all block headers. They enable efficient light clients, log-space mining, and trustless sidechains.
    • ErgoScript: A simple high-level language that enables clear descriptions of contractual logic and supports flexible crypto-contracts based on Ξ£-protocols.
    • Storage Rent: Also known as demurrage, this mechanism mitigates blockchain bloat and turns it into a profitable venture by charging for on-chain storage.
    • Turing Complete Smart Contracts: Ergo supports Turing complete smart contracts, enabling complex on-chain computations.
Documentation & Reports#

Understanding Ergo#

Ergo is a next-generation Proof of Work smart-contract platform that enables new models of financial interaction, underpinned by a safe and rich scripting language (ErgoScript) and flexible and powerful Zero-Knowledge proofs (Ξ£-protocols).

Transactional Model#
  • Ergo adopts a transactional approach similar to Bitcoin's Unspent Transaction Output (UTxO) model. In this model, transactions utilize and produce single-use entities known as a 'box'.
  • Every transaction in Ergo represents an atomic state transition. This means a transaction eliminates a box from the state and introduces new ones in its place.
  • The eUTXO model allows each UTXO to carry arbitrary data and to be protected by an arbitrary predicate (or spending condition). The data can be used to represent arbitrary tokens or smart contract states.
Boxes & Their Components#

Here are some introductory resources that cover these concepts.

Ergo Infrastructure#

Ergo Node & Network#
  • Ergo Node: The Ergo Node forms the core of Ergo's P2P network, maintaining and synchronizing the entire blockchain.
  • Bootstrap from UTXO Snapshot: Expedite the setup of a pruned full node on the testnet by bootstrapping from a UTXO snapshot.
  • Fork Your Own Chain: Learn how to customize and create your own chain with specific parameters.
API & Programmatic Access#
  • Node API: Gain comprehensive overview of the Ergo node API functionalities.
  • Public APIs: If you prefer not to run your own node, you can utilize these public APIs for a variety of functionalities.
Explorers#
Toolkits#
  • danaides: A high-performance blockchain toolkit.
Off-chain#

Transactional Basics#

Tutorials & Guides#
Tokens & NFTs#
  • Issuing a Token: A step-by-step guide on how to issue a token on Ergo.
  • Burning a Token: Learn how to burn a token, effectively removing it from circulation.
  • Minting an NFT: A comprehensive guide on creating a Non-Fungible Token (NFT) on Ergo.
  • Minting a on-chain NFT: Don't want to rely on third-party storage? You can squeeze a NFT directly into the registers!

App development#

Developers have a plethora of tools, libraries, SDKs, frameworks, and utilities at their disposal to seamlessly interact with the blockchain, craft applications, and present them to users. Navigate through the Developer Section to use grid buttons that help refine your technical stack requirements and pinpoint the ideal tooling.

If you're aiming to develop a comprehensive decentralized application on Ergo, consider the following SDKs and frameworks tailored to your specific needs:

As a spreadsheet!

Most repositories are also categories on grist. This is a great place to start if you're looking for a specific repository or want to see what's currently being worked on.

Primary SDKs#
Alternative SDKs#
  • Ergpy is a Python-JVM wrapper facilitating interactions with the Ergo blockchain.
  • Mosaik is a dedicated UI system crafted for Ergo dApps.
  • JSON dApp Environment
  • Headless dApp Framework: A Rust-based framework for creating Ergo Headless dApps, marking the debut of a portable UTXO-centric headless dApp development framework on any blockchain.
  • RustKit (In Development): An upcoming toolkit aiming to align the Rust development experience with the JVM.
Payments#
  • ErgoPay is Ergo's dApp connector for non-web wallet
  • dApp Connector is for connecting dApps to web-based wallets like Nautilus and SAFEW.
  • Proxy Contracts are a smart contract design used in blockchain ecosystems to enable secure and controlled interaction between users and decentralized applications.
Librarie#
  • ergo-lib-go: Go wrapper around C bindings for ErgoLib from sigma-rust
  • ergo-lib-wasm: ergo-lib bindings for JS/TS
  • ergo_client: Rust library containing HTTP clients for various Ergo applications
  • sigma-builders: Easy to use library for creating protocol abstractions interacting with Ergo blockchain.
Templates#

ErgoScript#

ErgoScript is a super-simple subset of Scala, enabling clear descriptions of contractual logic that can be Turing complete.

It is flexible enough to allow for ring signatures, multi-signatures, multiple currencies, atomic swaps, self-replicating scripts, and long-term computation.

The Account model of Ethereum is imperative. This means that the typical task of sending coins from Alice to Bob requires changing the balances in storage as a series of operations. On the other hand, Ergo's UTXO based programming model is declarative. ErgoScript contracts specify conditions for a transaction to be accepted by the blockchain (not changes to be made in the storage state as a result of the contract execution).

Introduction#
Experimenting#
  • escript.online
  • PlutoMonkey: Compile any ErgoScript contract into a P2S. Check out these simple examples.
  • Scastie: An online compiler tailored for Scala, perfect for developers eager to experiment, share, or learn Scala.
  • Kiosk: A web-based UI to explore ErgoScript.
  • Ergo-Puppet: An advanced tool built on the Ergo Playground, designed for off-chain experimentation and unit testing of Ergo contracts.
Tooling#
Courses#

If you're interested in deepening your understanding of ErgoScript and the Ergo ecosystem, consider taking one of the following courses:

Tutorials#
Boilerplate#
Advanced Tutorials#

Interpreters#

ErgoScript has two compiler and ErgoTree interpreter implementations for the Sigma Language:

Cryptographic#

Ergo has generic support ring and threshold signatures as well as a variety of cryptographic protocols via composable sigma-protocols built into the core.

Sigma Protocols (Ξ£-Protocols) are the foundation of Ergo’s smart contracts. Their advantage is that they are composable, using simple AND/OR logic.

When combined with a blockchain, these composable proofs enable very powerful use cases, while allowing for the implementation of sophisticated tasks that would otherwise be impossible, risky, or expensive on other platforms.

Crypto Primitives#

See this page for a description of the global Cryptographic functions available in ErgoScript.

Tutorials#
Tools#
  • Scrypto is a comprehensively built open-source cryptographic toolkit, specifically engineered to simplify and safeguard the process of integrating cryptography into your applications. Supporting AVL+ Trees and Batch Merkle Proof Serialization and Deserialization.

AVL Trees (Plasma)#

AVL trees are highly efficient authenticated data structures natively supported in Ergo. These trees offer several benefits, including the ability to authenticate data properties without accessing the entire dataset. Developers can seamlessly integrate AVL trees into their Ergo applications using one of the Plasma libraries.

Multi-Stage Protocols#

Multi-Stage Contracts is a technique wherein using transaction trees we can emulate persistent storage in UTXO-based systems by linking several UTXOs containing small pieces of code to form a large multi-stage protocol. This enables on-chain computations, making it possible to process parallelised actions on top of smart contracts and construct Turing-complete applications.

Ergo Community Resources#

Analytics & Insights#
  • Ergo Watch: Dive into on-chain analytics and data.
Community Knowledge Base#
  • Ergonaut Space: Discover Ergo's community-driven wiki, filled with insights and information.
Explore the Ecosystem!#
  • Sigmaverse.io: Explore a diverse range of dApps built on Ergo.
  • ErgCube: Another platform to discover and interact with Ergo dApps.
  • The Ecosystem section on this site acts as directory for projects building on Ergo and potential future ideas.