Docs

Docs

  • Develop
  • Validate
  • Integrate
  • Learn

›REST API

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

api.elrond.com

About api.elrond.com

api.elrond.com is a wrapper over gateway.elrond.com that brings a robust caching mechanism, alongside Elasticsearch historical queries support, tokens media support, delegation & staking data, and many others.

Public URLs

Mainnet: https://api.elrond.com.

Testnet: https://testnet-api.elrond.com.

Devnet: https://devnet-api.elrond.com.

Dependencies

Core dependencies

For its basic functionality (without including caching or storage improvements), api.elrond.com depends on the following external systems:

  • gateway: also referred as Proxy, provides access to node information, such as network settings, account balance, sending transactions, etc docs: Proxy.
  • index: a database that indexes data that can be queries, such as transactions, blocks, nfts, etc. docs: Elasticsearc.
  • delegation: a microservice used to fetch providers list from the delegation API. Not currently open for public access.

Other dependencies

It uses on the following internal systems:

  • redis: used to cache various data, for performance purposes
  • rabbitmq: pub/sub for sending mainly NFT process information from the transaction processor instance to the queue worker instance

It depends on the following optional external systems:

  • events notifier rabbitmq: queue that pushes logs & events which are handled internally e.g. to trigger NFT media fetch
  • data: provides eGLD price information for transactions
  • maiar exchange: provides price information regarding various tokens listed on the maiar exchange
  • ipfs: ipfs gateway for fetching mainly NFT metadata & media files
  • media: ipfs gateway which will be used as prefix for NFT media & metadata returned in the NFT details
  • media internal: caching layer for ipfs data to fetch from a centralized system such as S3 for performance reasons
  • AWS S3: used to process newly minted NFTs & uploads their thumbnails
  • github: used to fetch provider profile & node information from github

It uses the following optional internal systems:

  • mysql database: used to store mainly NFT media & metadata information
  • mongo database: used to store mainly NFT media & metadata information

Ways to start api.elrond.com

An API instance can be started with the following behavior:

  • public API: provides REST API for the consumers
  • private API: used to report prometheus metrics & health checks
  • transaction processor & completed: fetches real-time transactions & logs from the blockchain; takes action based on various events, such as clearing cache values and publishing events on a queue
  • cache warmer: used to proactively fetch data & pushes it to cache, to improve performance & scalability
  • elastic updater: used to attach various extra information to items in the elasticsearch, for not having to fetch associated data from other external systems when performing listing requests
  • events notifier: perform various decisions based on incoming logs & events

Rate limiting

Currently, there is a rate limit mechanism that limits an IP address to a maximum of 2 requests / second.

Rest API documentation

Rest API documentation of api.elrond.com can be found on the Swagger docs.

References:

  • Github repository: https://github.com/ElrondNetwork/api.elrond.com
  • Swagger docs: https://api.elrond.com
  • Raw JSON Swagger OpenAPI definitions: https://api.elrond.com/-json
  • Elrond blog: https://elrond.com/blog/elrond-api-internet-scale-defi
← REST API overviewGateway overview →
  • About api.elrond.com
  • Public URLs
  • Dependencies
    • Core dependencies
    • Other dependencies
  • Ways to start api.elrond.com
  • Rate limiting
  • Rest API documentation
  • References:
Made withby the Elrond team.
GithubChat
Main siteWalletExplorerBridgeDocsGrowthMaiarMaiar Exchange