Solidity developers who want to deploy an oracle on an EVM sidechain need a way to expose their sidechain oracle to the Cardano mainnet
Wrapping oracles with a smart contract. Users call the oracles from Cardano mainnet and the response are also sent back to the mainchain
This is the total amount allocated to Milkomeda Oracle.
The Milkomeda Oracle will take advantage of the novel sidechain tech being deployed to easily onboard existing oracle solutions from the Ethereum ecosystem and allow users on Cardano mainnet to make requests directly from Plutus.
M1 is an EVM-based sidechain being deployed via the Milkomeda protocol that will be connected to the Cardano mainnet. Given that it is EVM-based, integration with oracle networks that are already live and running within the Ethereum ecosystem will be trivial.
The Solidity contracts and off-chain stack of the oracle networks can simply be ported to M1 and run with little to no extra work. Thus by partnering with one of these oracle projects we can have an oracle solution within the Cardano ecosystem without reinventing the wheel.
This however only solves half of the problem for the Cardano ecosystem at large. This oracle data which will live on M1 will not be directly accessible to Plutus smart contracts unless we build out the infrastructure to facilitate it.
As such we are proposing to build the Milkomeda Oracle. By wrapping an existing oracle network with a wrapped smart contract layer we can allow users to call the oracles from Cardano mainnet and have the response be sent directly back to the mainchain for them to use.
In practical terms, users will create a Plutus transaction which holds the oracle request information inside of its Datum and provide sufficient ADA to cover the oracle fee. Thanks to the fact that both the Milkomeda Oracle and the M1 sidechain use wADA as their base/fee currency, this provides a seamless experience for users as they are not required to purchase another token to use the oracle.
After creating their request, the Milkomeda sidechain bridge will move it to the M1 sidechain, where it will then be passed through the wrapped smart contract layer and then acted upon by the partnered oracle network. Once the oracle network produces the requested data on the M1 sidechain, the wrapped smart contract layer forwards it to the sidechain bridge which then finally moves it back to the Cardano mainchain.
On the mainchain a new UTXO is created which is locked under a Plutus contract that only allows the person who requested the oracle data to consume it. This will be customizable to either be enforced via pubkey (signature) or via token (currency ID).
The sidechain bridge will also automatically provide a timestamping service for all oracle data, meaning that any Milkomeda Oracle output UTXOs will be easy to use in DeFi protocols. Because the datapoint will be time stamped as a part of the UTXO datum, it will be readable within the Plutus contracts which will be consuming the oracle data. Thus the smart contracts can gauge the "freshness" of the oracle data, allow certain actions to be taken or not taken based on how old the data is, and even off-chain code can easily make judgements whether another request should be sent to the Milkomeda Oracle to fetch a fresher datapoint.
The Milkomeda Oracle will provide the Cardano ecosystem an opportunity to build off of the work already done by existing oracle networks while taking advantage of both the benefits of sidechain tech as well as Plutus itself.
Our team is composed of well known ex-Emurgo and ex-IOHK employees who have been building the Cardano ecosystem for the past several years