{"id":20200752,"url":"https://github.com/dapp-learning-dao/dapp-learning-zksync","last_synced_at":"2025-04-10T11:21:26.592Z","repository":{"id":237168644,"uuid":"775851459","full_name":"Dapp-Learning-DAO/Dapp-Learning-ZKsync","owner":"Dapp-Learning-DAO","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-24T10:05:09.000Z","size":10127,"stargazers_count":13,"open_issues_count":0,"forks_count":6,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T10:06:57.846Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dapp-Learning-DAO.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-22T07:03:45.000Z","updated_at":"2025-02-13T14:57:50.000Z","dependencies_parsed_at":"2024-04-30T08:34:02.084Z","dependency_job_id":"9b03ac42-c47e-4505-99f4-57c6f2af589a","html_url":"https://github.com/Dapp-Learning-DAO/Dapp-Learning-ZKsync","commit_stats":null,"previous_names":["dapp-learning-dao/dapp-learning-zksync"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dapp-Learning-DAO%2FDapp-Learning-ZKsync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dapp-Learning-DAO%2FDapp-Learning-ZKsync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dapp-Learning-DAO%2FDapp-Learning-ZKsync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dapp-Learning-DAO%2FDapp-Learning-ZKsync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dapp-Learning-DAO","download_url":"https://codeload.github.com/Dapp-Learning-DAO/Dapp-Learning-ZKsync/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248208603,"owners_count":21065203,"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":[],"created_at":"2024-11-14T04:45:33.348Z","updated_at":"2025-04-10T11:21:26.570Z","avatar_url":"https://github.com/Dapp-Learning-DAO.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dapp-Learning ZKsync Era Tutorial\n\n\u003cdiv\u003e\n  \u003cp\u003e\n    \u003ca href=\"https://github.com/Dapp-Learning-DAO/Dapp-Learning/tree/main/docs/imgs/wechat-group-helper.png\"\u003e\u003cimg alt=\"Wechat group helper\" src=\"https://img.shields.io/static/v1?\u0026label=\u0026logo=wechat\u0026message=wechat group\u0026color=brightgreen\u0026logoColor=white\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://twitter.com/Dapp_Learning\"\u003e\u003cimg alt=\"Twitter Follow\" src=\"https://img.shields.io/twitter/follow/dapp_learning?label=Follow\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://www.youtube.com/c/DappLearning\"\u003e\u003cimg alt=\"YouTube Channel Subscribers\" src=\"https://img.shields.io/youtube/channel/subscribers/UCdJKZVxO55N3n2BQYXMDAcQ?style=social\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://discord.gg/cRYNYXqPeR\"\u003e\u003cimg src=\"https://img.shields.io/discord/907080577096757279?color=5865F2\u0026logo=discord\u0026logoColor=white\u0026label=discord\" alt=\"Discord server\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://t.me/joinchat/48Mp2jy4Yw40MmI1\"\u003e\u003cimg src=\"https://img.shields.io/badge/telegram-blue?color=blue\u0026logo=telegram\u0026logoColor=white\" alt=\"Telegram group\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n## 课程概览\n\n- **课程形式**: 视频直播课程 + 代码示例 + 线上 workshop\n- **课程时长**: 6 周\n- **课程目标:** 通过学习本课程，学习者将理解 zkSycn Era 的工作原理，并有能力在 ZKsync Era 网络上部署 DApp。 帮助更多用户使用 ZKsync Era。\n\n## **课程大纲**\n\n### Lesson 1: 快速上手 ZKsync 开发以及 Native AA\n\n- **开发工具**: 介绍开发工具的用法 (Block Explorer, ZKsync-cli, hardhat-plugins).\n- **入门示例**: 在 ZKsync Era 网络上部署 ERC20, ERC721 合约并交互.\n- **Native AA**: 在 ZKsync Era 网络上部署 Native AA 示例 (spend-limit)，并交互.\n\n[video p1](https://www.youtube.com/watch?v=vWIEDMvpqFE\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=4) | [video p2](https://www.youtube.com/watch?v=b9cToAol3cg\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=3) | [Doc](./Lesson01/README.md)\n\n### Lesson 2: ZKsync Era 抽象账户\n\n- **EIP-4337 概述**: 介绍 EIP-4337 及其工作原理。\n- **ZKsync Era 中的 AA 机制**: 介绍 ZKsync Era 中的账户抽象（AA）机制，详细说明其操作原理和工作流程.\n- **原生 AA 与 EIP-4337 的比较**: 比较 ZKsync Era 中原生 AA 与 EIP-4337 的差异.\n- **费用模型与 Paymaster**: 介绍 ZKsync Era 中账户抽象的费用模型以及 Paymaster.\n\n[video](https://www.youtube.com/watch?v=gGTnBRnSFh8\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=2) | [Doc](./Lesson02/README.md)\n\n### Lesson 3: ZKsync 系统特性详解\n\n- **L1-L2 Message**: 链接 主网 和 ZKsync Era 的合约，用于证明验证以及 L2 \u003c-\u003e L1 通信.\n- **System Contracts**: ZKsync Era 系统合约介绍.\n- **Gas Fee Model**: 解析 ZKsync Era 的 gas 费用机制及其与以太坊的区别.\n- **Differences from Ethereum**: 详解 ZKsync Era 与主网的区别以及开发注意事项.\n- **ZKsync Bridge**: 介绍 ZKsync 桥的工作方式.\n\n[video](https://www.youtube.com/watch?v=yUMCUgTVj5U\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=4) | [Doc](./Lesson03/README.md)\n\n### Lesson 4: DApp 部署 1\n\n- 如何在 ZKsync Era 上部署 Uniswap V3 (front-end + contracts).\n\n[video](https://www.youtube.com/watch?v=XuBzfrhGReM\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=5) | [Doc](./Lesson04/README.md)\n\n### Lesson 5: DApp 部署 2\n\n- **ZK red packet**: 如何在 ZKsync Era 上部署 ZK Redpacket (contracts + scripts).\n\n[video](https://www.youtube.com/watch?v=n5S8VUNfnYM\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=6\u0026pp=iAQB) | [Doc](./Lesson05/README.md)\n\n### Lesson 6: DApp 部署 3\n\n- **rollup bridge**: 如何在 ZKsync Era 上部署 Rollup Bridge.\n\n[video](https://www.youtube.com/watch?v=n5S8VUNfnYM\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=6\u0026pp=iAQB) | [Doc](./Lesson06/README.md)\n\n\u003c/br\u003e\n\n**Rollups 原理和 ZKsync Era (选修)**:\n\n### Lesson 7: Boojum 原理 1\n\n- **Boojum**: Boojum 原理 电路算术化\n  - [video](https://www.youtube.com/watch?v=MrOLmEmlBfM\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=1) | [Doc](./boojum-01/README.md)\n- **Plonk and Plonky2**: Plonk 和 Plonky2 技术的技术原理。\n\n### Lesson 8: Boojum 原理 2\n\n- **Lookup Argument**: 查找表技术\n\n[video p1](https://www.youtube.com/watch?v=1Jzk1zQA6H4\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=7) | [video p2](https://www.youtube.com/watch?v=XLsbKFysSt4\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=8) | [Doc](./boojum-02/README.md)\n\n### Lesson 9: Boojum 原理 3\n\n- **Boojum 深入**: FFT\n\n[video p1](https://www.youtube.com/watch?v=JAfwbs_Ymnk\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=9) | [video p2](https://www.youtube.com/watch?v=BDLOuGmb7mk\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=10) | [Doc](./boojum-02/README.md)\n\n### Lesson 10: Boojum 原理 4\n\n- **Boojum 深入**: FRI 原理\n\n[video p1](https://www.youtube.com/watch?v=tNPV3MkRf7w\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=12\u0026pp=iAQB) | [video p2](https://www.youtube.com/watch?v=nNXx2EqQ2AI\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=13\u0026pp=iAQB) | [Doc1](./boojum-04/boojum-fri-src.md) | [Doc2](./boojum-04/boojum-lde-src.md)\n\n## **Course Overview**\n\n- **Course Format**: online live video courses + code example + online workshops\n- **Duration**: 6 weeks\n- **Course Objectives:** Upon completing the course, learners will understand how ZKsync Era works and be able to independently develop DApps for ZKsync Era. Help more users onboard ZKsync Era.\n\n## **Course Outline**\n\n### Lesson 1: Quick Introduction to ZKsync Development and Native AA\n\n- **Development tools**: Introduction and usage of development tools (Block Explorer, ZKsync-cli, hardhat-plugins, Foundry).\n- **Simple Example**: Deploying and interacting with ERC20, ERC721 contracts on the ZKsync Era network.\n- **Native AA**: Deploying and interacting with a simple AA contract (spend-limit).\n\n[video p1](https://www.youtube.com/watch?v=vWIEDMvpqFE\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=4) | [video p2](https://www.youtube.com/watch?v=b9cToAol3cg\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=3) | [Doc](./Lesson01/README.md)\n\n### Lesson 2: ZKsync Era Account Abstraction\n\n- **EIP 4337 overview**: An overview of EIP 4337 and how it works.\n- **AA Mechanism in ZKsync Era**: Introduce the Account Abstraction (AA) mechanism in ZKsync Era, detailing its operating principles and workflow.\n- **Native AA vs EIP 4337**: Compare the differences between native AA in ZKsync Era,\n- **Fee Model and Paymaster**: Introduce the Fee Model for Account Abstraction in ZKsync Era and the role of Paymasters.\n\n[video](https://www.youtube.com/watch?v=gGTnBRnSFh8\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=2) | [Doc](./Lesson02/README.md)\n\n### Lesson 3: ZKsync System Features\n\n- **L1-L2 Message**: contracts connecting Ethereum and ZKsync Era for proof validation and L2 \u003c-\u003e L1 communications.\n- **System Contracts**: Introduce the ZKsync Era system contracts.\n- **Gas Fee Model**: Explain the ZKsync Era gas fee mechanism and its difference from Ethereum.\n- **Differences from Ethereum**: Explain the differences from ethereum and development consideration.\n\n[video](https://www.youtube.com/watch?v=yUMCUgTVj5U\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=4) | [Doc](./Lesson03/README.md)\n\n### Lesson 4: DApp Development 1\n\n- How to deploy Uniswap V3 on ZKsync Era (front-end + contracts)\n\n[video](https://www.youtube.com/watch?v=XuBzfrhGReM\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=5) | [Doc](./Lesson04/README.md)\n\n### Lesson 5: DApp Development 2\n\n- **ZK red packet**: Develop a ZK redpacket on ZKsync Era.\n\n[video](https://www.youtube.com/watch?v=n5S8VUNfnYM\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=6\u0026pp=iAQB) | [Doc](./Lesson05/README.md)\n\n### Lesson 6: DApp Development 3\n\n- **rollup bridge**: How to develop a cross rollup bridge on ZKsync Era.\n\n\u003c/br\u003e\n\n**Principles of Rollups and ZKsync Era (Optional)**:\n\n### Lesson 7: Principles of Boojum 1\n\n- **Boojum**: Technical principles of Boojum, Circuit Arithmetization\n\n[video](https://www.youtube.com/watch?v=MrOLmEmlBfM\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=1) | [Doc](./boojum-01/README.md)\n\n### Lesson 8: Principles of Boojum 2\n\n- **Lookup Argument**:\n\n[video p1](https://www.youtube.com/watch?v=1Jzk1zQA6H4\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=7) | [video p2](https://www.youtube.com/watch?v=XLsbKFysSt4\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=8) | [Doc](./boojum-02/README.md)\n\n### Lesson 9: Principles of Boojum 3\n\n- **Inside Boojum**: FFT\n\n[video p1](https://www.youtube.com/watch?v=JAfwbs_Ymnk\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=9) | [video p2](https://www.youtube.com/watch?v=BDLOuGmb7mk\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=10) | [Doc](./boojum-02/README.md)\n\n### Lesson 10: Principles of Boojum 4\n\n- **Inside Boojum**: FRI\n\n[video p1](https://www.youtube.com/watch?v=tNPV3MkRf7w\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=12\u0026pp=iAQB) | [video p2](https://www.youtube.com/watch?v=nNXx2EqQ2AI\u0026list=PLgPVMJY4tnFNK260S6thZqEAXJhtcgHaW\u0026index=13\u0026pp=iAQB) | [Doc1](./boojum-04/boojum-fri-src.md) | [Doc2](./boojum-04/boojum-lde-src.md)\n\n## Reference\n\n- [ZKsync Era Doc](https://docs.ZKsync.io/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdapp-learning-dao%2Fdapp-learning-zksync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdapp-learning-dao%2Fdapp-learning-zksync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdapp-learning-dao%2Fdapp-learning-zksync/lists"}