# @api3/chains 中文文档

规范地址：https://npmcn.com/package/%40api3/chains/

版本：11\.8\.0
npm 元数据更新时间：2026-04-07T10:33:21.213Z
中文译文更新时间：2026-11-06T14:09:16.254Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40api3/chains
原文对照：https://npmcn.com/package/%40api3/chains/?lang=original
项目主页：https://github.com/api3dao/chains#readme
源码仓库：https://github.com/api3dao/chains

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：249 kB，41 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：2 个
- 首次发布：2023-03-06T09:31:52.838Z
- 最新版本发布：2025-02-13T11:33:24.230Z
- 近 30 天下载量：3037（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：112（近 12 个月 0 个）

## 中文简介

# API3 链条

## 安装

```sh
npm install @api3/chains
```

也可以使用：`pnpm add @api3/chains`、`yarn add @api3/chains`、`bun add @api3/chains`

## README

# API3 链条

[![npm version](https://img.shields.io/npm/v/%40api3%2Fchains)](https://www.npmjs.com/package/@api3/chains) ![downloads per week](https://img.shields.io/npm/dw/%40api3%2Fchains) [![continuous build](https://img.shields.io/github/actions/workflow/status/api3dao/chains/continuous-build.yml?label=build)](https://github.com/api3dao/chains/actions/workflows/continuous-build.yml) [![provider checks](https://img.shields.io/github/actions/workflow/status/api3dao/chains/check-providers.yml?label=provider%20checks)](https://github.com/api3dao/chains/actions/workflows/check-providers.yml) [![license](https://img.shields.io/npm/l/%40api3%2Fchains)](https://www.npmjs.com/package/@api3/chains)

#### API3项目中链条相关信息的单一真相来源

## \* 安装

```sh
npm install @api3/chains --save
yarn add @api3/chains
pnpm add @api3/chains
```

## • API

从此软件包导出以下变量/功能

### 中国

支持链列表的单一真相来源 . 静态数组 `Chain` 对象.

```ts
import { CHAINS } from '@api3/chains';
console.log(CHAINS);
/*
[
  {
    name: 'Arbitrum Sepolia testnet',
    alias: 'arbitrum-sepolia-testnet',
    id: '421614',
    ...
  },
  ...
]
*/
```

### 硬汉网络

返回一个对象,其中密钥是每个链子的别名,而值是可以作为对象的对象 `networks` 领域 [`hardhat.config.js`](https://hardhat.org/hardhat-runner/docs/config)。 。 。 .

默认 `url` 值可以被链式特定环境变量所压倒. 这些环境变量的形式是: `HARDHAT_HTTP_RPC_URL_${toUpperSnakeCase(chain.alias)}`例如. `HARDHAT_HTTP_RPC_URL_ARBITRUM_SEPOLIA_TESTNET`。 。 。 .

```ts
import { hardhatConfig } from '@api3/chains';
console.log(hardhatConfig.networks());
/*
{
  "arbitrum-sepolia-testnet": {
      accounts: { mnemonic: '' },
      chainId: '421614',
      url: 'https://...',
  },
  ...
}
*/
```

### 硬汉 Config.etherscan ()

返回一个对象,其中密钥是每个链子的别名,而值是可以作为对象的对象 `etherscan` 领域 [`hardhat.config.js`](https://hardhat.org/hardhat-runner/docs/config) (要求 [`hardhat-etherscan` 插件](https://hardhat.org/hardhat-runner/plugins/nomiclabs-hardhat-etherscan)) (中文(简体) ).

注: [硬叶鞋](https://www.npmjs.com/package/@nomiclabs/hardhat-etherscan) 需要我们使用假的 API 密钥 与 Blockscout 屏蔽探索者 API 。 我们用"DUMMY VALUE",但有可能是别的.

```ts
import { hardhatConfig } from '@api3/chains';
console.log(hardhatConfig.etherscan());
/*
{
  apiKey: {
    'arbitrumSepolia': { ... }
  },
  customChains: [
    ...
  ]
}
*/
```

### 硬汉 Config. get Envariable Names ()

返回有勘探者所需的 API 密钥的链条的预期环境变量名称。 阵列还包括一个单 `MNEMONIC` 用于配置所有网络的变量.

注:每个 `ETHERSCAN_API_KEY_` 财务报告和审定财务报表 `HARDHAT_HTTP_RPC_URL_` 环境变量将链的别名作为后缀,其中别名被转换为上蛇案.

```ts
import { hardhatConfig } from '@api3/chains';
console.log(hardhatConfig.getEnvVariableNames());
/*
[
  'MNEMONIC',
  'ETHERSCAN_API_KEY_ARBITRUM_SEPOLIA_TESTNET',
  ...
  'HARDHAT_HTTP_RPC_URL_ARBITRUM_SEPOLIA_TESTNET',
  ...
]
*/
```

### 双链链( )

返回格式中的链条数组 [维埃姆](https://viem.sh/docs/chains/introduction) 期待着 每个链对象都可以用来 [创建 Viem 公共客户端](https://viem.sh/docs/clients/public#usage)。 。 。 .

额外 `rpcUrls` 通过使用环境变量可以(可选择)添加数值。 这些环境变量的形式是: `API3_CHAINS_HTTP_RPC_URL_${toUpperSnakeCase(chain.alias)}`。如果检测到某一链的匹配环境变量,则该变量将被添加到 `http` 数组 `rpcUrls.environment` 对象。 如果没有检测到匹配的环境变量, 那么 `http` 数组为空.

```ts
import { viemConfig } from '@api3/chains';
console.log(viemConfig.chains());
/*
[
  {
    id: 421613,
    name: 'arbitrum-sepolia-testnet',
    network: 'arbitrum-sepolia-testnet',
    rpcUrls: { default: ..., public: ..., environment: ... }
    ...
  },
  ...
]
*/
```

### 类型

类型也导出,可见于 `src/types.ts`。 。 。 . 类型来自 [佐德语](https://github.com/colinhacks/zod) 计划. 这些计划也被用来验证每个链.

## 脚本

下列工具脚本可供使用

### 生成:链条

生成最新的 `CHAINS` 矩阵和输出文件到 `src/generated/chains.ts`

```sh
pnpm generate:chains
```

### 提供者: 正在

通过链条列表进行迭接,以检查链条的配置是否正确并具有响应性.

```sh
pnpm providers:ping
```

## 发展

最常见的变化类型是增加或更新一个链条。 可以通过创建或编辑 `chains/` 目录.

如果对链作任何改变,你将需要"再生"链. 这将把所有的 JSON 文件汇编成一个单一的 TypeScript 文件, 以便导入项目 。 可用下列命令完成此任务

```sh
pnpm generate:chains
```

TypeScript链的列表也针对所有JSON文件列表进行验证,以确保所有文件同步.

注:如果不重新生成 TypeScript 链, 您将无法将更改推向链条 .

### 验证

验证可以通过下列命令运行.

```sh
# Validate each chain JSON file conforms to the zod schemas
pnpm validate:chains

# Run all validations
pnpm validate
```

## · 释出

自动处理新版本 [变化](https://github.com/changesets/changesets)。在合并前,拉动请求应当包括更改器文件. 这些可以通过运行生成 `pnpm changeset` 并遵循指示。 一旦新版本准备发布, 只需合并 `main` 输入 `production` 树枝。 更改集文件将合并为一个新版本,该版本将发布到npm.

更多信息载于本报告 [API3 准则](https://github.com/api3dao/tasks/blob/main/API3%20Packages/changeset.md)。 。 。 .

## 常见问题

### @api3/chains 是什么？

API3 链条

### 如何安装 @api3/chains？

在项目目录运行 npm install @api3/chains，或使用 pnpm add / yarn add / bun add。

### @api3/chains 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @api3/chains 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @api3/chains 可以商用吗？

@api3/chains 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @api3/chains 的下载量有多少？

根据 npm 官方下载统计，@api3/chains 在 2026/10/06 – 2026/11/04 这 30 天内被下载 3,037 次，日均约 101 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @api3/chains 还在维护吗？

最新版本 11\.8\.0 发布于 2025/02/13（1\.7 年前）；至今共发布 112 个版本，其中过去 12 个月发布了 0 个；首次发布于 2023/03/06。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

