For most developers, Appkit is the best entry point unless you're wanting to dive straight into ErgoScript smart-contract development.
- Make sure to check out the Grow Ergo repository or the
#jobs-and-bounties
channel on Discord to see developer bounties available on Ergo. - There are grants available from both DarkFund0 (privacy-focus) or upto $20k per grant from the 'Good Whales Grant Fund'
Start completing bounties to refine your skills - or submit a proposal directly to the Ergo Foundation. Current job openings can be found at ergoplatform.org/en/careers/
Resources
- See wallets.md for developer resources within that area.
- See apps.md for developer resources relating to any existing dApps built ontop Ergo.
- docs.md for related whitepapers and Ergo Improvement Proposals (EIPs)
#dev-support
on Discord.
ERGOHACK
See overviews of the past two ERGOHACKs below and start preparing for ERGOHACK III!
Join the Discord server to participate.
- ERGOHACK I (May, 2021)
- ERGOHACK II (Oct 8-10, 2021)
- ERGOHACK III Q1 2022 (TBC)
See apps.md for associated repositories from previous ERGOHACKs
Appkit: A Library for Polyglot Development of Ergo Applications has an idiomatic Java API and is written in Java/Scala. It is a thin wrapper around core components provided by the ErgoScript interpreter and Ergo protocol implementations which are written in Scala. It is published on maven repository and cross compiled to both Java 7 and Java 8+ jars.
Using Appkit Ergo applications can be written in one of the languages supported by GraalVM (i.e. Java, JavaScript, C/C++, Python, Ruby, R) and using this library applications can communicate with Ergo nodes via unified API and programming model provided by Appkit. In addition Appkit based Ergo applications can be compiled into native code using native-image ahead of time compiler and then executed without Java VM with very fast startup time and lower runtime memory overhead compared to a Java VM. This is attractive option for high-performance low-latency microservices.
GraalVM
The Appkit library is also compatible with GraalVM - a novel next generation approach to implement software which is reusable across several programming languages and execution environments. For example if Node.js application is run on GraalVM, then it can use Appkit to interact with Ergo Blockchain.
Tutorials
- Tutorial starting with Appkit on Gradle projects
- AppKit by Example (Video)
- Appkit: A Library for Polyglot Development of Ergo Applications using either GraalVM or stock Java 1.7 and above. Read the introduction.
- Appkit Examples
Tools
- ErgoTool | A Command Line Interface for Ergo based on Appkit and GraalVM native-image. Read the introduction and overview.
- Ergo Android | Example Android application which demonstrates how Ergo Appkit can be used to develop Ergo applications running on Android.
- ErgoScript, a Cryptocurrency Scripting Language Supporting Noninteractive Zero-Knowledge Proofs | Whitepaper
- If you ever need clarity about how specific types/functions/operators in ErgoScript work, please reference the ErgoScript Language Description.
- For an overarching summary, please reference this video
Introductionary Tutorials
- Learn Ergoscript by example powered by the Ergo Playground.
- Each contract example includes a link which allows you to instantly edit and run the smart contract code inside of your browser.
Advanced Tutorials
Articles
Videos
- Multi-Stage Contracts in the UTXO Model: Delivery by Alexander Chepurnoy & Amitabh Saxena
- (Video) Learn ErgoScript By Example Via The Ergo Playground with Robert Kornacki
- Sigmastate-Interpreter | The Sigmastate-Interpreter is a ErgoScript compiler and ErgoTree Interpreter implementation for Ergo blockchain's Sigma Language For development of Ergo applications using JVM languages a better alternative is to use Appkit.
- ScoreX, the open-source, modular blockchain & cryptocurrency framework.
- Scrypto | Scrypto is an open source cryptographic toolkit designed to make it easier and safer for developers to use cryptography in their applications based on Scorex
This library is used internally in Ergo Node and ergo-wallet, the public interfaces are subject to change.
sigma-rust is an alternative and simple implementation of ErgoTree interpreter and transaction building tools. The goal for the Rust version is to be on par with Scala version feature-wise. Now Rust version is still significantly behind. Also the goal for the Rust version is to have bindings for web, iOS and Android. The Scala version will continue to be the primary choice for JVM ecosystem with Rust version covering the rest.
A list of "good first" issues is available on GitHub - @greenhat on Discord is ready to assist anyone who is interested.
- Ergo Utilities | simplify writing off-chain code in Rust.
- ergo-ts with support of tokens and complex transactions
- ergo-js with basic transaction operations
- Ergo JS Template
- GraalVM
- Othe rexamples
Explorer
Testnet
API
Test vectors:
Utilities
- Miner rewards script | Simple command-line tool to find miner rewards not spent and form withdrawing transaction requests for them
- Ergo P2S Playground | A web-based tool to quickly get the address corresponding to some script
Resources
- ErgoWiki | The official ergoplatform GitHub wiki
- ergosites.github.io | Resource page which links to various websites and utilities.
- ergohack.io | Your introduction to developing on Ergo.