# @anywalletkit/history-evm 中文文档

规范地址：https://npmcn.com/package/%40anywalletkit/history-evm/

版本：0\.1\.11
npm 元数据更新时间：2026-11-02T20:12:28.213Z
中文译文更新时间：2026-11-08T01:09:00.121Z
软件包许可：Apache-2\.0

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

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

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

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

## 中文简介

SDK支持的每条EVM链条的活动历史(History Source): Etherscan v2, Blockscout PRO和Alchemy Transfer API(API keys) 有 Blockscout 和 Routescan 键无后退,每散列合并为一链Tx 有文件记载的垃圾邮件heuristic.

## 安装

```sh
npm install @anywalletkit/history-evm
```

也可以使用：`pnpm add @anywalletkit/history-evm`、`yarn add @anywalletkit/history-evm`、`bun add @anywalletkit/history-evm`

## README

# @anywalletkit/历史-evm

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

`HistorySource` sDK支持的每个EVM链。 每个链条一个源 (单位:千美元)`chain = "eip155:<id>"`),在有API密钥时被以太斯干 v2支持, Blockscout PRO和Alchemy( 转让 API) 及其无键倒置 (锁出) `/api/v2`, Routescan 的以太斯干格式镜像),其中公众 实例存在。 探索者行合并为一 `ChainTx` 每散列:顶级交易、ERC-20转让和内部 本地转移,包含收费,状态,呼叫选择器和有文件证明的垃圾邮件旗.

## 安装

```sh
npm install @anywalletkit/history-evm @anywalletkit/core
# or: pnpm add @anywalletkit/history-evm @anywalletkit/core  ·  yarn add @anywalletkit/history-evm @anywalletkit/core
```

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

```ts
import { createEvmHistory } from '@anywalletkit/history-evm'

const history = createEvmHistory({ chainId: 8453, etherscanApiKey: process.env.ETHERSCAN_API_KEY })
const page = await history.listActivity('0x8AbE813577E47415A3CD0Bbc68c7ABCa2c4c55bA', { limit: 50 })
for (const tx of page.items) console.log(tx.hash, tx.status, tx.transfers.length, tx.spam ? 'spam' : '')
const older = await history.listActivity(address, { cursor: page.cursor })
const one = await history.getTransaction(page.items[0].hash, address)
history.explorerTxUrl(one.hash) // https://basescan.org/tx/0x…
```

## 选项

