Skip to content

Latest commit

 

History

History
150 lines (99 loc) · 9.25 KB

devs.md

File metadata and controls

150 lines (99 loc) · 9.25 KB

Getting Started

For most developers, Appkit is the best entry point unless you're wanting to dive straight into ErgoScript smart-contract development.

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.

See apps.md for associated repositories from previous ERGOHACKs

Appkit

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

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

  • 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

Languages

Scala

  • 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.

Rust

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.

JS/TS

C#

Other Languages

  • GraalVM
  • Othe rexamples

Resources

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