# @anywalletkit/keyring 中文文档

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

版本：0\.3\.9
npm 元数据更新时间：2026-11-02T20:12:47.676Z
中文译文更新时间：2026-11-06T22:26:36.728Z
软件包许可：Apache-2\.0

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

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

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

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

## 中文简介

多账户多源密钥环(Any Walet Kit):许多账户来自一个种子,导入的种子和私人密钥,账户发现——秘密保留在app的安全存储中.

## 安装

```sh
npm install @anywalletkit/keyring
```

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

## README

# @ anywalletkit/ keyring (英语)

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

许多来自许多关键来源的账户,例如MetaMask、Phantom或Tonkeer的操作方式:

## 安装

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

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

-   **a BIP-39种子** (创建或导入,可选密码句) – 账户 0, 1, 2...在每个已注册链上;
-   **导入的私钥** - 一个连锁账户;
-   **a TON-自定义 24 个词** (Tonkeeper,Tonhub, MyTonWallet) – 一个TON账户.

```ts
import { Keyring } from '@anywalletkit/keyring'
import { WalletManagerEvm } from '@anywalletkit/wallet-evm'
import { WalletManagerSolana } from '@anywalletkit/wallet-solana'

const keyring = await Keyring.load({
  storage,  // KeyringStorage: names, addresses, flags — no secrets
  secrets,  // SecretStorage: one secure-storage entry per source
  chains: { evm: { Manager: WalletManagerEvm, config: { provider } }, solana: { Manager: WalletManagerSolana, config: { rpcUrl } } },
})

const { mnemonic } = await keyring.createMnemonic()             // show the backup screen once
const next = await keyring.addAccount(keyring.listSources()[0]!.id)
await keyring.importMnemonic(words, { discover: { isUsed } })   // restore: adds used accounts 1, 2, …
await keyring.previewPrivateKey('solana', key)                  // show the address first
await keyring.importPrivateKey('solana', key)

await keyring.withAccount(next.id, 'evm', (account) => account.sendTransaction(tx))

// A chain registered after an account was created: derive what it lacks (one secret read per source).
keyring.missingChains(next.id)                                   // ['zcash'] — no secret read
await keyring.completeAddresses(next.sourceId)
```

## 衍生(每个账户的变化)

| 链式 | 账户 `i` | 账户与 |
| --- | --- | --- |
| EVM( 视频) | `m/44'/60'/0'/0/i` | MetaMask、Rabby、信托、彩虹 |
| 索拉纳 | `m/44'/501'/i'/0'` | 幽灵 索夫莱尔 后包 |
| 顿 | `m/44'/607'/i'` (V5R1级) | 信托(BIP-39);保管通关字 `importTonMnemonic` |
| 龙 | `m/44'/195'/0'/0/i` | TronLink, 信托公司 |
| 商贸中心 | `m/84'/0'/0'/0/i` (P2WPKH) (韩语) | BIP- 84 钱包, 地址索引 `i` |
| 没有 | `m/44'/397'/i'` | MyNearWallet, Meteor (隐形) (密克罗尼西亚) |
| 兹克什 | `m/44'/133'/0'/0/i` | Zashi、YWallet、Ledger、Trezor(透明t1...接收器) |

I = 0. 4 的黄金矢量在 `test/vectors.test.ts`; 账户 0 匹配公众 引用向量和链条管理器本身的导出(没有现有的地址移动).

## 私钥格式

EVM / Tron: hex → BTC: 压缩 WIF 或 hex → 索拉纳: Base58 64字节秘密, JSON 字节 阵列,或基数58 32字节种子 ^ TON: 六分位种子或64字节秘密 ^ NEAR: `ed25519:<base58>` · Zcash:WIF或32字节正弦(如BTC). 一个64字节的ed25519密钥必须与其嵌入式公钥相匹配.

尚未: TON V4R2/V3R2 导入密钥的钱包版本( 仅限 V5R1), BTC P2TR/ P2PKH 扫描导入的 WIF (使用 BTC 管理器配置的地址类型), 非英语 BIP-39单词列表.

## 安保模式

-   SDK之间没有秘密 每个信号都读取来源的秘密 `SecretStorage`,构建链式管理器,返回的手柄将键零化 `dispose()` (单位:千美元)`withAccount` 处理你.
-   `KeyringStorage` 只看到公共数据:标签、地址、索引、旗帜和 指纹( 主人的散列) _公开_ 或导入的密钥的公用密钥).
-   复制品被指纹所捕捉——同种相接,同种相接+口语相接,或同种相接 同样的密钥以另一种形式存在,而不对周围的任何事物保密.
-   出错消息从不回声单词,密钥或密码句.
-   `removeSource` 在删除密钥前保存元数据( 以 id 为待删除) , 因此,失败的保存从不拖动没有其密钥的源; 失败的删除会在下一个时重试 `Keyring.load`。 。 。 . `SecretStorage.delete` 必须下定决心找到一个不存在的身份证.
-   平行导入被序列化: 重复检查和密写在一个队列中运行 变了,所以同一短语 导入两次一次着陆.
-   `exportSecret()` 返回用于备份屏幕的秘密:在应用中的生物鉴别技术后面的门.

## 常见问题

### @anywalletkit/keyring 是什么？

多账户多源密钥环\(Any Walet Kit\):许多账户来自一个种子,导入的种子和私人密钥,账户发现——秘密保留在app的安全存储中\.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

