# @anywalletkit/seed-vault 中文文档

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

版本：0\.2\.6
npm 元数据更新时间：2026-10-27T17:10:25.692Z
中文译文更新时间：2026-11-09T21:10:24.631Z
软件包许可：Apache-2\.0

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

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

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

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

## 中文简介

任何钱包套的钱包密钥加密备份:一个版本的自定义信封(XChaCha20-Poly1305在一个随机数据密钥下),一个或多个保护者解锁——通过Argon2id解锁的密码,或者从密码PRF,iCloud密钥中取出32字节密钥

## 安装

```sh
npm install @anywalletkit/seed-vault
```

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

## README

# @ anywalletkit/种子-伏特

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

用于一个钱包密钥的加密备份文件:种子短语或私人密钥,正好与密钥环存储相同. 一个文件可以由一个或多个打开 **保护者**数字 :

## 安装

```sh
npm install @anywalletkit/seed-vault
# or: pnpm add @anywalletkit/seed-vault  ·  yarn add @anywalletkit/seed-vault
```

时间: [@ anywalletkit/种子-伏特](https://www.npmjs.com/package/@anywalletkit/seed-vault)发表于 [发布工作流程](https://github.com/ultratestbro/anywalletkit/blob/main/RELEASING.md) 与出处.

| 保护者 | 打开它的东西 | 用它来 |
| --- | --- | --- |
| `password` | 通过 Argon2id 的密码( 默认为 19 MiB × 2, 至少 10 个字符) | ICloud Drive / Google Drive / 任何地方的文件 。 跨平台工作. |
| `key` | 藏在别处的32字节的秘密 | 密码 PRF 输出, iCloud Keychain / Google Block Store 中的随机密钥, 硬件密钥的密钥 |

```ts
import { sealBackup, openBackup, addProtector, encodeBackup, decodeBackup } from '@anywalletkit/seed-vault'

const secret = await secrets.get(sourceId)                       // the keyring's stored string
const meta = { type: source.type, fingerprint: source.fingerprint, label: source.label }
const file = encodeBackup(await sealBackup(secret, meta, [{ kind: 'password', password }]))

// later, on any device
const opened = await openBackup(decodeBackup(file), { kind: 'password', password })
if (opened.meta.fingerprint !== expected) …                      // compare before writing anything
await secrets.set(sourceId, opened.text())
opened.dispose()                                                 // zeroizes the bytes
```

## 格式

-   **有效载荷 :** 该秘密曾被加密过一次,随机的32字节数据密钥(XChaCha20-Poly1305).
    -   标题(格式,版本,创建-at, `meta`)被认证为相关数据.
    -   更改文件中的指纹或标签使其无法打开( S)`corrupted`) (中文(简体) ).
-   **保护者:** 每个都用自己的密钥加密密钥来包裹相同的数据密钥,其描述符被认证.
    -   降低文件中的Argon2成本,或者重命名一键,使得保护者失败.
-   **更改保护者 :** `addProtector` 编号 : `removeProtector` 更改谁可以打开文件而不重新加密该秘密。 最后的保护者无法被移除 .
-   **解码 :** `decodeBackup` 严格.
    -   它拒绝未知的格式,版本,密码或KDF,它只从已知的字段重建对象.
    -   它约束了Argon2的成本(≤ 1 GiB,t 16),因此恶意文件不能耗尽手机的内存,并且拒绝一个低于SDK封装(19 MiB×2)的成本的密码保护者,因此一个廉价到brute-force文件从不作为普通备份.
-   **密码 :** NFKC-正态化,因此在不同的键盘上打出相同的密码句来打开文件.

## 电话速度

Argon2id默认在纯JS中运行,这总是有助于打开文件.

| 发动机 | 封口或开口(19 MiB x 2) |
| --- | --- |
| 赫尔墨斯 | 大约6-15 s |
| V8 / 节点 | 约0.15 s |

运行时显示本地自旋器 .

有了土生土长的Argon2id 你就能承受更大的代价了 过 `{ argon2id: nativeImpl, argon2: { m: 64 * 1024, t: 3, p: 1 } }`。成本被存储在文件中,因此任何设备仍然可以打开它.

## 事实并非如此

-   它不会上传文件。 这是 `backup-cloud`。 。 。 .
-   它不存储在设备上的秘密。 这是 `@anywalletkit/secure-storage-react-native`。 。 。 .
-   它不会把秘密分成股份(Shamir). 这是作为额外保护者的计划.
-   它不使用 keytore v3(Ethereum JSON) 文件.

## 常见问题

### @anywalletkit/seed-vault 是什么？

任何钱包套的钱包密钥加密备份:一个版本的自定义信封\(XChaCha20-Poly1305在一个随机数据密钥下\),一个或多个保护者解锁——通过Argon2id解锁的密码,或者从密码PRF,iCloud密钥中取出32字节密钥

### 如何安装 @anywalletkit/seed-vault？

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

### @anywalletkit/seed-vault 支持 TypeScript 吗？

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

### @anywalletkit/seed-vault 支持 ESM 还是 CommonJS？

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

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

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

### @anywalletkit/seed-vault 可以商用吗？

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

### @anywalletkit/seed-vault 的下载量有多少？

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

### @anywalletkit/seed-vault 还在维护吗？

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

