{"id":18823759,"url":"https://github.com/abdeltwabmf/devault","last_synced_at":"2025-04-14T01:30:36.064Z","repository":{"id":41512333,"uuid":"479647641","full_name":"AbdeltwabMF/devault","owner":"AbdeltwabMF","description":"A decentralized alternative to proprietary and centralized cloud storage.","archived":false,"fork":false,"pushed_at":"2023-03-08T01:25:55.000Z","size":25583,"stargazers_count":15,"open_issues_count":16,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T15:47:32.199Z","etag":null,"topics":["beamer","blockchain","cryptocurrency","cryptography","dapp","ethersjs","hardhat","ipfs","latex","metamask","network","nextjs","nodejs","p2p-network","solidity","thesis","wallet","web3"],"latest_commit_sha":null,"homepage":"devault.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AbdeltwabMF.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null}},"created_at":"2022-04-09T07:06:29.000Z","updated_at":"2025-03-20T20:02:56.000Z","dependencies_parsed_at":"2023-02-18T16:16:04.451Z","dependency_job_id":null,"html_url":"https://github.com/AbdeltwabMF/devault","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbdeltwabMF%2Fdevault","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbdeltwabMF%2Fdevault/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbdeltwabMF%2Fdevault/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbdeltwabMF%2Fdevault/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AbdeltwabMF","download_url":"https://codeload.github.com/AbdeltwabMF/devault/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248807281,"owners_count":21164658,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["beamer","blockchain","cryptocurrency","cryptography","dapp","ethersjs","hardhat","ipfs","latex","metamask","network","nextjs","nodejs","p2p-network","solidity","thesis","wallet","web3"],"created_at":"2024-11-08T00:54:36.117Z","updated_at":"2025-04-14T01:30:36.028Z","avatar_url":"https://github.com/AbdeltwabMF.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"/public/devault-fetrah-1024.png\" width=\"200px\" height=\"200px\" /\u003e\n\u003c/div\u003e\n\u003ch1 align=\"center\"\u003eDevault\u003c/h1\u003e\n\u003ch4 align=\"center\"\u003eA Blockchain-based, self-hosted, and end-to-end encrypted cloud storage.\u003c/h4\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://github.com/AbdeltwabMF/devault/graphs/commit-activity\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Maintained%3F-yes-green.svg\" alt=\"maintenance\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://devault.vercel.app/\"\u003e\n        \u003cimg src=\"https://img.shields.io/website-up-down-green-red/http/shields.io.svg\" alt=\"website\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/AbdeltwabMF/devault/blob/main/LICENSE\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/license/AbdeltwabMF/devault?logo=gnu\u0026.svg\" alt=\"license\" /\u003e\n    \u003ca\u003e\n    \u003ca href=\"https://github.com/AbdeltwabMF/devault/releases\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/release/AbdeltwabMF/devault.svg\" alt=\"release\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/AbdeltwabMF/devault/graphs/contributors\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/contributors/AbdeltwabMF/devault.svg\" alt=\"contributors\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"http://makeapullrequest.com\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square\" alt=\"pull-request\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://standardjs.com\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/code_style-standard-brightgreen.svg\" alt=\"style\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://hub.docker.com/r/abdeltwabmf/devault\"\u003e\n        \u003cimg src=\"https://img.shields.io/docker/image-size/abdeltwabmf/devault/latest\" alt=\"docker\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/AbdeltwabMF/devault\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/languages/top/AbdeltwabMF/devault\" alt=\"languages\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/AbdeltwabMF/devault/CODE-OF-CONDUCT.md\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg\" alt=\"code-of-conduct\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.codacy.com?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=AbdeltwabMF/devault\u0026amp;utm_campaign=Badge_Grade\"\u003e\n        \u003cimg src=\"https://app.codacy.com/project/badge/Grade/7abde45beb1a44ef858fb68e889a214e\" alt=\"quality\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/AbdeltwabMF/devault/graphs/commit-activity\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/commit-activity/w/abdeltwabmf/devault\" alt=\"commits\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/AbdeltwabMF/devault\"\u003e\n        \u003cimg src=\"https://img.shields.io/tokei/lines/github/AbdeltwabMF/devault\" alt=\"lines-of-code\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://matrix.to/#/#devault-community:matrix.org\"\u003e\n        \u003cimg src=\"https://img.shields.io/matrix/devault-community:matrix.org\" alt=\"chat\" /\u003e\n    \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://youtu.be/gR_tQAkn674\"\u003e\n        Youtube Video\n    \u003c/a\u003e\n    \u0026middot;\n    \u003ca href=\"https://faucet.egorfine.com/\"\u003e\n        Ropsten Faucet\n    \u003c/a\u003e\n    \u0026middot;\n    \u003ca href=\"https://devault.vercel.app/\"\u003e\n        Live Instance\n    \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n*If you have any improvements, do not hesitate to post an [issue](https://github.com/AbdeltwabMF/devault/issues/new/choose) or make a [pull request](https://github.com/AbdeltwabMF/devault/pulls).*\n\n*Your support is very much appreciated!* [star on GitHub](https://github.com/AbdeltwabMF/devault/stargazers)\n\n\u003cp align=\"center\"\u003e\n    :warning: Active development. Unstable. Breaking changes. You get the point. :warning:\n\u003c/p\u003e\n\n## :scroll: Table of Contents\n\n*   [About the Project](#tada-about-the-project)\n    *   [Screenshots](#camera-screenshots)\n    *   [Color Reference](#art-color-reference)\n    *   [Tech stack and Tools](#hammer_and_wrench-tech-stack-and-tools)\n    *   [What is Devault](#microphone-what-is-devault)\n    *   [Why Devault](#mag-why-devault)\n        *   [The Problem with Traditional Cloud Storage](#-1-the-problem-with-traditional-cloud-storage)\n        *   [Solution with Devault](#1-the-solution-with-devault)\n        *   [Features](#see_no_evil-features)\n    *   [How Devault Works](#closed_lock_with_key-how-devault-works)\n*   [Source Code Directory Structure](#ladder-source-code-directory-structure)\n*   [Getting Started](#biking_man-getting-started)\n    *   [Prerequisites](#yellow_circle-prerequisites)\n        *   [Package Manager](#package-package-manager)\n        *   [Environment Variables](#key-environment-variables)\n    *   [Run for Development](#wrench-run-for-development)\n        *   [Run the Tests](#syringe-run-the-tests)\n    *   [Deployment | Hosting](#sparkles-deployment--hosting)\n*   [Usage](#thinking-usage)\n*   [FAQ](#bulb-faq)\n*   [Future Work](#rescue_worker_helmet-future-work)\n*   [Community](#hearts-community)\n*   [Acknowledgements](#gem-acknowledgements)\n    *   [Softwares](#lollipop-softwares)\n    *   [Engineers](#construction_worker-engineers)\n*   [Tutorials](#books-tutorials)\n*   [Contributors](#hatching_chick-contributors)\n*   [License](#warning-license)\n\n## :tada: About the Project\n\n`Devault` stands for DEcentralized VAULT\n\n### :camera: Screenshots\n\n|                                               |                                               |\n|:---------------------------------------------:|:---------------------------------------------:|\n| ![landpage](/public/screenshots/landpage.png) | ![landpage](/public/screenshots/thevault.png) |\n\n### :art: [Color Reference](https://coolors.co/palette/264653-2a9d8f-e9c46a-f4a261-e76f51)\n\n## :microphone: What is Devault\n\nDevault is a decentralized, self-hosted, and end-to-end encrypted alternative to proprietary and centralized cloud storage.\n\n### :mag: Why Devault\n\n#### :-1: The Problem with Traditional Cloud Storage\n\n*   Data loss\n*   Data hack\n*   Data surveillance\n\n#### :+1: The Solution with Devault\n\n*   No third party can access your files or prevent you from accessing them.\n*   It prevents the censorship of the data.\n*   It's nearly impossible to hack AES-256-CBC encryption or even the blockchain.\n*   It prevents the data from being tampered with.\n*   It breaks apart the users’ files and distributes them across multiple nodes on the network.\n*   The smart contract is upgradeable, so the data is never lost when there is a bug fix.\n\n#### :see\\_no\\_evil: Features\n\n*   Decentralized\n*   Blockchain based\n*   End-to-end encryption/decryption\n*   Self-hosted\n*   Open-source\n\n### :closed\\_lock\\_with\\_key: How Devault Works\n\n**When you upload a file:**\n\n*   The file gets encrypted using AES-256-CBC encryption.\n*   The encrypted file is split into pieces.\n*   The chunks are distributed across the network nodes.\n*   The root hash will be stored in your wallet on the blockchain.\n\n**When you download a file:**\n\n*   The root hash will be retrieved from your wallet on the blockchain.\n*   The root hash will be used to retrieve the file chunks.\n*   The retrieved chucks will be combined and decrypted to represent the original file.\n\n### :hammer\\_and\\_wrench: Tech Stack and Tools\n\nThe tools used in this project.\n\n|                                                                      | Tool                                       | Description                                                                    |\n|:--------------------------------------------------------------------:|:------------------------------------------:|:------------------------------------------------------------------------------:|\n| \u003cimg src=\"/public/tools/neovim.png\" width=\"32px\" height=\"32px\" /\u003e    | [Neovim](https://neovim.io/)               | IDE                                                                      |\n| \u003cimg src=\"/public/tools/nextdotjs.png\" width=\"32px\" height=\"32px\" /\u003e | [Next.js](https://nextjs.org/)             | Full stack framework                                                        |\n| \u003cimg src=\"/public/tools/hardhat.png\" width=\"32px\" height=\"32px\" /\u003e   | [Hardhat](https://hardhat.io)              | Framework for developing, testing, linting and deploying smart contracts  |\n| \u003cimg src=\"/public/tools/solidity.png\" width=\"32px\" height=\"32px\" /\u003e  | [Solidity](https://docs.soliditylang.org/) | The smart contract language                                                   |\n| \u003cimg src=\"/public/tools/metamask.png\" width=\"32px\" height=\"32px\" /\u003e  | [Metamask](https://metamask.io/)           | Web3 provider                                                             |\n| \u003cimg src=\"/public/tools/ethereum.png\" width=\"32px\" height=\"32px\" /\u003e  | [Ethers.js](https://docs.ethers.io/)       | Library for interacting with the Ethereum blockchain                      |\n| \u003cimg src=\"/public/tools/ethereum.png\" width=\"32px\" height=\"32px\" /\u003e  | [Ropsten](https://ropsten.etherscan.io/)   | Testnet for deploying smart contracts                                     |\n| \u003cimg src=\"/public/tools/infura.png\" width=\"32px\" height=\"32px\" /\u003e    | [Infura](https://infura.io/)               | Blockchain node as a service to deploy the smart contracts through it |\n| \u003cimg src=\"/public/tools/ipfs.png\" width=\"32px\" height=\"32px\" /\u003e      | [IPFS](https://ipfs.io/)                   | Storing, retrieving and sharing the encrypted files                                    |\n| \u003cimg src=\"/public/tools/jest.png\" width=\"32px\" height=\"32px\" /\u003e      | [Jest](https://jestjs.io/)                 | Unit testing and code coverage                                                              |\n| \u003cimg src=\"/public/tools/ethereum.png\" width=\"32px\" height=\"32px\" /\u003e  | [Etherscan](https://etherscan.io/)         | Verifying transactions and blocks                                          |\n| \u003cimg src=\"/public/tools/vercel.png\" width=\"32px\" height=\"32px\" /\u003e    | [Vercel](https://vercel.com/)              | Production deployment                                           |\n| \u003cimg src=\"/public/tools/docker.png\" width=\"32px\" height=\"32px\" /\u003e    | [Docker](https://www.docker.com/)          | Deploying and shipping the app for production                              |\n\n## :ladder: Source Code Directory Structure\n\nA quick look at the top-level files and directories:\n\n```sh\n.\n├── __tests__\n├── artifacts\n├── components\n├── contracts\n├── docker-compose.yml\n├── Dockerfile\n├── docs\n├── hardhat.config.js\n├── jest.config.js\n├── next.config.js\n├── out\n├── package.json\n├── pages\n├── public\n├── scripts\n├── SECURITY.md\n├── styles\n├── .github\n└── utils\n```\n\n*   1.  \\_\\_tests\\_\\_: contains all the unit tests\n*   2.  artifacts: produced by hardhat after compiling the smart contracts and containing smart contracts ABIs.\n*   3.  components: contains all the React components.\n*   4.  contracts: contains all the smart contracts source code.\n*   5.  docker-compose.yml: docker-compose file for serving the production build.\n*   6.  Dockerfile: docker file for building and running next.js app used by docker-compose\n*   7.  docs: contains all the source code documentation.\n*   8.  hardhat.config.js: hardhat config file\n*   9.  jest.config.js: jest config file\n*   10. next.config.js: next.js config file\n*   11. out: produced by `npm run build2` and contains a static site.\n*   12. package.json: npm package manager config file\n*   13. pages: contains all pages routes\n*   14. public: contains all the assets (ex. images, fonts...)\n*   15. scripts: contains all the scripts used to automate the development process (ex. deploy, logger...)\n*   16. SECURITY: defining which version receives updates.\n*   17. styles: contains all page styles.\n*   18. .github: contains automated workflows (CI/CD).\n*   19. utils: contains all javascript functions used by other components.\n\n## :biking\\_man: Getting Started\n\n### :yellow\\_circle: Prerequisites\n\n#### :package: Package Manager\n\nThis project uses `npm` as a package manager\n\n```sh\npacman -S npm\n```\n\n#### :key: Environment Variables\n\nTo run this project, you will need to add the following environment variables to your `.env` file\n\n`PRIVATE_KEY`\n`ROPSTEN_URL`\n\nTo generate those keys you will need to:\n\n*   1.  create infura account\n*   2.  create a new Ethereum node\n*   3.  copy the private key to .env\n*   4.  copy ropsten url to .env\n\n`SMART_CONTRACT_ADDRESS_ROPSTEN`\n\nThis variable will be set later by the deployment script\n\n### :wrench: Run for Development\n\n*   Clone the repo\n\n```sh\ngit clone https://github.com/AbdeltwabMF/devault.git\ncd devault\n```\n\n*   Install dependencies\n\n```sh\nnpm ci\n```\n\n*   Run the development server and local blockchain node.\n\n```sh\nnpm run deploy localhost\n```\n\n*   Navigate to `http://localhost:3000` \u003cbr/\u003e\n\n:green\\_circle: *Now you're good to go*\n\n#### :syringe: Run the Tests\n\n*   Run the smart contracts test\n\n```sh\nnpx hardhat test\n```\n\n*   Generates a code coverage report for smart contracts test\n\n```sh\nnpx hardhat coverage\n```\n\n*   Run the whole project tests\n\n```sh\nnpm run test\n```\n\n### :sparkles: Deployment | Hosting\n\n*   Deploy using source code and docker\n\n```sh\ngit clone https://github.com/AbdeltwabMF/devault.git\ncd devault\n```\n\n```sh\ndocker-compose up --build --force-recreate -d\n```\n\n*   Deploy using official docker image hosted on docker hub\n\n```sh\ndocker container run -p 3000:3000 -d abdeltwabmf/devault\n```\n\n*   Deploy using vercel\n\n```sh\nnpm i -g vercel\n```\n\n```sh\nvercel --prod\n```\n\n*   Deploy using static site generation\n\nThe generated static site will be in the `out` directory (ex. use `nginx` to serve it)\n\n```sh\nnpm run build2\n```\n\n## :thinking: Usage\n\n*   1.  Create an Ethereum wallet using [metamask](https://metamask.io/) extension.\n*   2.  Open [devault website](https://devault.vercel.app/).\n*   3.  Click connect wallet and follow the steps.\n*   4.  \u003cdetails\u003e\n        \u003csummary\u003eMake sure you're on the ropsten network. (settings \u003e advanced \u003e show test networks)\u003c/summary\u003e\n        \u003cul\u003e\n         \u003cli\u003e\u003cimg src=\"/public/screenshots/metamask-ropsten.png\" /\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n     \u003c/details\u003e\n*   5.  \u003cdetails\u003e\n        \u003csummary\u003eGo to \u003ca href=\"https://faucet.egorfine.com/\"\u003eropsten faucet\u003c/a\u003e and paste your address to get some ethers. (used for transactions)\u003c/summary\u003e\n        \u003cul\u003e\n         \u003cli\u003e\u003cimg src=\"/public/screenshots/faucet.png\" /\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n     \u003c/details\u003e\n*   6.  Navigate to [The Vault](https://devault.vercel.app/vault) tab.\n*   7.  Pick a file and press upload.\n*   8.  Give a passphrase to encrypt the file. (you can use different passphrases for different files).\n*   9.  Once the file is successfully uploaded it will appear on the same page with the option to download.\n*   10. When downloading give the same passphrase you entered when uploading the file.\n*   11. The file is now being downloaded.\n\n## :bulb: FAQ\n\n\u003cdetails\u003e\n    \u003csummary\u003eWhy metamask?\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eIt's the most popular wallet out there, and it's the only wallet supported by the current version of devault.\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eIs it possible to upload files without ethers?\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eNo, you should have some ethers to be able to write files' metadata to the blockchain.\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eWhat happens when I switch to another account\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eThe files that is related to that account will be retrieved instead of the previous one.\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n## :rescue\\_worker\\_helmet: Future Work\n\n*   \\[ ] Arabic version.\n*   \\[x] Client-side encryption/decryption.\n*   \\[x] Upload a file.\n*   \\[x] Delete a file.\n*   \\[x] Download a file.\n*   \\[x] Secure file sharing.\n*   \\[ ] Delete selected files.\n*   \\[ ] Search files.\n*   \\[ ] Change passphrase.\n*   \\[ ] Compress files before uploading.\n*   \\[ ] Sort files based on (date, size, name...)\n*   \\[ ] Upload folders.\n*   \\[ ] Download selected files.\n\n## :hearts: Community\n\nThe `Devault` community can be found on:\n\n*   [Telegram](https://t.me/+OeH3hX00HqxmZDc8)\n*   [Matrix](https://matrix.to/#/#devault-community:matrix.org)\n\nWhere you can ask questions, suggest new ideas, and get support.\n\n## :gem: Acknowledgements\n\n### :lollipop: Softwares\n\n*   [eslint](https://eslint.org/)\n*   [ale](https://github.com/dense-analysis/ale)\n*   [remix](https://remix.ethereum.org/)\n\n### :construction\\_worker: Engineers\n\n*   [Osama El-Zero](https://www.youtube.com/c/ElzeroInfo/)\n*   [Web Dev Simplified](https://www.youtube.com/c/WebDevSimplified/)\n*   [Patrick Collins](https://www.youtube.com/c/PatrickCollins/)\n*   [3blue1brown](https://www.youtube.com/c/3blue1brown/)\n*   [Savjee](https://www.youtube.com/c/Savjee/)\n\n## :books: Tutorials\n\n\u003cdetails\u003e\n    \u003csummary\u003eView\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003e\n            \u003cstrong\u003eHow Blockchain works\u003c/strong\u003e\n            \u003cul\u003e\n                \u003cli\u003e\u003ca href=\"https://www.youtube.com/watch?v=_160oMzblY8\"\u003eBlockchain 101 - Visual demo\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://www.youtube.com/watch?v=xIDL_akeras\"\u003eBlockchain 101 - Public / Private keys\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://www.youtube.com/watch?v=SSo_EIwHSd4\"\u003eHow does a blockchain work\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://www.youtube.com/watch?v=bBC-nXj3Ng4\"\u003eBut how does bitcoin actually work?\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://www.youtube.com/playlist?list=PLsRSUZfRUa8iRe88Ef3hdn5302sVu-3Ey\"\u003eالبلوكتشين خطوة بخطوة - مرحلة بناء بلوكتشين وعملة رقمية\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://www.youtube.com/playlist?list=PLzvRQMJ9HDiTqZmbtFisdXFxul5k0F-Q4\"\u003eBuilding a blockchain with Javascript\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://www.youtube.com/playlist?list=PLd2pEan0ZG_ZQX25f5Z-1RFkHPz2QuLeY\"\u003eBlockchain 101 Tutorial - شرح بالعربي تقنية البلوك تشين\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://github.com/yjjnls/awesome-blockchain\"\u003eAwesome Blockchain\u003c/a\u003e\u003c/li\u003e\n            \u003c/ul\u003e\n        \u003c/li\u003e\n        \u003cli\u003e\n            \u003cstrong\u003eUnderstanding the cryptographic part of the Blockchain\u003c/strong\u003e\n            \u003cul\u003e\n                \u003cli\u003e\u003ca href=\"https://youtu.be/S9JGmA5_unY\"\u003eHow secure is 256 bit security?\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://www.youtube.com/channel/UC1usFRN4LCMcfIV7UjHNuQg\"\u003eIntroduction to Cryptography by Christof Paar\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://github.com/sobolevn/awesome-cryptography\"\u003eAwesome cryptography\u003c/a\u003e\u003c/li\u003e\n            \u003c/ul\u003e\n        \u003c/li\u003e\n        \u003cli\u003e\n            \u003cstrong\u003eData structures used in Blockchain\u003c/strong\u003e\n            \u003cul\u003e\n                \u003cli\u003e\u003ca href=\"https://www.youtube.com/watch?v=n6nEPaE7KZ8\"\u003eMerkle Tree\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://youtu.be/qHMLy5JjbjQ\"\u003eMerkle Tree with real world examples\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://www.youtube.com/watch?v=3giNelTfeAk\"\u003eHow Merkle Trees Enable the Decentralized Web!\u003c/a\u003e\u003c/li\u003e\n            \u003c/ul\u003e\n        \u003c/li\u003e\n        \u003cli\u003e\n            \u003cstrong\u003eAcronyms and glossaries\u003c/strong\u003e\n            \u003cul\u003e\n                \u003cli\u003e\u003ca href=\"https://www.youtube.com/playlist?list=PLzvRQMJ9HDiQF_5bEErheiAawrJ-2zQoI\"\u003eBlockchain \u0026 Cryptocurrency\u003c/a\u003e\u003c/li\u003e\n            \u003c/ul\u003e\n        \u003c/li\u003e\n        \u003cli\u003e\n            \u003cstrong\u003eThe smart contract development \u0026 security\u003c/strong\u003e\n            \u003cul\u003e\n                \u003cli\u003e\u003ca href=\"https://cryptozombies.io/\"\u003eCryptozombies\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://ethereum.org/en/developers/docs/\"\u003eEthereum Official Documentation\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://www.youtube.com/watch?v=gyMwXuJrbJQ\"\u003eLearn Blockchain, Solidity, and Full Stack Web3 Development with JavaScript\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://www.youtube.com/watch?v=bdXJmWajZRY\"\u003eUpgrading your Smart Contracts | A Tutorial \u0026 Introduction\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://www.youtube.com/playlist?list=PLO5VPQH6OWdVQwpQfw9rZ67O6Pjfo6q-p\"\u003eSolidity 0.8\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://www.youtube.com/playlist?list=PLO5VPQH6OWdVfvNOaEhBtA53XHyHo_oJo\"\u003eSolidity Applications\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://www.youtube.com/playlist?list=PLO5VPQH6OWdXxQc_1YPa63Ody9LknKW4k\"\u003eSecurity\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://github.com/bkrem/awesome-solidity\"\u003eAwesome solidity\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://github.com/liamzebedee/awesome-solidity-patterns\"\u003eAwesome solidity patterns\u003c/a\u003e\u003c/li\u003e\n            \u003c/ul\u003e\n        \u003c/li\u003e\n        \u003cli\u003e\n            \u003cstrong\u003eThe front end (JavaScript \u0026 React)\u003c/strong\u003e\n            \u003cul\u003e\n                \u003cli\u003e\u003ca href=\"https://www.youtube.com/playlist?list=PLDoPjvoNmBAx3kiplQR_oeDqLDBUDYwVv\"\u003eLearn JavaScript in Arabic 2021\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://www.youtube.com/playlist?list=PLZlA0Gpn_vH8EtggFGERCwMY5u5hOjf-h\"\u003eReact Hooks\u003c/a\u003e\u003c/li\u003e\n            \u003c/ul\u003e\n        \u003c/li\u003e\n        \u003cli\u003e\n            \u003cstrong\u003eThe IPFS protocol\u003c/strong\u003e\n            \u003cul\u003e\n                \u003cli\u003e\u003ca href=\"https://docs.ipfs.io/\"\u003eWelcome to the IPFS docs\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://youtu.be/HUVmypx9HGI\"\u003eIPFS and the Permanent We\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://youtu.be/6kqgsGXpykM\"\u003eInterPlanetary File System (IPFS) Tutorial - Building the Distributed Web\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://www.youtube.com/watch?v=3jizwk6_m1s\"\u003eUpload 10000 NFTs to IPFS\u003c/a\u003e\u003c/li\u003e\n                \u003cli\u003e\u003ca href=\"https://github.com/ipfs/awesome-ipfs\"\u003eAwesome IPFS\u003c/a\u003e\u003c/li\u003e\n            \u003c/ul\u003e\n        \u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n## :hatching\\_chick: Contributors\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://abdeltwabmf.github.io\"\u003e\n        \u003cimg src=\"https://avatars.githubusercontent.com/u/55063723?v=3?s=100\" width=\"100px;\" alt=\"Abdeltwabmf\"/\u003e\u003cbr /\u003e\n            \u003csub\u003e\u003cb\u003eAbd El-Twab M. Fakhry\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## :warning: License\n\nLicensed under the [GPL-v3](LICENSE) License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdeltwabmf%2Fdevault","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabdeltwabmf%2Fdevault","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdeltwabmf%2Fdevault/lists"}