这一讲,我们将介绍 zkSync 的生态和一些常用的工具。
1. zkSync 水龙头

2. zkSync CLI
zkSync CLI 是一个用于简化 zkSync 开发与交互的命令行工具。它提供了诸如管理本地开发环境、与合约交互、管理代币等功能的命令。它包含以下命令及对应功能:
2.1 dev
用于管理本地开发环境
-
所需环境
-
使用
首次运行时需要选择 节点类型 和 附加的模块(后续可通过 npx zksync-cli dev config
修改)。
-
节点选择
-
In memory node:使用内存建立本地测试环境,只有 L2 节点,测试账户地址和私钥。
-
Dockerized node:使用 Docker 建立本地测试环境,包含 L1 和 L2 节点。
-

-
附加模块选择
-
Portal:添加钱包和跨链桥相关功能。
-
Block Explorer:添加 zkSync 区块链浏览器 UI 和 API 相关功能。
-

后续演示环境:
In memory node
且不安装附加模块
。
2.2 config
用于配置自定义链,添加/编辑自定义链命令如下
根据提示即可完成添加/编辑自定义链操作
2.3 contract
用于操作链上合约(读、写等),使用 npx zksync-cli contract read
命令,我们可以非常方便地读取链上信息,如获取某个地址的 Token 余额:
根据提示选择合约所在的链(为了方便测试,这里我们选择 zkSync Sepolia Testne
)
选择链之后,会要求输入合约地址(这里我们输入一个 ERC20 合约的地址做测试)
zksync-cli 会自动为我们获取该地址对应合约的可读函数的函数签名(这里我们选择余额查询 balanceOf(address account) view returns (uint2)
)
根据提示输入参数(根据函数签名可知,我们需要传入想要查询余额的地址)
回车后我们就可以看到查询结果
至此,我们就使用 zksync-cli
对合约进行读取的操作,是不是非常的方便?当然,zksycn-cli 的强大还远不止于此。
2.4 transaction
用于查询链上交易信息(交易状态、转账金额、gas 费用等)。我们可以使用交易哈希非常便捷地查询到对应的链上交易信息:
options:
-
--full:查询详细信息
-
--raw:显示原始 JSON 响应
接下来,我们使用 zksync-cli
查询 zkSync Sepolia Testnet
上交易哈希为 0xb427c3abd0397caeaea64a18dbf2ad7b699c5da49fa54dd31d3267f63341d8ea
的详细交易信息
根据提示选择想要查询的链(这里我们为了测试方便,选择 zkSync Sepolia Testnet
)
根据提示输入交易哈希:0xb427c3abd0397caeaea64a18dbf2ad7b699c5da49fa54dd31d3267f63341d8ea
回车后,zksync-cli
就可以为我们查询到对应的交易详情
2.5 create
用于快速创建项目(前端、智能合约和脚本)。

2.6 wallet
用于管理与钱包相关的功能(转账、余额查询等)。
- 余额查询
options:
-
--address:想要查询余额的地址
-
--token:如果想要查询 ERC20 代币,可以添加此参数,并传入合约地址
-
--chain:指定在哪条链上查询
-
--rpc:指定 RPC URL
下面我们根据之前的例子,查询 0xa1cf087DB965Ab02Fb3CFaCe1f5c63935815f044
在测试网上的代币余额
查询结果
当然,如果只是查询以太余额,我们可以只输入 npx zksync-cli wallet balance
命令并回车,zksync-cli
会自动提示我们选择要查询的链和想要查询的地址。
2.7 bridge
用于处理以太网和 zkSync 之间跨链操作。
- 使用
deposit
将资产从 L1 转移到 L2
- 使用
withdraw
将资产从 L2 转移到 L1
3 zkSync Remix
Remix IDE 也支持 zkSync 合约开发,只需要我们安装对应插件即可。下面我们将演示如何结合 zksync-cli
搭建本地开发环境,并部署一个最简单的合约。
3.1 开启本地开发环境
在命令行工具中执行 npx zksync-cli dev start
(需要启动 docker )。
3.2 安装插件
点击左边菜单栏底部的 插件管理
选项,搜索 ZKSYNC
并启用插件。启用成功后可以在左边菜单栏中看到 zkSync 的 Logo,我们点击它进入 zkSync 的开发环境。

3.3 案例测试
-
新建文件
HelloZkSync.sol
。 -
编辑合约。
-
编译合约,点击
Compile HelloZkSync.sol
进行编译。 -
部署合约,在下方
Environment selection
中选择Local Devnet
,并部署HelloZkSync
合约。

- 合约交互,部署成功后,点击
str
即可在控制台中看到"Hello zkSync!"
输出。至此,我们就完成了使用 Remix IDE 开发一个简单的智能合约。
4 Hardhat plugins
zkSync 官方也提供了 Hardhat 支持,并且我们可以使用 zksync-cli
快速创建 Hardhat 项目。
根据提示输入项目名称,选择 Contracts
选项,根据自己的需求选择 Ethers
版本(v6 / v5)、 智能合约语言
(Solidity / Vyper)、部署私钥(可选)和依赖包管理方式。创建完成后即可使用 Hardhat 在 zkSync 上开发智能合约。
5 Foundry with zkSync
foundry-zksync 允许用户使用 foundry 在 zkSync 上进行智能合约开发,引入 zkforge
和 zkcast
扩展了原有的 forge
和 cast
使开发人员能更加便捷地在 zkSync 进行开发。
6 zksync-ethers
zksync-ethers 扩展了 ethers
库以支持 zkSync 特有的功能(如账户抽象)。