# 从0到1开发Dapp实战课程启动了

By [Keegan小钢](https://paragraph.com/@keeganlee) · 2024-10-23

---

很多想要转入 Web3 的新人都会比较迷茫，不知道具体应该学什么，怎么学。另外，已经学了一段时间的新手也同样很迷茫，因为缺乏项目经验，对很多零碎的知识点无法串联成线和面，找工作面试时就会频频被卡住。本质上，都是因为缺少途径和渠道去了解一个实际商业项目研发的全流程。

为了从根本上帮忙新人们解决他们的问题，我决定开设一门新的体系化课程，「**从0到1开发Dapp实战课程**」，将以实战项目为例，从 0 到 1 详细讲解开发 Dapp 的全流程。

实战项目将会开发一个链上指数基金产品，内容会涵盖一个实际商业项目所涉及到的多个业务场景和技术技能，包括但不限于：

*   **发行代币**：多种不同需求场景的代币发行
    
*   **空投代币**：不同实现方案的空投代币场景
    
*   **发行NFT**：不同场景的NFT实现
    
*   **质押挖矿**：即 Staking
    
*   **使用多签钱包**：多签钱包的创建和交互
    
*   **投票治理流程**：DAO治理流程
    
*   **接入价格预言机**：Chainlink价格预言机
    
*   **接入Uniswap**：用Uniswap进行代币兑换
    
*   **实现可升级合约**：要了解三种代理模式
    
*   **实现Subgraph**：用于数据统计和查询
    
*   **实现Keeper服务**：用于监控合约状态和触发指定的合约函数
    
*   **实现Web3前端**：使用常用的web3前端库实现UI
    
*   **需求分析**：链上指数基金产品的需求分析
    
*   **合约设计**：各种不同场景的合约设计
    

简而言之，这是一门涵盖 Dapp 全栈的体系化课程，而且是非常接地气，贴合实际商业项目场景的实战课程。

课程将会采用直播+录播回放的方式进行授课，会创建学员交流群，课程课件和示例代码也会放上 Github 并授权给学员们学习。

另外，这次课程的发售，也将会采用不一样的方式，采用 Web3 的方式进行发售，通过链上合约的方式进行售卖。合约我已经部署到了 **Arbitrum** 网络，合约地址为：

*   [0xFF86A1f61a68496A3B1111696808459098C49b29](https://arbiscan.io/address/0xFF86A1f61a68496A3B1111696808459098C49b29)
    

想要报名课程的学员，可以直接通过合约交互购买 NFT，每一个 NFT 就相当于一张课程门票，可以自己用，也可以转给其他朋友用。

目前处于预售阶段，截止到 10 月底，**每一张 NFT 门票预售价格为 180 USDT**。预售结束后，NFT 门票价格为 **200 USDT** 起步，每增加一人购买，价格涨 **1 USDT**。

还有推荐返佣机制，每个购买地址会自动成为推荐地址。购买时如果有推荐地址，能得到 5% 的折扣减免，而推荐地址的佣金比例也是 5% 起步，每推荐一人，佣金比例提升 1%。

**还有，所有我的 1v1 学员们都能得到我赠送的免费 NFT 门票，包括之前的 1v1 学员，也会包括以后的新学员。**

接下来，我会教大家，在当前预售阶段，具体如何操作购买。

首先，确保你在 Arbitrum 网络的钱包里至少有 180 USDT，以及有少量 ETH 可以作为 Gas。

然后，购买之前需要先完成 USDT 对 CourceNFT 合约的授权。通过以下链接打开 Arbitrum 网络的 USDT 合约：

*   [https://arbiscan.io/address/0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9#writeProxyContract](https://arbiscan.io/address/0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9#writeProxyContract)
    

![](https://storage.googleapis.com/papyrus_images/df41d3191152401d410045537333c03fa72c615c1c4aa5a1734bafb80e8bbfbf.png)

可看到以上页面，确保当前是在 **Write as Proxy** 的标签页。接着点击 **Connect to Web3**，连接上你的钱包。连接成功后，点开 **approve**，输入参数如下：

*   `spender`：0xFF86A1f61a68496A3B1111696808459098C49b29
    
*   `amount`：180000000
    

`spender` 即为要授权的 NFT 门票合约地址，`amount` 表示授权额度 180 U。当然，如果你需要进行多次购买，这个授权额度也可以设为更大的值。这样，后面购买时就无需再重复授权了。

之后，点击 **Write** 按钮，回到钱包确认交易，等交易打包成功后就完成授权操作了。

下一步，打开 NFT 合约页面的 **Write Contract** 标签页：

*   [https://arbiscan.io/address/0xFF86A1f61a68496A3B1111696808459098C49b29#writeContract](https://arbiscan.io/address/0xFF86A1f61a68496A3B1111696808459098C49b29#writeContract)
    

![](https://storage.googleapis.com/papyrus_images/cccc33b03316d1936fef57167896c1c9fe706969f6186b23e77446b2246f1852.png)

可看到以上页面，**Connect to Web3** 完成钱包连接，然后预售操作是要执行 **preorder** 函数，该函数没有函数参数，打开后直接点击 **Write** 按钮去确认交易即可。

交易成功后，会从你的钱包里自动扣除 180 USDT，并得到一个 NFT，记住这个 NFT 的 tokenId，后面核销时需要用到。 核销时需要加我微信（**keegan1874**），并找我要一个核销码来完成核销操作流程。

完成以上流程后，就完成了预售阶段的课程门票 NFT 购买了。对于 Web3 小白来说，这操作可能会有点繁琐，但既然想转型到 Web3 开发这条路了，这些操作都是最基础的内容，是必须要掌握的。

之后，在课程中我也会详细讲解这个 NFT 合约。后续也会为这个合约添加对应的前端页面，变成一个完整的 Dapp。

---

*Originally published on [Keegan小钢](https://paragraph.com/@keeganlee/0-1-dapp)*
