Docs

Docs

  • Develop
  • Validate
  • Integrate
  • Learn

›Developers

Welcome to Elrond

  • Welcome to Elrond

Technology

  • Architecture Overview
  • Glossary
  • Entities
  • Chronology
  • Secure Proof of Stake
  • Adaptive State Sharding
  • The Elrond WASM VM
  • Cross Shard Transactions

Wallet

  • Wallets - Overview
  • Web Wallet
  • Maiar Web Wallet Extension
  • Webhooks
  • Ledger

Tokens

  • Native Tokens
  • ESDT tokens
  • NFT tokens

Validators

  • Validators - Overview
  • System Requirements
  • Install a Mainnet Node

    • Scripts & User config
    • Installing a Validator Node
    • Optional Configurations
    • How to use the Docker Image

    Install a Testnet/Devnet Node

    • Scripts & User config
    • Installing a Validator Node
    • Manage a validator node
    • How to use the Docker Image

    Manage your keys

    • Validator Keys
    • Wallet Keys
    • Protecting your keys

    Staking, Unstaking, Unjailing

    • Staking, unstaking and unjailing
    • Staking
    • Unjailing
    • The Staking Smart Contract
  • The Delegation Manager
  • Convert An Existing Validator Into A Staking Pool
  • Merging A Validator Into An Existing Delegation Smart Contract
  • Rating
  • Elrond Node upgrades
  • Node redundancy
  • Import DB
  • Node CLI
  • Node Databases
  • Useful Links & Tools
  • FAQs

Developers

  • Developers - Overview
  • Tutorials

    • Build a dApp in 15 minutes
    • Build a Microservice for your dApp
    • The Crowdfunding Smart Contract (part 1)
    • The Crowdfunding Smart Contract (part 2)
    • The Counter Smart Contract
    • Custom Wallet Connect

    Signing Transactions

    • Signing Transactions
    • Tools for signing
    • Signing programmatically

    Gas and Fees

    • Overview
    • EGLD transfers (move balance transactions)
    • System Smart Contracts
    • User-defined Smart Contracts

    Developer reference

    • The Elrond Serialization Format
    • Smart contract annotations
    • Smart contract modules
    • Smart contract to smart contract calls
    • Smart Contract Developer Best Practices
    • Code Metadata
    • Smart Contract API Functions
    • Storage Mappers
    • Rust Testing Framework
    • Rust Testing Framework Functions Reference
    • Rust Smart Contract Debugging
    • Random Numbers in Smart Contracts

    Developers Best Practices

    • Basics
    • BigUint Operations
    • The dynamic allocation problem
    • Multi-values

    Mandos tests reference

    • Mandos Overview
    • Mandos Structure
    • Mandos Simple Values
    • Mandos Complex Values
    • Embedding Mandos code in Go
  • Constants
  • Built-In Functions
  • Account storage
  • Setup a Local Testnet
  • Set up a Local Testnet (advanced)
  • Creating Wallets

SDK and Tools

  • SDKs and Tools - Overview
  • REST API

    • REST API overview
    • api.elrond.com
    • Gateway overview
    • Addresses
    • Transactions
    • Network
    • Nodes
    • Blocks
    • Virtual Machine
    • Versions and Changelog
  • Proxy
  • Elasticsearch
  • erdpy

    • erdpy
    • Installing erdpy
    • Configuring erdpy
    • erdpy CLI
    • Deriving the Wallet PEM file
    • Sending bulk transactions
    • Writing and running erdpy scripts
    • Smart contract interactions

    erdjs

    • erdjs
    • Cookbook
    • Extending erdjs
    • Writing and testing interactions
    • Migration guides
    • Signing Providers for dApps
  • erdgo
  • erdcpp
  • erdjava
  • erdkotlin
  • erdwalletjs-cli

Integrators

  • Integrators - Overview
  • EGLD integration guide
  • ESDT tokens integration guide
  • Observing Squad
  • Accounts Management
  • Creating Transactions
  • Querying the Blockchain

