MediaChain is a YouTube Clone built on top of Polygon network and The Graph, that allows users to create, share and watch videos, without worrying about their privacy.
- Frontend framework: Next.js
- Smart contracts: Solidity
- Ethereum web client library: Ethers.js
- File storage: IPFS
- Querying data: The Graph
- CSS Framework: TailwindCSS
- Ethereum development environment: Hardhat
- Layer 2 blockchain: Polygon
- Video Infrastructure: Livepeer
To get this application up and and running on your local machine follow these simple steps.
You need to have Node.js, NPM and hardhat installed on your computer, before running this project.
-
Clone the repo
-
Install NPM packages
npm install
or
yarn install
-
Create an
.env
file and get an API key from Livepeer studio, Web3 Storage and Imagekit.PRIVATE_KEY="156a3ffca59392a7c7139d2a4576eb8b736b60a8a986a776b5f9f0970285a4f7" NEXT_PUBLIC_LIVEPEER_KEY="f953aa45-5454-4d14-9104-b5a9f96d8189" NEXT_PUBLIC_WEB3_STORAGE_KEY= NEXT_PUBLIC_IMAGEKIT_ID="onboard"
-
Compile the smart contract
npx hardhat compile
-
Deploy the smart contract
-
Get your contract address and paste in on
constants/index.ts
-
Deploy subgraph in
indexer
directory by following steps inindexer/README.md
(optional, since it is already deployed in hosted service) -
Get subgraph query endpoint after deployment and update it in
constants/index.t
-
Run the app
npm start
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue. Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is an open source software licensed under the MIT License