iExec offers one of the most complete and simple to use decentralized oracle solutions: being live on Ethereum mainnet, Trusted Execution Environment ready, and extremely easy and fast for developers to set up a custom API. We gave an introduction to decentralized oracles and the iExec approach in this blog post:

We believe that spending time acquiring new blockchain skills by building on iExec should be a rewarding experience, not only from a development perspective but also, financially.

We’ve funded 4 Gitcoin issues covering 4 different projects. Each one of them is rewarded $100 in RLC. Here is the step-by-step guide. If you’re interested in getting involved, you can apply to work on one of the proposed oracle projects.

It’s quite simple: after you have familiarized yourself with the iExec stack, you just need to dockerize an app and you’re ready to deploy an oracle with iExec.

Price feed: a simple example of a Decentralized Oracle

Decentralized oracles collect valuable off-chain data (from ‘Web2.0’), and feeds it to smart contracts on the blockchain, acting as a bridge, in a trustless and decentralized manner.

As a simple example, you can have a look at the price feed: several machines are relaying the data from CoinAPI to the oracle contract after the iExec PoCo consensus protocol has been carried out over the result. This specific oracle can enable a variety of financial services and apps such as a decentralized exchange.

Get started with iExec Oracles

The official documentation is the best place to start. Bear in mind that the dev team is reachable on Slack, Gitter, and Telegram.

During the release of iExec V3 in May, we sealed a strategic partnership with B9Lab, introducing 500 developers to the iExec stack.

If you’re interested in getting involved and learning about decentralized oracles and iExec, you can contribute to any of the 4 oracle projects below. Successful developers will be rewarded with $100 in RLC.

1- Soccer Scores DOracle (Gitcoin / Github)

Use case : soccer game betting platforms

: soccer game betting platforms Data source : soccer game API (example)

: soccer game API (example) Input : a soccer game ID

: a soccer game ID Output: official final score

2- Flight Delay Detector DOracle (Gitcoin / Github)

Use case : flight insurance services

: flight insurance services Data source : a flight API (example)

: a flight API (example) Input : a flight ID

: a flight ID Output: delay in minutes

3- Bitcoin Transfer Verifier DOracle (Gitcoin / Github)

Use case : ICO crowdsale smart contract

: ICO crowdsale smart contract Data source : a Bitcoin explorer (example)

: a Bitcoin explorer (example) Input : a BTC transaction hash

: a BTC transaction hash Output: BTC transfer amount

4- TLS Notary DOracle (Gitcoin / Github)

Use case : on-chain TLS proof of web content

: on-chain TLS proof of web content Data source : user input (must be a URL)

: user input (must be a URL) Input : any URL

: any URL Output: URL content + its TLS proof

What I need to do?

An iExec DOracle needs two parts: Off-chain dockerized application, and on-chain smart contract.

1. Dockerized application (off-chain) You need to write a logic that does the following steps:

Fetch the data from the API

store the hash of the result in the determinism.iexec file

store the encoded result (using ABI.encode) in the callback.iexec file

Then, push you docker image on Dockerhub, and deploy it on iExec using the SDK.

2. Smart contract (on-chain)