# @anywalletkit/networks 中文文档

规范地址：https://npmcn.com/package/%40anywalletkit/networks/

版本：0\.5\.1
npm 元数据更新时间：2026-11-02T20:11:41.444Z
中文译文更新时间：2026-11-06T21:03:30.910Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40anywalletkit/networks
原文对照：https://npmcn.com/package/%40anywalletkit/networks/?lang=original
项目主页：https://docs.anywallet.tech/
源码仓库：https://github.com/ultratestbro/anywalletkit

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

- 包体积（解压后）：391 kB，17 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：1 个
- 首次发布：2026-10-24T18:40:57.603Z
- 最新版本发布：2026-11-02T20:11:41.070Z
- 近 30 天下载量：2344（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：13（近 12 个月 13 个）

## 中文简介

任何钱包包钱包的网络:主网目录,包含公开的RPC故障列表,每个链条家族的默认测试网,用户添加的网络和自定义的RPC(NetworksTable over any JSON survey),每个家族的端点验证(chain id / g)

## 安装

```sh
npm install @anywalletkit/networks
```

也可以使用：`pnpm add @anywalletkit/networks`、`yarn add @anywalletkit/networks`、`bun add @anywalletkit/networks`

## README

# @ anywalletkit/网络

[![npm](https://img.shields.io/npm/v/@anywalletkit/networks?label=npm)](https://www.npmjs.com/package/@anywalletkit/networks)

每个钱包构建的网络列表:目录主网及其公开的RPC故障列表,每个链条家族的默认测试网,用户所添加的网络和RPC,以及证明一个端点的验证器为它声称的网络服务. 移动应用程序和扩展套件读取同一个表格.

## 安装

```sh
npm install @anywalletkit/networks
# or: pnpm add @anywalletkit/networks  ·  yarn add @anywalletkit/networks
```

时间: [@ anywalletkit/网络](https://www.npmjs.com/package/@anywalletkit/networks)发表于 [发布工作流程](https://github.com/ultratestbro/anywalletkit/blob/main/RELEASING.md) 与出处.

纯类型脚本, 不超出运行时间依赖性 `@anywalletkit/swap2-assets` (计: `isCatalogChain`) (中文(简体) ). 在赫尔墨斯下运行( 无) `URL`,没有 `atob`,没有 `structuredClone`) (中文(简体) ).

```ts
import { NetworksTable, verifyNetwork, parseAddChainParams, checkRpcUrl } from '@anywalletkit/networks'

const table = new NetworksTable(myJsonStorage)          // AsyncStorage / chrome.storage / memoryJsonStorage()
await table.load()                                      // once at cold start; before it rpcUrlsForSync / usesUserRpcSync throw (not-loaded)

await table.addRpc('eip155:8453', 'https://my.base.rpc')
await table.rpcUrlsFor('eip155:8453')                   // ['https://my.base.rpc', 'https://base-rpc.publicnode.com', …]
await table.setOnlyOwnRpc('eip155:8453', true)          // → ['https://my.base.rpc'] (no public fallback)
table.rpcUrlsForSync('eip155:8453')                     // same, from memory — for a sync client factory
table.usesUserRpcSync('eip155:8453')                    // true → label the review sheet "Custom RPC — simulation not trusted"

const r = await verifyNetwork(await table.get('eip155:8453')!, { rpc: 'https://my.base.rpc' })
// { ok: true, latencyMs: 212, tip: 52896400, reported: '8453' }  |  { ok: false, error: 'chain-id-mismatch: Endpoint serves chain 1, not 8453.', reported: '1', … }
await table.markRpc('eip155:8453', 'https://my.base.rpc', r)   // a failure parks the URL (skipped by rpcUrlsFor) with the reason
```

## 型号

```ts
interface Network {
  caip2: string            // eip155:11155111, solana:EtWT…, bip122:<genesis>, ton:-3, tron:nile, near:testnet, zcash:testnet
  family: 'evm' | 'solana' | 'ton' | 'tron' | 'btc' | 'near' | 'zcash'
  name: string; symbol: string; decimals: number
  kind: 'catalog' | 'testnet' | 'custom'
  rpcs: string[]           // tried in order
  explorer?: string
  source: 'builtin' | 'user' | { origin: string; addedAt: number }   // a site-added network carries its origin
  onlyOwnRpc?: boolean     // drop the public fallback
  balancesViaOwnRpc?: boolean
  enabled: boolean         // testnets ship off
}
```

规定:

-   内建条目(目录主网或默认测试网)无法删除;用户只能 **预选** RPC和翻转切换——所发运的列表作为倒置,除非 `onlyOwnRpc`· ;
-   一个自定义的自定义网络没有倒置,至少需要一个RPC;一个内置链码所存储的自定义条目被忽略了(一个站点不能取代Ethereum的端点);
-   `rpcUrlsFor(caip2)` =健康的用户RPC,然后是内建列表(除非 `onlyOwnRpc` 并且至少有一个用户RPC是健康的;
-   `markRpc(caip2, url, result)` 将一个失败的用户RPC与它的错误一起停放,直到它再次通过或被去除——这个端点改变我们下面的链式ID被作为中毒处理,而不是作为断电处理;
-   只有三角洲存在`NetworksState`: 每个内建, 自定义网络, 问题, http option- in), 所以一个已运出列表更新可以到达每个安装 .

## URL 政策(所有者决定 2)

`checkRpcUrl(url, { allowHttpLocal })`数字 : `https://` 任何地方; `http://` 仅针对私人地址 -- `localhost`, (中文(简体) ), `*.local`, (中文(简体) ), `*.internal`, (中文(简体) ), `*.home.arpa`, (中文(简体) ), `*.lan`,0/8,10/8,100.64/10, 页面存档备份,存于互联网档案馆, `127/8`第169254/16号决议,附件, `172.16/12`, (中文(简体) ), `192.168/16`, 198.18/15, IPv4以任何方式写出URL解析器读取(`127.1`, (中文(简体) ), `2130706433`, (中文(简体) ), `0x7f.0.0.1`),任何无法打印的 ASCII 主机(一个 URL 解析地图) `127.0.0.１` 至 127.0.0.1, IPv6回放 / ULA / 链接- local / multicast 和 IPv4 在一个映射, NAT64 或 6to4 地址内 - **财务报告和审定财务报表** 仅使用 `allowHttpLocal` (高级切换,存储在表格中). 在 URL 中没有证书, 也没有反斜线、 标签、 CR/ LF 或其他控制字符 `\` 并降低标签/ CR/ LF,所以主机获取连接将不会是选中的连接 . `parseAddChainParams` 永远不要给一个网站当地例外.

`isPrivateHost(host)` 测试本身,和 `isPublicHttpsUrl(url)` 用于 URL 的钱包在他人的单词( ENS 网关, avatars) 上获取: https, no certain, a public host. 两者都在 `@anywalletkit/networks/url`,不会装入目录。 解决私人地址的公用名称(DNS rebound)不会被主机测试所捕获.

## `verifyNetwork(network, { rpc?, fetch?, allowHttpLocal?, timeoutMs? })`

| 家属 | 身份( 必须匹配 CAIP-2 id) | 提示 |
| --- | --- | --- |
| 页:1 | `eth_chainId` | `eth_blockNumber` |
| 索兰娜 | `getGenesisHash` 从引用开始(`solana:mainnet` 编号 : `devnet` 编号 : `testnet` 化名解析) | `getSlot` |
| 吨数 | 配置 第19段(全球id,从BOC中解析)= `-239` 编号 : `-3` | `getMasterchainInfo` 后续 |
| 音节 | 起源块 id (`wallet/getblockbynum 0`)结尾为链条引用(`728126428` ≙ `0x2b6653dc`, (中文(简体) ), `nile` ≙ `0xcd8690dc`, (中文(简体) ), `shasta` ≙ `0x94a9059e`(中文(简体) ) | `wallet/getnowblock` |
| (单位:千美元) | 埃斯波罗拉 `/block-height/0`组合图 `/api/v2/block-index/0` | `/blocks/tip/height` 编号 : `bestHeight` |
| z 现金 | 同样的,加座椅 `dashboards/block/0` | `/stats` 块 |
| 相邻 | `status.chain_id` | `latest_block_height` |

回返 `{ ok, latencyMs, tip?, error?, reported? }` 永远不要扔。 错误前缀为代码 : `chain-id-mismatch`, (中文(简体) ), `url-policy`, (中文(简体) ), `redirected`, (中文(简体) ), `http-<status>`, (中文(简体) ), `rpc-error`, (中文(简体) ), `bad-json`, (中文(简体) ), `timeout`, (中文(简体) ), `unreachable`, (中文(简体) ), `no-rpc`, (中文(简体) ), `bad-network`拒绝重新指导(`redirect: 'error'`,以及一个回答 `url` 编号 : `redirected` / 3xx 状态显示方向是 `redirected: Endpoint redirected to <host>; enter the final URL`:URL策略判断了用户或网站给出的地址,而不是其指向的位置. 习惯 `fetch` 不能拒绝方向调整的,应该报告 `url` 或者说 `redirected`,或者重定向请求在检查前发出. `http-<status>` 财务报告和审定财务报表 `bad-json` 上面没有文字。 回答一个网站( A)`wallet_addEthereumChain`)带有通则错误,而不是 `error`。 。 。 . `verifyRpcs(network)` 检查每一个终点. `scripts/verify-live.mjs` 运行真实的东西 与每个内置的终点.

## 内建表

`CATALOG_NETWORKS` ——资产目录的30个EVM主网(Ethereum, Base, BNB, Arbitrum, Optimism, Polygon, Avalanche, HyperEVM, Robinhood, zkSync, Celo, MegaETH, Unichain, Monad, Plasma, Linea, Gnosis, Sonic, World Chain, Sei, Iink, Plume, X Level, Scroll, Berachain, Arc, Mantle, Katana, Morph, Flare), 公共故障列表,加上Solana, TON, Tron, Bitcoin, NEAR和Zcash, 公共端点(移动应用程序通过表格预置其关键代词).

`DEFAULT_TESTNETS` (已发运) `enabled: false`;端点和身份调用于2026-10-21:

| 网络 | 盲肠2 | 结束点 |
| --- | --- | --- |
| 塞波利亚 | `eip155:11155111` | ethereum-sepolia-rpc.publicnode.com, sepolia.drpc.org (rpc.sepolia.org 不再回答) 互联网档案馆的存檔,存档日期2013-12-02 |
| 塞波利亚基地 | `eip155:84532` | sepolia.base.org, base-sepolia-rpc.publicnode.com 页面存档备份,存于互联网档案馆 |
| 塞波利亚角 | `eip155:421614` | (原始内容存档于2018-10-12) (英语). sepolia-rollup.arbitrium.io/rpc, arbitrium-sepolia-rpc.publicnode.com |
| OP 塞波利亚 | `eip155:11155420` | sepolia.opimism.io, 乐观主义-sepolia-rpc.publicnode.com |
| 多边形 | `eip155:80002` | 多边形-amoy-bor-rpc.publicnode.com,多边形-amoy.drpc.org (rpc-amoy.polygon. teechnology 已无答案) |
| BSC 测试网 | `eip155:97` | bsc-testnet-rpc.publicnode.com 数据种子-prebsc-1-s1.bnbchain.org:8545 |
| 莫纳德测试网 | `eip155:10143` | testnet-rpc.monad.xyz (中文(简体) ) |
| 索拉纳网络 | `solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1` (单位:千美元)`wallet-solana` `CAIP2_GENESIS.devnet`(中文(简体) ) | api.devnet.solana.com (英语) |
| 比特币测试网4 | `bip122:00000000da84f2bafbbc53dee25a72ae` (来源于mempol.space/testnet4) | 空间/ testnet4/api - `wallet-btc`是因为 `testnet` 选项(tb1...,硬币类型 1')服务它 `CAIP2_GENESIS.testnet` 是测试网3 |
| TON 测试网 | `ton:-3` | testnet.toncenter.com/api/v2/jsonRPC (中文(简体) ). (全球id-3从配置第19段确认) |
| 特龙尼罗 | `tron:nile` (单位:千美元)`wallet-tron` 还要 `nile` 编号 : `tron:0xcd8690dc`(中文(简体) ) | 诺克·特龙格里奥 |
| NEAR 测试网 | `near:testnet` | ppc.testnet.near.org, test.rpc.fastnear.com 页面存档备份,存于互联网档案馆 |
| Zcash测试网 | `zcash:testnet` | **没有——未经核实.** 块椅没有zcash/testnet路由,其他公共API也没有回答;用户提供块册 |

## EIP-3085 (英语)

`parseAddChainParams(params, { known?, origin? })` 转出 `wallet_addEthereumChain` 请求输入 a `Network` (单位:千美元)`kind: 'custom'`, (中文(简体) ), `source: { origin, addedAt }`或 EIP-1193 错误以(`-32602` 糟糕的车厢, `4902` 链条不在目录中). 仅https RPC; `nativeCurrency.decimals` 一定是18岁 过 `known` 接受资产目录以外的链条.

## 常见问题

### @anywalletkit/networks 是什么？

任何钱包包钱包的网络:主网目录,包含公开的RPC故障列表,每个链条家族的默认测试网,用户添加的网络和自定义的RPC\(NetworksTable over any JSON survey\),每个家族的端点验证\(chain id / g\)

### 如何安装 @anywalletkit/networks？

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

### @anywalletkit/networks 支持 TypeScript 吗？

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

### @anywalletkit/networks 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @anywalletkit/networks 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @anywalletkit/networks 可以商用吗？

@anywalletkit/networks 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @anywalletkit/networks 的下载量有多少？

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

### @anywalletkit/networks 还在维护吗？

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

