# 2.7.3 ChainIDE Verifier

{% hint style="info" %}
ChainIDE Verifier 已支持 api v2 版本，配图可能过时，请以文字为准。
{% endhint %}

{% embed url="<https://www.youtube.com/watch?v=NM7kibCj73Q>" %}

## 1. 为什么要验证合约？

在区块链浏览器上验证智能合约是重要的，原因如下：

1. 确保准确性：在浏览器上验证智能合约可以确保发布到区块链上的合约代码与用于创建合约的原始代码相同。这有助于防止错误或恶意代码被引入合约。
2. 建立信任：通过在扫描平台上验证智能合约，开发者和用户可以确信合约是合理的，不是骗局。这建立了对合约和相关方的信任和信心。
3. 促进审计：在扫描平台上验证智能合约还便于第三方安全专家进行审计，他们可以审查代码并提供有关需要解决的漏洞或问题的反馈。
4. 提高透明度：在扫描平台上验证智能合约通过使合约代码对任何想要查看的人可见来增加透明度。这有助于确保合约按照预期运行并提供预期的结果。
5. 通过扫描进行互动：一旦智能合约在扫描平台上得到验证，用户可以直接通过扫描网站与之交互。这允许用户查看和与智能合约的功能和数据进行互动，而无需单独的用户界面或应用程序。

上述是我们需要验证智能合约的一些原因。让我们继续前进，看看如何验证智能合约。

## 2. 怎么验证合约？

一旦智能合约被部署，可以使用浏览器上传并验证其源代码。

\
该过程分为三个步骤：

1. 进入ChainIDE并选择 Scan Vierifier 面板
2. 跳转至浏览器以注册一个帐户并获取API密钥（可选的）
3. 填写合约验证所需的参数

### 1. 进入 ChainIDE 并选择 Scan Vierifier 面板

前往 ChainIDE。选择您要验证的智能合约，编译，连接钱包并部署智能合约。部署后，打开"Scan Verifier"并填写所需信息。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2FbRRWfURBL23bLSHcdHHi%2Fimage.png?alt=media&#x26;token=aca2d320-2800-4fa9-b7ba-8cb5e9201c66" alt=""><figcaption></figcaption></figure>

### 2. 跳转至浏览器以注册一个帐户并获取API密钥（Conflux Scan 和 Astar EVM Scan 可跳过此步）

点击图标跳转到相应的浏览器，并如果尚未拥有帐户，则创建一个。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2F5gfEeHnBbD7CnlJ1DxBT%2Fimage.png?alt=media&#x26;token=fe3a655e-b260-403d-8992-a2210986f0c2" alt=""><figcaption></figcaption></figure>

创建帐户后，登录到您的帐户，然后转到“OTHERS”下的“API Keys”部分。点击“My API Keys”前面的“+Add”按钮，这将弹出一个新的面板。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2FAiV1RMurdxOqewjToCde%2Fimage.png?alt=media&#x26;token=ef25ef33-5749-47f4-8da9-5184f2c912d0" alt=""><figcaption></figcaption></figure>

在那里填写您的项目名称，然后点击“Create New API Key”按钮；

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2FuyZsxdrwlWtBqZQ3oTkl%2Fimage.png?alt=media&#x26;token=5ec6ca27-1e8c-4251-b5b0-dfc6b0e3c33c" alt=""><figcaption></figcaption></figure>

现在，您将获得一个新的API密钥令牌。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2FVzooxL1pL85AiSMqWN3B%2Fimage.png?alt=media&#x26;token=285b8b41-f466-4510-af9d-c7e67d1fd9a9" alt=""><figcaption></figcaption></figure>

### 3. 填写合约验证所需的参数

\
以下是每个必填字段的详细信息：

* API End Point：当连接到特定网络时，浏览器提供的 API URL 将自动填充。例如，图中的链接是以太坊的 Sepolia 测试网络。
* API Key：在前面的步骤中获得的API密钥；您需要将此地址带到扫描的URL以进行访问。
* 记住API Key：这将在本地存储中记录API密钥。
* 已编译的合同：从已编译的合同中选择需要验证的合同。
* 合同地址：填写已部署智能合约的地址。
* 构造函数参数：填写部署参数。&#x20;

在填写了上述信息后，点击“验证”按钮。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2F3PIDxnNH0yrdpcCZcd0S%2Fimage.png?alt=media&#x26;token=419b3e7a-aa86-4b13-93a0-67e78d9a85b8" alt=""><figcaption></figcaption></figure>

点击“验证”按钮后，如果一切正确，您的合同将得到验证，并将提供一个链接，以在浏览器上查看已验证的智能合约。

> 如果需要，可以参考[如何在Astar WASM中验证合约](https://chainide.gitbook.io/chainide-chinese/chainide/12.-astar-ide/3.-astar-wasm-ide-shi-yong-liu-cheng-yan-shi)。
