# @dynamic-labs/wallet-book 中文文档

规范地址：https://npmcn.com/package/%40dynamic-labs/wallet-book/

版本：5\.16\.0
npm 元数据更新时间：2026-11-10T20:29:07.527Z
中文译文更新时间：2026-11-13T02:24:26.120Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40dynamic-labs/wallet-book
原文对照：https://npmcn.com/package/%40dynamic-labs/wallet-book/?lang=original
项目主页：https://www.dynamic.xyz/

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

- 包体积（解压后）：814 kB，121 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：7 个
- peer 依赖：react \>=18\.0\.0 \<20\.0\.0，react-dom \>=18\.0\.0 \<20\.0\.0
- 首次发布：2023-03-13T19:59:29.924Z
- 最新版本发布：2026-11-10T20:29:07.327Z
- 近 30 天下载量：379034（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：944（近 12 个月 177 个）

## 中文简介

-   [钱包本](https://npmcn.com/package/%40dynamic-labs/wallet-book/#description-wallet-book) - 说吧 [更新钱包本](https://npmcn.com/package/%40dynamic-labs/wallet-book/#description-updating-wallet-book) - 说吧 [增加第一党钱包](https://npmcn.com/package/%40dynamic-labs/wallet-book/#description-adding-first-party-wallet) - 说吧 [添加已注射( 浏览扩展名) 钱包](https://npmcn.com/package/%40dynamic-labs/wallet-book/#description-adding-injected-browser-extension-wallets) - \[如果你没有

## 安装

```sh
npm install @dynamic-labs/wallet-book
```

也可以使用：`pnpm add @dynamic-labs/wallet-book`、`yarn add @dynamic-labs/wallet-book`、`bun add @dynamic-labs/wallet-book`

## README

# 钱包本

## 更新钱包本

-   [钱包本](https://npmcn.com/package/%40dynamic-labs/wallet-book/#readme-wallet-book)
    -   [更新钱包本](https://npmcn.com/package/%40dynamic-labs/wallet-book/#readme-updating-wallet-book)
        -   [增加第一党钱包](https://npmcn.com/package/%40dynamic-labs/wallet-book/#readme-adding-first-party-wallet)
        -   [添加已注射( 浏览扩展名) 钱包](https://npmcn.com/package/%40dynamic-labs/wallet-book/#readme-adding-injected-browser-extension-wallets)
            -   [如果您需要覆盖以下任何功能: signedMessage, getAddress, getSigner, isInsstalled OnBrowser等...](https://npmcn.com/package/%40dynamic-labs/wallet-book/#readme-if-you-need-to-override-any-of-the-following-functions-signmessage-fetchpublicaddress-getsigner-isinstalledonbrowser-etc)
            -   [添加新钱包时要记住的事](https://npmcn.com/package/%40dynamic-labs/wallet-book/#readme-things-to-remember-when-adding-a-new-wallet)
            -   [**提交 PR 之前的核对表**数字 :](https://npmcn.com/package/%40dynamic-labs/wallet-book/#readme-checklist-before-submitting-the-pr)
        -   [更新钱包连接数据](https://npmcn.com/package/%40dynamic-labs/wallet-book/#readme-updating-wallet-connect-data)
        -   [在钱包上添加覆盖](https://npmcn.com/package/%40dynamic-labs/wallet-book/#readme-adding-overrides-to-walletconnect)
        -   [编译和出版](https://npmcn.com/package/%40dynamic-labs/wallet-book/#readme-compile--publish)

### 增加第一党钱包

简单地添加一个条目到 `firstPartyWalletsData` 内 `packages/wallet-book/src/build/sources/firstParty/index.ts` 财务报告和审定财务报表 [编译和出版](https://npmcn.com/package/%40dynamic-labs/wallet-book/#readme-compile--publish)

例如:

```
  argentx: {
    brand: {
      alt: 'Argent Wallet',
      primaryColor: '#FF875B',
      spriteId: 'argentx',
    },
    desktop: {
      chromeId: 'dlcobpjiigpikoobohmabehhmhfoodbb',
      firefoxId: 'argent-x',
    },
    name: 'Argent X',
    injectedConfig: [
      {
        chain: 'EVM',
        extensionLocators:
      }
    ]
  },
```

需要的字段 :

-   `brand`
    -   `alt`
    -   `primaryColor`
    -   `spriteId` - 标志性svg中使用的ID
    -   `name`

参见 `WalletRecordsSchema` 用于更多计划选项

### 添加已注射( 浏览扩展名) 钱包

类似 [添加第一党钱包](https://npmcn.com/package/%40dynamic-labs/wallet-book/#readme-adding-first-party-wallet)我们再加一把钥匙, `injectedConfig` 到钱包对象.

```
...
injectedConfig: [
  {
    chain: 'EVM',
    extensionLocators: [
      { flag: 'isOkxWallet', value: true },
      { flag: 'isOkexWallet', value: true }
    ],
    windowLocations: ['okxwallet']
  }
],
name: 'OKX'
```

#### 如果您需要覆盖以下任何功能: signedMessage, getAddress, getSigner, isInsstalled OnBrowser等...

1.  创建相应的文件 `ethereum/src/injected/` 或者说 `solana/src/injected/`。基本文件应该遵循此表单 :

```ts
export class <NameOfConnector> extends InjectedWalletBase {
  override name = '<Name Here>';
  override walletConnectorFallback = true; // only specified on evm wallet connectors

  constructor(props: EthereumWalletConnectorOpts) {
    super(props);

    this.wallet = findWalletBookWallet(this.walletBook, this.key);
  }

  // override the methods you need below
  override async getAddress() {
    ...
  }
}
```

2.  打开 `fetchInjectedWalletConnectors.ts` 网络软件包`etherem/solana/...`)并添加新的注射式WalletBase类 `injectedWalletOverrides` 和 `filterInjectedWalletKeyOverrides`

#### 添加新钱包时要记住的事

-   `If the new wallet is also in walletconnect.json`:确保所使用的密钥 `firstParty/index.ts` 这是 `same` 作为来自 `walletconnect.json` 从钱包定义中继承属性.
-   数值 : `windowLocations` 地图到 `window.<value from windowLocations>`也就是说. `okxwallet` 表示 `window.okxwallet`。这些值可以是一条被划定的嵌入路径。 如果钱包在下面 `window.ethereum` 或者说 `window.ethereum.providers`,这些窗口位置默认为导入.
-   对于您为新钱包添加的每个扩展名定位符, 请添加否定 `[{ flag: 'isOkxWallet', value: false }, ...]` 扩展标记 `metamask` 键在第一党.
-   如果启用新钱包连接( 存在于 `walletconnect.json`),确保添加: `filterFromWalletConnect: true` 作为兄弟 `injectedConfig` 它将从钱包连接器列表中过滤钱包,并将钱包连接作为倒置连接.

#### **提交 PR 之前的核对表**数字 :

\[ \]: 如果修改后在插入的文件夹中添加了新文件, 请将钱包密钥添加到 `walletBookFallbackList` 内 `packages/wallet-book/src/build/index.ts`

\[ \]: 如果钱包簿中的名称正在更改, 请确保如果没有新文件 `injected/` 文件夹,您至少确定 `shortName` 普通化到钱包密钥

```
myawesomenewwallet: {
  ...
  injectedConfig: { ... },
  shortName: 'My Awesome New Wallet', // maps down to the key if you lowercase and remove special characters and spaces
  name: 'Awesome Wallet' // this will be displayed in the wallet list and can be changed as long as the `shortName` normalizes to the key
}
```

**注:**

参见 `injectedConfigSchema` 用于计划选项

### 更新钱包连接数据

-   从 : [https://explorer-api.walletconnect.com/v3/wallets?projectId-=XXXX](https://explorer-api.walletconnect.com/v3/wallets?projectId=XXXX) 替换
-   替换软件包/Wallet-book/src/building/ sources/walletConnect/walletconnection.json 页面存档备份,存于互联网档案馆
-   [编译和出版](https://npmcn.com/package/%40dynamic-labs/wallet-book/#readme-compile--publish)

### 在钱包上添加覆盖

-   修改软件包/Wallet-book/src/building/ sources/walletConnectOverrides/index.ts
-   [编译和出版](https://npmcn.com/package/%40dynamic-labs/wallet-book/#readme-compile--publish)

### 编译和出版

编译的json 存储于 `packages/wallet-book/wallet-book.json`当文件更新时 并合并为主机,将自动发布到S3.

简而言之,做出你需要的任何改变,以及:

1.  清除钱包簿逻辑的任何缓存

```
npm run nuke
```

2.  编译

```
npx nx compile wallet-book
```

## 常见问题

### @dynamic-labs/wallet-book 是什么？

钱包本 - 说吧 更新钱包本 - 说吧 增加第一党钱包 - 说吧 添加已注射\( 浏览扩展名\) 钱包 - \[如果你没有

### 如何安装 @dynamic-labs/wallet-book？

在项目目录运行 npm install @dynamic-labs/wallet-book，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（\>=18\.0\.0 \<20\.0\.0）、react-dom（\>=18\.0\.0 \<20\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @dynamic-labs/wallet-book 支持 TypeScript 吗？

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

### @dynamic-labs/wallet-book 支持 ESM 还是 CommonJS？

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

### @dynamic-labs/wallet-book 可以商用吗？

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

### @dynamic-labs/wallet-book 的下载量有多少？

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

### @dynamic-labs/wallet-book 还在维护吗？

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

