Skip to content

hatskier/oracle-dao

Repository files navigation

Oracle DAO

1. Project Name

OracleDAO

2. Team Name

Alex Suvorov

3. Short description of the project

Oracles are a crucial piece of blockchain infrastructure. Thanks to them other web3 applications can access data that wouldn't be available on blockchain otherwise. DAO for data providers is another step forward in the oracle development. It creates an ecosystem where reliable sources of data for oracles are rewarded, while actors trying to push untruthful information get penalized.

4. Long description of the project

Oracles need an efficient and self-sustainable way of getting data that are later put on blockchain. This can be achieved in several different ways like using official government sources or well-known media, however even the most honest websites are prone to mistakes and hacks. If the incorrect data are later used in DeFi protocols, this could cause a massive shake-ups on the market.

DAO for data providers will allow to create a reliable ecosystem rewarding true information while penalizing data providers who are wrong. Such a solution creates a decentralized and automated ecosystem, where everyone can take part in verification of the data. This also helps to automate the process and allows to provide oracles not only with simple price feeds but also with all kinds of off-chain world information.

The project has been built on Milkomeda which is an EVM-compatible Cardano rollup and it is connected to RedStone EVM-compatible oracle. This setup opens the project up for a fast-growing ecosystem.

5. Tech stack used

  • Smart contracts
    • Solidity
    • Hardhat
    • Blockscout
    • Typescript
    • Typechain
    • Milkomeda
  • Frontend
    • Javascript
    • Netlify
    • Vue.js
  • Documentation
    • Gitbook
    • Markdown
  • Data storage
    • Arweave
    • Bundlr

6. Payment Address (USDC on Milkomeda)

0x195bf26a67bBdA2694C5D2E4B4d21701f63977cF

7. The website link (if applicable)

https://unique-centaur-52f854.netlify.app/

8. Documentation on how to run the project

Install dependencies

$ git clone https://github.com/hatskier/oracle-dao
$ yarn install

How to deploy smart contracts on milkomeda

$ npx hardhat run scripts/deploy.js --network milkomeda

Run smart contracts tests

$ yarn test

Run front end app

$ cd frontend
$ yarn install
$ yarn serve

Documentation on Gitbook: https://milkomeda-hackathon.gitbook.io/dao-for-data-providers/

9. Recorded pitch

https://youtu.be/i5TY-38gIFk

10. Smart-contracts

Deployed on Milkomeda DevNet

Smart contracts source code is located in: contracts/

Flattended contracts are placed in the flattended-contracts/ folder.

To deploy smart contracts on milkomeda:

  1. Prepare .env file similar to example.env with your private key (env. PRIVATE_KEY=0x123...)
  2. Run the following command npx hardhat run scripts/deploy.js --network milkomeda

Smart contracts tests

Testing is extremely important for smart contracts, that's why I've implemented extensive tests covering majority of use cases and edge cases.

Smart contract tests are located in the test/ folder.

You can run tests using the yarn test command.

11. Frontend code (if applicable)

Front-end code is located in the frontend/ folder.

Frontend is accessible under: https://unique-centaur-52f854.netlify.app/

It has the following routes:

  • Main route
  • Route with the selected Dispute
  • Route with the dispute creation

12. Screens / graphic materials (optional)

Disputes list

Screenshot 2022-09-27 at 16 09 07

Vote commitment

Screenshot 2022-09-27 at 16 09 26

Vote revealing

Screenshot 2022-09-27 at 16 09 59

Reward claiming

Screenshot 2022-09-27 at 16 10 33

New dispute creation

Screenshot 2022-09-27 at 16 10 59

About

DAO and dispute resolution for Oracles powered by Millkomeda

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published