Developers - Overview

Developer documentation

Get started with Elrond by learning to write your first Smart Contract, build your first dApp or learn how to use our API.

important

For interacting with Elrond Blockchain via SDKs or Rest API, please refer to SDKs & Tools.

Table of contents

Tutorials

Below is a list of tutorials that one can you to get a full experience of building on Elrond

NameDescription
Build your first dApp in 15 minutesVideo + written tutorial on how to create your first dApp.
Build a microservice for your dAppVideo + written tutorial on how to create for your microservice.
Crowdfunding Smart ContractCrowdfunding tutorial (Part 1).
Crowdfunding Smart ContractCrowdfunding tutorial (Part 2).
The Counter Smart ContractThe Counter SC tutorial.
Custom Wallet ConnectCustom Wallet Connect tutorial.

Signing transactions

The following content explain the structure of a transaction, how to sign or send them

NameDescription
Signing transactionsHow to serialize and sign transactions.
Tools for signingWhat to use in order to generate and sign transactions.
Signing programaticallyHow to sign transactions by using one of our SDKs.

Gas and fees

Learn about transaction's gas and how a fee is calculated

NameDescription
OverviewGeneral concepts and overview about gas cost, limit, price and fee.
For move-balance transfersHow fees are computed for move-balance transfers (EGLD transfers).
For System Smart ContractsHow fees are computed when interacting with system smart contracts.
For User defined Smart ContractsHow fees are computed when interacting with user defined smart contracts.

Smart Contract Developer reference

NameDescription
Elrond serialization formatHow Elrond smart contracts serialize arguments, results, and storage.
Elrond wasm annotationsHow to use annotations your contracts to make use of many built-in features from the framework.
Elrond wasm modulesLearn how to divide a Smart Contract into multiples smaller components by using modules.
Elrond wasm contract callsLearn how to call a Smart Contract from another Smart Contract.
Smart contract developer best practicesFew tips on how to write clean and efficient contracts on Elrond.
Code metadataChoose the properties / eligible actions of your Smart Contract.
Elrond wasm api functionsMake use of the Elrond VM API functions to query relevant data from the blockchain.
Storage mappersDecide from multiple ways of storing data in your SC, by considering performance.
Rust testing frameworkTest your Smart Contract directly in Rust.
Rust testing framework functions referenceA list of available functions to be used when testing your Smart Contract in Rust.
Rust smart contract debuggingHow to debug your Smart Contract.
Random numbers in smart contractsHow to generate random number in Smart Contracts.

Smart Contract Developers Best Practices

NameDescription
Best practices basicsHow to better structure your Smart Contract code.
Biguint operationsHandle Biguint operations in a more efficient way.
The dynamic allocation problemDescription of the dynamic allocation problem.
Multi valuesTake advantage of the variadic input and output.

Mandos Tools Reference

NameDescription
Mandos OverviewTest your Smart Contracts by using JSON tests of Mandos.
Mandos StructureHow to structure a Mandos test.
Mandos Simple ValuesHandle simple values in Mandos tests.
Mandos Complex ValuesHandle complex values in Mandos tests.
Embedding Mandos code in GOHow to embed Mandos code in Go.

Others

NameDescription
ConstantsA list of useful constants that governs the Elrond Mainnet.
Built in functionsBuilt-in functions - protocol-side functions.
Account storageHow the data is stored under an account + how to query and change it.
Setup local testnetHow to set up a local testnet - basic solution
Setup local testnet advancedHow to set up a local testnet - advanced solution
Creating walletsExamples on creating wallets.
← FAQsBuild a dApp in 15 minutes →
  • Developer documentation
  • Table of contents
    • Tutorials
    • Signing transactions
    • Gas and fees
    • Smart Contract Developer reference
    • Smart Contract Developers Best Practices
    • Mandos Tools Reference
    • Others
Made withby the Elrond team.
GithubChat
Main siteWalletExplorerBridgeDocsGrowthMaiarMaiar Exchange