| 选项 | 默认 | 说明 |
| --- | --- | --- |
| `chainId` | —— 说 | 1,8453,42161,10,137,56,43114,100,130,143,999,146,80094,59144,534352,324,42220,9745,4326,4663,480,1329,57073,9886,196 |
| `etherscanApiKey` | 无 | 没有它,伊瑟斯坎从不叫: 从2026年开始 `api.etherscan.io/v2` 答题 `Missing/Invalid API Key` 对无键请求. |
| `etherscanUrl` | `https://api.etherscan.io/v2/api` | 指向添加密钥服务器侧的代理 . |
| `blockscoutProApiKey` | 无 | 多链键`proapi_…`;免费分级100K信用/日,5 rps,每个屏蔽链的一键. Etherscan 格式为 `chain_id=`;在以太斯干后尝试,所以自由以太斯干键+自由的PRO键一起覆盖 Base,Arbitrum,Polygon,Optimism,Gnosis,Robinhood,Arc,Scroll,zkSync,Ink,Plume没有付费计划. 在 docs.blockscout.com/devs/pro-api 注册. |
| `blockscoutProUrl` 编号 : `blockscoutProRateLimit` | `https://api.blockscout.com/v2/api` / 第5条 | 覆盖端点(proxy)/每键限制器. |
| `alchemyApiKey` | 无 | 炼金键(免费分级:30M CU/month,无卡). 启用 `alchemy` 后端 : `alchemy_getAssetTransfers` + 1 JSON-RPC批次 `eth_getTransactionByHash`编号 :`eth_getTransactionReceipt` 每页。 唯一的自由来源在 **基础** 财务报告和审定财务报表 **业连**;也是Monad, Berachain, Linea, HyperEVM 和 Robinhood 的第二个来源,它们原本只依靠以太生. 试图追随以太生和Blockscout Pro. **每个网络必须启用Alchemy仪表板中的应用程序** (见下文). |
| `alchemyNetwork` | `ALCHEMY_NETWORKS[chainId]` 当传输 API 为链条记录时 | 堵塞覆盖( N)`base-mainnet`) (中文(简体) ). 通过它还迫使表单列表的链条(Soconic, Plasma, MegaETH, Sei, Plume, X Layer)的后端被打开. |
| `alchemyUrl` | `https://{network}.g.alchemy.com/v2/{key}` | 代理服务器主机模板; `{network}` 编号 : `{key}` 替换. |
| `alchemyComputeUnitsPerSecond` | 三百块 | 炼金术每秒计算单位,每把钥匙在链上共享. 每一次呼叫都收取其公布的费用(转帐120,收单20,tx 17,第16项,其他26项),并且由JSON-RPC批出其成员的总和,因此在自由等级500CU/s以下的一次关键停留上同时连锁。 速率限制的答案以回扣方式重审最多三次. |
| `blockscoutUrl` | 内置表格 | 任何障碍 `/api/v2` root; 添加或覆盖链条的条目. |
| `etherscanCompatUrl` | 内置表 (鲁特斯坎) | 无密钥 Etherscan 格式端点 . |
| `fetch` | `globalThis.fetch` | 输入测试/自定义传输. |
| `rateLimit` | 3 个有密钥的 rps | Etherscan 请求每秒(免费第3级,Lite 5,标准10). 每个密钥有一个活字桶,由这个过程中的每个来源共享(25个链子不乘以配额). 屏蔽:每个主机5 rps,路由扫描:2 rps. |
| `prefer` | `'etherscan'` | `'blockscout'` 尝试Blockscout先保存以太斯干配额; `'alchemy'` 先尝试Alchemy(Base,它是唯一自由的,或者用Alchemy CU代替以太斯干调用). |
| `timeoutMs` | 15 000人 | 按请求(`AbortSignal.timeout` 当运行时间有它. |

后端顺序: Etherscan v2(v2链列表中的键+链) → Blockscout PRO (钥匙)- 炼金术(钥匙+有文件证明的转让API,或 `alchemyNetwork`页:1 路由扫描 – 封锁. `prefer` 将Blockscout或Alchemy先移动. 一个失败的后端被重审一次,限制费率(HTTP 429/5xx, `Max rate limit reached`),然后尝试下一个后端. 计划/关键拒绝(`Free API access is not supported for this chain`, (中文(简体) ), `Missing/Invalid API Key`, (中文(简体) ), `Community Free API Limit reached`,无支持的链条,Blockscout PRO `Unauthorized` 编号 : `Featured chain`,炼金术 `<NETWORK> is not enabled for this app` / HTTP 401 / 403 / (韩语) `Unsupported method`)跳到倒计时. 当一无所有 源头扔 `HistoryUnavailableError` 与 `chain`, (中文(简体) ), `reason` 每行1行 `attempts`链入 `NO_EXPLORER_CHAIN_IDS` 返回带有空页的页 `note` 换句话说.

Etherscan v2 链条列表 (`/v2/chainlist`)每个进程一次取出 已缓存;当无法取出时,则使用2026-10-14上核实的表格.

## 链覆盖(2026-10-14年经卷曲核实)

与一个 **封锁方案** 键(在2026-10-14日用自由键进行直播):服务于1,10,100,130,534352,42220,4326,4663,480,57073,98866,5042和 **42161 (Arbitrum) (英语)**"Featured"连锁店需要"建设者计划"(49美元: **8453基地、137个多边形、324个zk同步** (单位:千美元)`{"error":"Featured chain … requires one of the following plans: Builder, Business, Pro"}` □ 分类不可用,已完结)。 "网络不支持":56,43114,143,999,146,80094,59144,9745,1329,196,5000,7474,2818,14. 带自由以太生键 + 自由 PRO 键的净效果: 除此之外, 什么都有自由源码 **基础** (付费的以太扫描或屏蔽构建器), **业连**, (中文(简体) ), **X 层** 财务报告和审定财务报表 **墨菲语** 添加免费 **炼金术** 键(下节)和 Base 和 BSC 也包括在内;只有 X 层(和 Sonic / Plasma / MegaETH / Sei / Plume,其中Alchemy 没有 Transit API) 单独留在以太斯干上.

用于封锁的探测器: `GET <root>/api/v2/addresses/0x8AbE813577E47415A3CD0Bbc68c7ABCa2c4c55bA/transactions` 财务报告和审定财务报表 `/api/v2/transactions`,仅在两个回答时保留 `200` 贾森.

| 链式 | 编号 | 以太斯干 v2 (英语) | 无键倒置 | 说明 |
| --- | --- | --- | --- | --- |
| 以利亚 | 1个 | 是( 免费计划 ) | 封锁 `eth.blockscout.com`路由扫描 |  |
| 基础 | 8453 (英语) | 对, **仅支付计划** | 无 | `base.blockscout.com` 支持Cloudflare JS(403)挑战 |
| 一号线 | 42161 (韩语) | 是( 免费计划 ) | 无 | `arbitrum.blockscout.com` 403(云雾) |
| OP 主要网 | 10个 | 对, **仅支付计划** | 封锁 `explorer.optimism.io` |  |
| 多边形 | 137国 | 是( 免费计划 ) | 无 | `polygon.blockscout.com` 403(云雾) |
| BNB 智能链 | 页:1 | 对, **仅支付计划** | 无 | 未发现公众屏蔽 |
| 雪崩C-钱 | 第43114号 | 对, **仅支付计划** | 路由扫描 |  |
| 肠道 | 100个 | 对, **仅支付计划** | 阻塞兼容 `gnosisscan.io` | `gnosis.blockscout.com` 重定向到那里 |
| 单链 | 130个 | 对 | 封锁 `unichain.blockscout.com` |  |
| 修道院 | 143国 | 对 | 无 |  |
| 超高频 | 999号 | 是( 免费计划 ) | 无 |  |
| 音响 | 146 (中文(简体) ) | 对 | 无 |  |
| 贝拉链 | 80094 (英语) | 对 | 无 | `beratrail.io` 回答202,没有JSON |
| 线性a | 第59144号 | 对 | 无 | `explorer.linea.build` 没有 `/api/v2` |
| 滚动 | 534352 (英语) | **没有** (不在链条列表中) | 阻塞兼容 `scrollscan.com` | `scroll.blockscout.com` 重定向到那里 |
| zk同步时代 | 324国道 | **没有** | 封锁 `zksync.blockscout.com` |  |
| 赛罗 | 42220 (英语) | 是,社区配额 | 封锁 `celo.blockscout.com` |  |
| 等离子体 | 9745 (英语) | 对 | 路由扫描 |  |
| 超级 | 第4326号 | 对 | 封锁 `megaeth.blockscout.com` |  |
| 罗宾链 | 第4663条 | 是( 免费计划 ) | 无 |  |
| 世界链 | 480个 | 对 | 封锁 `worldchain-mainnet.explorer.alchemy.com` |  |
| 谢 | 1329号 | 对 | 无 | `seitrace.com` 拥有自己的API |
| 墨迹 | 57073 (中文(简体) ) | **没有** | 封锁 `explorer.inkonchain.com` |  |
| 弹珠 | 98866 (英语) | **没有** | 封锁 `explorer.plume.org` |  |
| X 层 | 196 (韩语) | **没有** | **无** | 只有 OKLink( 拥有 API, 密钥); 空页 + `note` |

“ 免费计划 ok ” = 免费密钥返回行( 或 `No transactions found`(中文(简体) ) 当天;"只付计划"= `Free API access is not supported for this chain`提供了无限定词的标有“是”的链条,但测试 钱包没有历史,所以无法区分计划级别. 没有钥匙,链子在后退栏里没有 `HistoryUnavailableError` (单位:千美元)`no keyless explorer; pass etherscanApiKey`) (中文(简体) ).

## 炼金术后端`backend: 'alchemy'`(中文(简体) )

`alchemy_getAssetTransfers` 每页两次 `fromAddress` 财务报告和审定财务报表 `toAddress` 与 `category: ['external', 'erc20']` (+ 数) `'internal'` 编辑 链条 `ALCHEMY_INTERNAL_CHAIN_IDS`, (中文(简体) ), `order: 'desc'`, (中文(简体) ), `withMetadata: true` (块时间戳), `excludeZeroValue: false` (零值地址隐藏) 转移是垃圾邮件规则旗; Alchemy 默认隐藏它们)和 `maxCount = limit`。转让由 `uniqueId`按散列排列, 和传输 API 的空隙由同一端点填补: 页面的散列获得 `eth_getTransactionByHash` + 键 `eth_getTransactionReceipt` 内 **1个JSON-RPC批次** (每次HTTP呼叫20个请求,1个复试) — `from`, (中文(简体) ), `to`, (中文(简体) ), `value`, (中文(简体) ), `input` → `call.selector`, (中文(简体) ), `status`, (中文(简体) ), `fee = gasUsed × effectiveGasPrice`. 转让无 `metadata.blockTimestamp` 得到一个 `eth_getBlockByNumber` 这批.

合并规则( mirroring the Etherscan) `txlist` + 键 `tokentx` + 键 `txlistinternal` 合并 : `erc20` 行 = 令牌转让(符号 = `asset`小数 = `rawContract.decimal`数量= `rawContract.value`(三); `internal` 页: 1 转让; `external` 行是交易本身的价值,已经是 tx 行数 `nativeValue` 它们没有增加第二次本土转移。 只有在节点 不再有此类 tx (已删除/ 重置, `null` 从批量)是 外部行变为赤色的 tx行( r)`status: confirmed`,不收费),所以 继续制作。 ERC-721 / 11.55 / 特殊-NFT行被跳过 (v1). `getTransaction(hash)` = 一个散列的同批量 + ERC-20 `Transfer` 日志 收据+ `eth_getBlockByNumber` 时间.

**贴子是按块的,不是按块的 `pageKey`。 。 。 .** 按基主网计量 2026-10-14:载有 `pageKey` 忽略 `toBlock`; 未知或 过期 `pageKey` (TTL 10分)从第一页默开;a 一个是HTTP 400 `Invalid pageKey format`。这些都不适合 光标在几小时后恢复,或用更窄的窗口来调整,所以 炼金术列出的页面与以太斯干一样 `toBlock = w − 1` 从 窗口光标, `next` 是一个标记——一个Alchemy光标永远不会过期.

**预算.** 每笔转账120CU,每笔15CU `eth_getTransactionByHash`, (中文(简体) ), 每名15科朗 `eth_getTransactionReceipt`: 一个50个项目页 \* 2 × 120 + 50 × 30 1 740 CU,因此免费30M CU/月为17,000页(每天为570页);a `getTransaction` 45–60 CU (中文(简体) ). 免费水平的通量为500CU/s,因此 以上4 rps建议.

**找到: 启用Alchemy应用程序中的网络.** 新应用程序只有 在仪表盘上勾选的网络( pps ) 。 每一个 弹出答案 HTTP 403 `{"error":{"code":-32600,"message":"BNB_MAINNET is not enabled for this app. Visit this page to enable the network: …"}}` ——叙级 `unavailable`,没有重试,下一个后端。 验证 2026-10-14 有免费密钥 : `eth-mainnet` 财务报告和审定财务报表 `base-mainnet` 答复(包括 `internal` 类别 ); 下方的所有其他弹片都会回答"未启用",直到选中.

粘贴表( E)`ALCHEMY_NETWORKS`;经核查 2026-10-14 `eth_chainId` 每页 slock —— 已有 slock 回答链式 id 或 "未启用", 不存在 解决不了问题。 "Transfers API"=链条的docs页面 `https://www.alchemy.com/rpc/<chain>.md` 上面写着"支持..." (单位:千美元)`ALCHEMY_TRANSFERS_CHAIN_IDS`“内部”= `internal` 类别 文档 ("仅在Ethereum Mainnet, Polygon Mainnet, Base Mainnet, Arc上提供) 主网和Arc Testnet"; (中文(简体) ); `ALCHEMY_INTERNAL_CHAIN_IDS`) (中文(简体) ).

| 链式 | 编号 | 弹片 | 转让 API 文件 | `internal` 类别 |
| --- | --- | --- | --- | --- |
| 以利亚 | 1个 | `eth-mainnet` | 对 | 是( 已核实的直播) |
| 基础 | 8453 (英语) | `base-mainnet` | 对 | 是( 已核实的直播) |
| 一号线 | 42161 (韩语) | `arb-mainnet` | 对 | 没有 |
| OP 主要网 | 10个 | `opt-mainnet` | 对 | 没有 |
| 多边形 PoS | 137国 | `polygon-mainnet` | 对(`/rpc/matic.md`(中文(简体) ) | 是(文件) |
| BNB 智能链 | 页:1 | `bnb-mainnet` | 对 | 没有 |
| 雪崩C-钱 | 第43114号 | `avax-mainnet` | 对 | 没有 |
| 肠道 | 100个 | `gnosis-mainnet` | 对 | 没有 |
| 单链 | 130个 | `unichain-mainnet` | 对 | 没有 |
| 修道院 | 143国 | `monad-mainnet` | 对 | 没有 |
| 超高频 | 999号 | `hyperliquid-mainnet` | 对 | 没有 |
| 音响 | 146 (中文(简体) ) | `sonic-mainnet` | **没有** ("目前不支持") | 没有 |
| 贝拉链 | 80094 (英语) | `berachain-mainnet` | 对 | 没有 |
| 线性a | 第59144号 | `linea-mainnet` | 对 | 没有 |
| 滚动 | 534352 (英语) | `scroll-mainnet` | 对 | 没有 |
| zk同步时代 | 324国道 | `zksync-mainnet` | 对 | 没有 |
| 赛罗 | 42220 (英语) | `celo-mainnet` | 对 | 没有 |
| 等离子体 | 9745 (英语) | `plasma-mainnet` | **没有** | 没有 |
| 超级 | 第4326号 | `megaeth-mainnet` | **没有** | 没有 |
| 罗宾链 | 第4663条 | `robinhood-mainnet` | 对 | 没有 |
| 世界链 | 480个 | `worldchain-mainnet` | 对 | 没有 |
| 谢 | 1329号 | `sei-mainnet` | **没有** | 没有 |
| 墨迹 | 57073 (中文(简体) ) | `ink-mainnet` | 对 | 没有 |
| 弹珠 | 98866 (英语) | `plume-mainnet` | **没有** (无炼金术文件页) | 没有 |
| X 层 | 196 (韩语) | `xlayer-mainnet` | **没有** | 没有 |
| 弧形 | 5042 (简体中文) | `arc-mainnet` | 对 | 是(文件) |

只有Ethereum和Base被行使到结束(测试键只有那些) ; 其他行是 swit + 文件检查。 链条 除非 `alchemyNetwork` 通过.

## 这算什么 `ChainTx` 包含

-   `time` 从 `timeStamp` (以太斯堪语)/ ISO `timestamp` (锁出)/ `metadata.blockTimestamp` (炼金术,其他) `eth_getBlockByNumber`) (中文(简体) ).
-   `status`数字 : `failed` 何时 `isError = 1` 或者说 `txreceipt_status = 0` (锁出) `status = error`,收据 `status = 0x0`页:1 `confirmed`。 。 。 .
-   `from` 编号 : `to` 编号 : `nativeValue` 从交易行。 搜索器的散列列表仅作为给地址的符号传输( 即将到来的 ERC-20) 没有交易行 : `from`编号 :`to` 转帐是.., `raw.tx` 缺席.
-   `fee` =: `gasUsed × gasPrice` (锁出) `fee.value`; 炼金术和以太史坎代理路径:收到 `gasUsed × effectiveGasPrice`) (中文(简体) ).
-   `call` =: `{ to, selector (4 bytes, lowercase), data }` 当输入不是时 `0x`。 。 。 .
-   `transfers`: 本地值( 当 > 0), 每行 ERC-20 (`standard: 'erc20'`,从探索者或交换2资产目录中的符号/小数),每一次具有值的内部本土转移 > 0. ERC-721 / ERC-1155行在v1中被跳过.
-   `block` 像个大人物, `raw = { source, tx, tokens, internal, spam?, spamReason? }` 与未触动的探索者行( Alchemy : `raw.tx = { tx, receipt }` JSON-RPC对象, `raw.tokens` 编号 : `raw.internal` 转移 API 列.
-   `EvmChainTx.spam` 镜像 `raw.spam`。 。 。 .

`getTransaction(hash, address)` 使用 Etherscan 格式 `proxy` 模块或炼金术 JSON-RPC(联合国`eth_getTransactionByHash` + 键 `eth_getTransactionReceipt`; ERC-20 (中文(简体) ) `Transfer` 日志变为转让;没有内部转让,也没有痕迹)或 封锁 `/api/v2/transactions/<hash>` + 键 `/token-transfers` + 键 `/internal-transactions`. 回归 `undefined` 为未知的散列.

## 倾斜

探索者列表(交易、令牌转让、内部转让) 独立,所以源页面由 **块窗口**: 每页取一 每个列表的探索者页面, 并且只向最高剪切块上方的行发送 在还有更多行的列表中。 发射完毕 在所有三个列表中,所以由散列合并是准确的。 光标 (基调64 JSON: `{ v, b: backend, w: exclusive upper block, lists }`载体 封锁的 `next_page_params` 每个列表; Etherscan 列表仅用 `endblock = w - 1`, 化学列表中 `toBlock = w - 1`。一个后端的光标会在另一个后端逐块恢复 第一个失败. `limit` (default 50, max 100) 是探索者的页面大小, 这样一页就比起 `limit` 当符号/内部行添加时 他们自己的大麻。 脱源案例:当一个列表存在多于 `limit` 行数 在一个区块中,该区块被排放一次,其余部分跳出一次.

`since` 应用客户端 `time` (按块进行勘探,而不是时间): 长于 `since` ,页面没有光标.

## 垃圾邮件规则

从未申请过地址本身发送的交易 。 至少有一个 tx 符号行被标记 (`raw.spamReason`当:

1.  `zero-value` —— tx 中的每个运动为零( 0 值) `transferFrom` 处理中毒问题,即使有诸如USDT之类的目录标志;
2.  `zero-value-unknown-token` 该目录不知道移动了0;
3.  `bulk-airdrop` 20个或更多的一tx和至少一个未知的符号;
4.  `symbol-impersonation` - 一个未知的符号,其符号包含非ASCII 字符数( e)`U⁯S⁯DΤ`)或者其ASCII形式等于此上的目录符号 链(在另一合同中假作"USDT").

"目录"= `@anywalletkit/swap2-assets` (单位:千美元)`ccChain('eip155:<id>').assets`) (中文(简体) ).

## 添加链条

1.  将 ID 添加到 `SUPPORTED_CHAIN_IDS` 及其探索者改为 `EXPLORER_TX_BASE` 内 `src/chains.ts`。 。 。 .
2.  `curl https://api.etherscan.io/v2/chainlist` ——如果列出,则加入 `ETHERSCAN_V2_CHAIN_IDS_FALLBACK`。 。 。 .
3.  探测出块状根(`/api/v2/transactions` 必须是 `200` 杰森(英语: `BLOCKSCOUT_URLS`; 路由扫描( R)`https://api.routescan.io/v2/network/mainnet/evm/<id>/etherscan/api?module=account&action=txlist&address=…`页:1 `ETHERSCAN_COMPAT_URLS`。 。 。 .
4.  炼金术 : `curl -d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}' https://<slug>.g.alchemy.com/v2/<key>` → `ALCHEMY_NETWORKS`· ; `https://www.alchemy.com/rpc/<chain>.md` 列表“转让 API ” — `ALCHEMY_TRANSFERS_CHAIN_IDS` (和 `ALCHEMY_INTERNAL_CHAIN_IDS` 当 `internal` 页:1.
5.  没有答案 `NO_EXPLORER_CHAIN_IDS`。 。 。 .
6.  用日期更新上表, 运行 `pnpm --filter @anywalletkit/history-evm test` (链表测试强制要求每个ID被覆盖,并有一个Alchemy sult).

## 测试

`pnpm --filter @anywalletkit/history-evm test` ——无网络:固定在 `tests/fixtures/` 真实以太斯干 v2(`chainid=1`用钥匙抓起来的 无密钥捕捉已经不可能)和 `eth.blockscout.com` 答复 公共测试钱包 `0x8AbE813577E47415A3CD0Bbc68c7ABCa2c4c55bA`外加一个 用于 Avalanche 和合成行的路由扫描样本 用于 三脚相换, 失败 tx,20行空投和假USDT尘埃传输. 炼金装置 (单位:千美元)`alchemy-base-*.json`,基主网,同一个钱包,用免费密钥捕获 2026-10-14: 联合国 `fromAddress` 编号 : `toAddress` 转移页(包括:. `internal` 行、Aave供货和取出、通过内部付款和 非 ASCII 被伪造的令牌, 每条散列的 tx + 接收批次 (调用数据长于2 KB并有许多日志的收据被修剪、标记) `_inputTrimmed` 编号 : `_logsTrimmed`页:1 `is not enabled for this app` 信封上写着. `LIVE_HISTORY=1` (可选) `ETHERSCAN_API_KEY` 编号 : `ALCHEMY_API_KEY`进行现场检查.

安全隐患: `fetch` 只有,有人看守着 `AbortSignal.timeout`,自有基数64(无) `Buffer`编号 :`btoa`),无 `URL` 内 `src/`。 。 。 .

## 常见问题

### @anywalletkit/history-evm 是什么？

SDK支持的每条EVM链条的活动历史\(History Source\): Etherscan v2, Blockscout PRO和Alchemy Transfer API\(API keys\) 有 Blockscout 和 Routescan 键无后退,每散列合并为一链Tx 有文件记载的垃圾邮件heuristic\.

### 如何安装 @anywalletkit/history-evm？

在项目目录运行 npm install @anywalletkit/history-evm，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@anywalletkit/core（0\.8\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @anywalletkit/history-evm 支持 TypeScript 吗？

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

### @anywalletkit/history-evm 支持 ESM 还是 CommonJS？

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

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

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

### @anywalletkit/history-evm 可以商用吗？

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

### @anywalletkit/history-evm 的下载量有多少？

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

### @anywalletkit/history-evm 还在维护吗？

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

