title | description | published | date | tags | editor | dateCreated |
---|---|---|---|---|---|---|
Developers |
true |
2021-05-05 09:36:51 UTC |
markdown |
2021-02-24 08:19:45 UTC |
This site is a community resource website, ergonauts are encouraged to create an account and add to the site. the site is backed up and available to use on Github. Submit pull requests to update this (and other) pages! {.is-info}
The Ergo ecosystem is quickly growing with new design patterns, tools, dApps, and more every single month. This is an exciting point in time for developers to jump in and get started.
That said, while building dApps on top of Ergo, vital infrastructure components to develop and run your dApp might be intimidating to set up for someone who is unfamiliar with the existing tooling. Between an Ergo full node, explorer back end, explorer front end, logging, and metrics, it can become quite overwhelming for a nascent dApp developer entering into the ecosystem.
For this reason, we are introducing ergo-bootstrap, an easy-to-use tool that enables quick and clean Ergo blockchain cluster deployments which supports a variety of useful infrastructure components you will need on your path of dApp development. This was developed by Marek of Five Binaries thanks to a grant given by the Ergo Foundation and their latest push to empower the ecosystem via funding key projects.
Ergo bootstrap tool, build on top of ergo-nix, will help you to quickly deploy an Ergo blockchain cluster with a handful of useful tools you might need to start developing your dApps.
Read more on the blog - Ergo Bootstrap, Streamlining Ergo dApp Infrastructure With One Simple Tool
You can see the currently deployed dApps on sigmaverse.io, and this recent post on the forum on Ergo dApp Ecosystem Development - ergoforum gives some indication to where development is needed.
We are thinking about organizing a hackathon, likely in May. The topic would be "Completing the Basics", so improving basic infrastructure needed for building the DApps, (also, to profit from them)
The following topics will likely be covered
- Improvements to ErgoScript (not all the ErgoTree features are projected into it)
- Improvements to Ergo AppKit (basic library for constructing transactions and building offchain logic on top of for Java and JVM languages)
- Improvements to Ergo Node Interface and - Ergo Headless dApp Framework (basic library for constructing transactions and building offchain logic with Rust)
- Ergo Crowdfunding apps/UI
- Visual tool for constructing multi-signatures (could be a good first step for visual tools to construct more complex scripts)
- Tokenization schemes
- Tools for NFTs
- Applications for data notarization and names registration
- Stealth addresses pool implementation
- Applications on top of mixer API
- More data connectors for the oracle pools
- Private swaps with other chains on Schnorr signature (Bitcoin Cash, Litecoin (?), Komodo (?))
Everyone participating will be rewarded for delivering anything that progresses the current state.
Learn Ergoscript by reading example smart contracts powered by the Ergo Playground. Each contract example includes a Ergo Playground
link which allows you to instantly edit and run the smart contract code inside of your browser.
- 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
- A Quick Primer on ErgoScript Learn the basics of ErgoScript quickly and create your first contract
- ErgoScript Design patterns
A list of "good first" issues for Sigma-Rust is available on GitHub - @greenhat on Discord is ready to assist anyone who is interested. {.is-info}
Sigma-rust - implementation of ErgoScript cryptocurrency scripting language. To get better understanding on how to use it in your project check out how its being used in the following projects:
- Ergo Headless dApp Framework;
- Ergo Node Interface Library;
- Oracle Core;
- AgeUSD Stablecoin Protocol;
- Yoroi wallet (WASM bindings);
- Ergo Desktop Wallet (WASM bindings);
- Ergo Utilities - General utilities to make writing off-chain Ergo code in Rust simpler
- Smart contract language: https://github.com/ScorexFoundation/sigmastate-interpreter
- Basic cryptography library: https://github.com/input-output-hk/scrypto
- ergo-ts (TypeScript) with support of tokens and complex transactions
- ergo-js (JavaScript) with basic transaction operations
- Ergo JS Template
Interpreter for a family of Sigma-State authentication languages, a list of good first issues is available on Github
The oracle core is the off-chain component that oracles who are part of an oracle pool run. This oracle core provides a HTTP API interface for reading the current protocol state & another for submitting datapoints. Once a datapoint is submited, the oracle core will automatically generate the required tx and post it as well as any other actions required for the protocol to run. This thereby allows the oracle to participate in the oracle pool protocol without any extra effort for the oracle operator.
- Oracle Core - Run your oracle pools!
- ScoreX, The modular blockchain framework
- Kiosk - interface to Ergo node with additional features for developers. See this forum post for examples.
- Ergo P2S Playground - A web-based tool to quickly get the address that corresponding to a script - Video tutorial #2
- ergo-dex-sdk-js
- Ergo Appkit (Polyglot library) - Appkit: A Library for Polyglot Development of Ergo Applications using either GraalVM or stock Java 1.7 and above. Read the introduction.
- Appkit Examples - Examples of using Ergo Appkit for Polyglot Development of Ergo Applications
- Ergo Android - Example Android application which demonstrates how Ergo Appkit can be used to develop Ergo applications running on Android.
Appkit has idiomatic Java API and is written in Java/Scala. It is a thin wrapper around core components provided by 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.
The Appkit library is 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.
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.
In addition Appkit is compatible with Android and can be used from Android applications.
- ErgoTool - A Command Line Interface for Ergo based on Appkit and GraalVM native-image. Read the introduction and overview.
- Main repository
- Multi-Stage Contracts in the UTXO Model: Delivery by Alexander Chepurnoy & Amitabh Saxena
- Non-Interactive Proofs of Proof-of-Work
Ergo Improvement Proposals (EIPs) specify and/or describe standards for the Ergo Platform, including core protocol specifications, client APIs, dApp/contract standards, and other such things.
Please check out existing EIPs, such as EIP-1, to understand the general expectation of how EIPs are supposed to be formatted.
Number | Title |
---|---|
EIP-0001 | UTXO-Set Scanning Wallet API |
EIP-0002 | Ergo Grant Program |
EIP-0003 | BIP-44 Standard For Ergo Platform |
EIP-0004 | Assets Standard |
EIP-0005 | Contract Template |
EIP-0006 | Informal Smart Contract Protocol Specification Format |
Test vectors:
- ErgoMixer - Non-interactive and non-custodial mixer! Video tutorial #1,
- Ergo Auctions House - Buy and sell collectible tokens and not only! Source code
- ZK Treasury: Server and Client - a tool for joint spendings with on-chain privacy
- Ergo notary - simple command-line tool to certificate files on the Ergo blockchain. See also forum topic on a particular example
- Miner rewards script Simple command-line tool to find miner rewards not spent and form withdrawing transaction requests for them
- Ergo oracles - simple command-line tool to launch oracles. Inbuilt implementations for USD/ERG, EUR/ERG, BTC/ERG, AUG/ERG (gold) prices delivery. See also a forum topic with example
- Ergo Crowdfunding CLI Command-line tool which enables participating and interacting with crowdfunding campaigns on Ergo
- ErgoTool - A Command Line Interface for Ergo based on Appkit and GraalVM
- FlowCards: A Declarative Framework for Development of Ergo dApps
- Full node set-up
- Start mining
- White paper
- Yellow paper (in progress)
- Short overview
- ErgoScript Language Description
- ErgoScript tutorial
- ErgoScript advanced tutorial
- ErgoTree specification
- Autolykos PoW scheme specification
This basic concept is to create a visual programming toolkit to assist developers in learning and developing contracts in the EUTXO model.
This toolkit will initially be built on top of Ergo Playground.
The goal is to take advantage of the free composability offered by EUTXO. Create an open source library of visual, composable tools to onboard new developers.
The “long term” goal is to create a headless central management system for developers, and a front-end UI focused central management system for basic users that are both interoperable with this visual programming toolkit.
The name Nautilus is inspired by the Submarine in Jules Verne 20,000 Leagues Under the Sea. Nautilus is described by Verne as "a masterpiece containing masterpieces", which was built in secrecy, sourcing parts from unnamed sources and roams the seas beyond the reach of land-based governments.