CRC Proposal Series: Elastos Chainlink Oracles

Welcome to the first part of a new series where we will report on the final result of CR Proposals submitted to the Cyber Republic Consensus (CRC) Process.

ChainLink Integration with VulcanLink Oracles

Our first fully completed CR Proposal is “Chainlink x ELASTOS — High-TPS Decentralized Oracles (Price Feeds, API Data, Real World Data)” — at:

Below we’ll also cover an example of how to use the oracle data.

The Backstory

The early push for oracle integration actually began in September of 2019 when Zach — Communications Lead and Clarence Liu — VP of Development from Elastos met with Sergey (whom you should all know) and Dan Kochis the Head of BD at Chainlink. At that time DeFi was in its infancy and Elastos’ focus on its Smart Contract Chain — the Elastos Ethereum Sidechain — was just beginning.

It wasn’t until February of 2020 when Clarence attended and participated in the ETHDenver hackathon that he met VulcanLink. Since he attended alone he randomly joined a team through Discord, and serendipitously ended up on the same team as Leo Vigna, the founder of VulcanLink — ChainLink was also in attendance at ETHDenver and Clarence spoke again with Dan Kochis who he had been in touch with for the past months.

Starting the CR Suggestion

As you may know, the CR Proposal process begins with a CR Suggestion — a detailed guide and explanation can be found here — which started on July 24, 2020. No changes are allowed when a Suggestion is promoted to a CR Proposal, so the proposal link above is the same.

The primary goals were:

  1. Deploy the Chainlink Smart Contracts on the Elastos ETH Sidechain TestNet.
    This was completed and the oracle contracts are listed here:
  2. Run a VulcanLink data oracle for the ELA/USD price feed, and find 2 other oracle providers to ensure we meet the minimum requirement of 3 oracles.
    VulcanLink has been sourced through its contacts Secure Data Links and DaVinci Nodes which have joined to provide the oracle data.
  3. Host a Web UI at to show the current price feed.
    This feed is now working and has a 5 minute refresh, also the data is available free of charge to developers for the initial interim period.

CR Regions Contributed By Creating Documentation and Guides

  • now has a new section on “Browser dApps” to guide developers looking to learn how to build the standard web-based dApps that most people are used to.

Budget and Expenditures

All rewards were in-line with the budget in the proposal, all funds were fully directed to VulcanLink — CR Regions took no funds for its role in verification and consultation.

VulcanLink will provide the ELA/USD data feed free of charge to developers for a generous interim period until with the pre-allocated 300 ELA fund until dApp development opens new use cases. We have no set date for transition to a sponsorship type system yet.

Also VulcanLink has graciously exposed its websocket and https Elastos ETH Sidechain endpoints for all developers to use:

How to Reference the ELA/USD Value In Your Smart Contract

For a quick crash course in how oracle data is used, we’ll run through the basic steps assuming you know how to deploy and interact with smart contracts — learn at

Add the Aggregator contract and the “function signature” to your smart contract

In our case we’ll be using the Solidity 0.4 Aggregator used by VulcanLink found at

The pertinent contracts are found under evm-contracts, in our case we only want the method latestAnswer so we’ll add the “function signature” to our smart contract.

We are also using Open Zeppelin’s Initializable smart contract so we can initialize the smart contract with the address of the existing smart contract address of the deployed Aggregator.

By referencing you can see that the VulcanLink Aggregator deployed is at address: 0xA64267e44af675498310620418c8F08A9dAeB1eb.

So your deploy must include something like:

await elaToUsdInstance.initialize('0xA64267e44af675498310620418c8F08A9dAeB1eb')

This call to initialize overwrites the contract address of Aggregator with the existing deployed contract.

If you’re running the test from the Github Repo vulcanlink-test you should see something similar to the above.

Here I’m just using the ELA/USD price to calculate the price in USD for a given amount of ELA, but you can take this and extend it to do a lot of cool stuff. For example as an exercise you can create a “prediction market” where you guess the price of ELA at a certain date.

If you have issues or would like to share your project with us feel free to email us at




We are a community run organization supporting the global teams and projects that are building on Elastos —

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

How Revolution Charity Token is Digitizing Charity

10 Ways Blockchain Technology Will Change E-commerce Business

The ultimate battle royal crypto game is here

AWO, AIWORK’s Native Token Driving the Platform

New Blockchain Models for Medical Financing: Why Aevolve is at the Forefront

Zeitgeist — Just Web3 Betting or Economic system for predicting the future?


What is blockchain technology..?

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
CR Regions

CR Regions

We are a community run organization supporting the global teams and projects that are building on Elastos —

More from Medium

Swing plans to launch on Solana using Neon EVM

KSPC develops and releases DEX like Uniswap!

DOT DAO’s IDO(Initial Discord Offering)

Avalanche Blockchain is now available on Zeeve

avalanche node