Skip to content

ErgoScript Tooling#

ErgoScript is a powerful and flexible language for creating smart contracts on the Ergo blockchain. As with any programming language, having the right tools can greatly enhance the development experience and productivity. This page provides an overview of various tools, resources, and examples to help you get started with ErgoScript development.

Introduction#

ErgoScript is a domain-specific language designed specifically for the Ergo blockchain. It is inspired by Scala and allows developers to create secure and efficient smart contracts. While ErgoScript is not Turing-complete, it can be used to build Turing-complete applications by leveraging the extended UTXO model of the Ergo blockchain.

The ErgoScript ecosystem offers a wide range of tools and resources to help developers at all levels, from beginners to experienced professionals. These tools include playgrounds, tutorials, courses, explanations, references, and examples.

Playgrounds#

Inspecting deployed contracts with ergo-forge#

The ergo-es tree command decodes addresses offline. Looking up a box requires an explicitly configured explorer or a recorded source; decoding an address alone does not fetch its boxes. Source ingestion can bind named constants, while ergo-es match compares parsed program structure and reports constant differences separately from byte identity. Structural similarity does not establish equivalent behavior.

Interpret results according to their evidence: static findings, sampled spending scenarios, and unsigned preflight checks do not establish full node acceptance. The separate library validator runs the pinned Rust node's transaction pipeline against explicitly supplied state. Its acceptance result applies to that transaction and state, not to a contract's overall security. See the workbench documentation.

Editor Support#

  • ErgoScript Language Server and IntelliJ plugin provides diagnostics, completion, hover documentation, navigation, rename, inferred-type hints, semantic highlighting, and quick fixes. The standalone server requires Node.js 16 or later and communicates over standard input/output, so editors other than IntelliJ can use it through an LSP client.
  • The IntelliJ plugin targets IntelliJ IDEA 2026.2 or later. Syntax highlighting works without IntelliJ's LSP module; language-server features require that optional module. This is experimental community tooling and does not invoke the reference compiler, so it cannot detect ErgoTree serialization or execution-cost failures.
Courses#
Tutorials#
Advanced Tutorials#
Explanations#
References#
Examples#
Visual#
Box#

Here is a box you can experiment with:

This P2S address corresponds to this unspent box.