# @depay/web3-wallets 中文文档

规范地址：https://npmcn.com/package/%40depay/web3-wallets/

版本：18\.1\.20
npm 元数据更新时间：2026-03-03T12:41:03.467Z
中文译文更新时间：2026-11-12T00:18:04.245Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40depay/web3-wallets
原文对照：https://npmcn.com/package/%40depay/web3-wallets/?lang=original
项目主页：https://depay.com/
源码仓库：https://github.com/DePayFi/web3-wallets

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

- 包体积（解压后）：1.5 MB，9 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：未声明
- Node.js 要求：\>=16
- 运行依赖：0 个
- peer 依赖：@depay/coinbase-wallet-sdk ^3\.8\.4，@depay/solana-web3\.js ^1\.98\.0，@depay/walletconnect-v2 ^2\.12\.2，@depay/web3-blockchains ^9\.7\.9，@depay/web3-client ^11\.1\.0，ethers ^5\.7\.1
- 首次发布：2021-11-26T20:00:44.175Z
- 最新版本发布：2026-03-03T12:41:03.151Z
- 近 30 天下载量：3823（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：228（近 12 个月 3 个）

## 中文简介

One-Stop-Shop JavaScript 库将各种Web3加密钱包和多条块链同时与单一接口相融合.

## 安装

```sh
npm install @depay/web3-wallets
```

也可以使用：`pnpm add @depay/web3-wallets`、`yarn add @depay/web3-wallets`、`bun add @depay/web3-wallets`

## README

## 快速启动

```
yarn add @depay/web3-wallets
```

或者说

```
npm install --save @depay/web3-wallets
```

```javascript
import { getWallets } from '@depay/web3-wallets'

let wallets = await getWallets()

// display wallets, have user pick one:

let wallet = wallets[0]

wallet.name // MetaMask
await wallet.connect() // 0x317D875cA3B9f8d14f960486C0d1D1913be74e90
```

## 演示

[https://depayfi.github.io/web3-wallets/demo.html 互联网档案馆的存檔,存档日期2013-12-22](https://depayfi.github.io/web3-wallets/demo.html)

## 支助

此库支持以下块链 :

-   [以利亚](https://ethereum.org/)
-   [BNB 智能链](https://www.binance.org/smartChain)
-   [多边形](https://polygon.technology/)
-   [索拉纳](https://solana.com/)
-   [方图](https://fantom.foundation/)
-   [坐标](https://arbitrum.io/)
-   [雪崩](https://www.avax.network/)
-   [肠道](https://gnosis.io/)
-   [乐观主义](https://www.optimism.io/)
-   [基础](https://base.org/)
-   [世界链](https://worldcoin.org/world-chain)

此库支持大多数加密钱包 :

见 [https://depay.com/ 钱包](https://depay.com/wallets) 详情

## 平台专用包装

如果你想只使用特定平台并包装,请使用特定平台的软件包:

### EVM特定包装

```javascript
import { getWallets } from '@depay/web3-wallets-evm'
```

### SOLANA特定包装

```javascript
import { getWallets } from '@depay/web3-wallets-svm'
```

## 职能

### 获取钱包

`getWallets`: 返回一组可用的/可连接的钱包。 最多可等5秒, 因为检查现有的钱包连接 . 使用 `drip` 以更快地接收可用的钱包.

```javascript
let availableWallets = await getWallets();
// [<Wallet name='MetaMask'>, <Wallet name='Phantom'>]
```

```javascript
let availableWallets = await getWallets();
// [] no wallets detected. (you can still try have user connec via WalletConnect or WalletLink)
```

```javascript
import { getWallets, wallets } from "@depay/web3-wallets"

let availableWallets = await getWallets()

let wallet
if(availableWallets.length == 1) {
  wallet = availableWallets[0]
} else if(availableWallets.length > 1) {
  wallet = availableWallets[parseInt(prompt('Which wallet do you want to connect?'), 10)]
} else {
  // Let the user choose:
  // you can still try to connect via wallets.WalletConnect.connect()
  // or wallets.WalletLink.connect()
  wallet = wallets.WalletLink
}
```

#### 滴水点滴

传出 a `drip` 回调到 `getWallets` 以获取可用的钱包,而不等待所有钱包检查 :

```javascript

getWallets({
  drip: (wallet)=>{
    setAvailableWallets(
      availableWallets.concat([wallet])
    )
  }
})

```

### 名称

`name:string`: 返回钱包的名称.

```javascript
wallet.name // 'MetaMask'
```

### 标记

`logo:string`: 返回钱包的标志为PNG Base64-encode.

```javascript
wallet.logo // 'data:image/png;base64,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'
```

### 账户

`async account():string`:获取当前已连接和正在运行的账户(不提示连接屏幕). 回返 `undefined` 如果没有账户连接.

```javascript
await wallet.account() // '0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B'
```

### 连接账户

`async connect():string`: 连接账户. 可能打开钱包连接屏幕 。 在 Aync 返回中提供连接账户 。 如果钱包无法连接, 则返回 `undefined`。 。 。 .

```javascript
await wallet.connect() // '0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B'
```

### 平台

`platform:string`: 已识别钱包的平台。 如果钱包有多平台支持(如EVM + SVM),则每个平台将提供1个钱包实例(如Phantom,Exodus等)

```javascript
wallet.platform // 'evm'
```

### 支持的块链

`blockchains:Array`: 包含辅助区块链名称的阵列

```javascript
wallet.blockchains // ['ethereum', 'bsc', 'polygon']
```

### 检查钱包是否连接到特定的块链

`async connectedTo(blockchain):Boolean`:检查钱包是否连接到特定的块链上.

```javascript
await wallet.connectedTo('ethereum') // true
```

如果未给出参数,请告知钱包连接到哪个区块链:

```javascript
await wallet.connectedTo() // 'bsc'
```

如果连接到多个块链, 则可以提供数组 :

```javascript
await wallet.connectedTo() // ['ethereum', 'bsc']
```

### 接收钱包事件

`on(string, function):undefined`: 注册给定事件的回调函数.

```javascript
wallet.on('account', (newAccount)=>{
  doSomething(newAccount)
})
```

#### 活动

`on('account', (newAccount)=>{})`: 当用户更改连接/激活的钱包账户时触发.

#### Deregister 钱包事件

`.on` 返回需要传递到的回调函数 `.off` 如果您想要取消事件听众的注册:

```javascript
let callback = wallet.on('account', (newAccount)=>{
  doSomething(newAccount)
})

//...

wallet.off('account', callback) // removes listener
```

### 切换区块链/网络

`async switchTo(blockchain)`: 更改钱包连接到特定网络( 添加到钱包中以备丢失)

```javascript
await wallet.switchTo('bsc')
```

### 交易

### 数据结构

`accepted: Function ()=>{}`: 一旦交易被钱包接受但尚未发送到网络(如中继器,World App),将会执行的回调. 没有交易, 因为只有发送才能包含交易 .

`api: Array`:合同的Api(例如Ethereum的ABI,索拉纳的布局/Struct).

`blockchain: String`: 区块链的名称, 例如“ ethereum” .

`failed: Function (transaction, error)=>{}`: 一旦交易在链上失败, 将会执行的回调( 回调) .

`from: String`: 交易发送者的地址.

`id: String`: 交易的标识符.

`instructions: Array`: 指令列表 (索拉纳语).

`signers: Array`: 签字人名单 (索拉纳).

`method: String`:拟取名的合同方法名称(EVM).

`nonce: Integer`: 交易(EVM)的nonce(数字只用一次).

`params: Object or Array`:参数传入方法(EVM).

`sent: Function (transaction)=>{}`: 一旦交易发送到网络, 将会执行的回调 .

`succeeded: Function (transaction)=>{}`: 一旦交易成功, 且至少已被网络确认一次将执行的回调 .

`to String`:拟与(EVM)交易的合同地址.

`url String`: Url 打开交易(如在探索者中).

`value: Number or BigNumber as String`: 交易价值(与交易一起发送的本土区块链货币).

### 发送交易

#### EVM: 发送交易

EVM 块链的现有参数 :

`api: Array`:合同的Api(例如,Abi for Ethereum).

`blockchain: String`: 区块链的名称, 例如“ ethereum” .

`failed: Function (transaction, error)=>{}`: 如果交易失败, 将召回执行( 如返回) .

`method: String`:拟调用的合同方法名称.

`params: Object or Array`:参数传递给方法.

`sent: Function (transaction)=>{}`: 如果交易已发送到网络, 将恢复执行 .

`succeeded: Function (transaction)=>{}`: 如果交易成功, 并且已被网络确认一次, 将召回执行 .

`to String`: 拟与之交易的合同地址.

`value: Number or BigNumber as String`: 交易价值(与交易一起发送的本土区块链货币).

##### EVM: 简单值传输

例如,在Ethereum上发送0.01 ETH:

```javascript

let sentTransaction = await wallet.sendTransaction({
  blockchain: 'ethereum',
  to: '0xae60aC8e69414C2Dc362D0e6a03af643d1D85b92',
  value: 0.01,
  sent: function(transaction){},
  succeeded: function(transaction){},
  failed: function(transaction, error){}
})
```

##### EVM:智能合同互动

```javascript
let sentTransaction = await wallet.sendTransaction({
  blockchain: 'ethereum',
  to: '0xae60aC8e69414C2Dc362D0e6a03af643d1D85b92',
  api: [{"inputs":[{"internalType":"address","name":"_configuration","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"configuration","outputs":[{"internalType":"contract DePayRouterV1Configuration","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pluginAddress","type":"address"}],"name":"isApproved","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"address[]","name":"plugins","type":"address[]"},{"internalType":"string[]","name":"data","type":"string[]"}],"name":"route","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],
  method: 'route',
  params: {
    path: ["0xb056c38f6b7Dc4064367403E26424CD2c60655e1","0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2","0xa0bEd124a09ac2Bd941b10349d8d224fe3c955eb"],
    amounts: ["11275067000000000000000","100000000000000000000", "1632063302"],
    addresses: ["0x39794c3171d4D82eB9C6FBb764749Eb7ED92881d", "0x39794c3171d4D82eB9C6FBb764749Eb7ED92881d"],
    plugins: ["0xe04b08Dfc6CaA0F4Ec523a3Ae283Ece7efE00019", "0x99F3F4685a7178F26EB4F4Ca8B75a1724F1577B9"],
    data: []
  },
  value: "0",
  sent: function(transaction){},
  succeeded: function(transaction){},
  failed: function(transaction, error){}
})
```

#### 索拉纳: 发送交易

索拉纳区块链的现有论据:

`blockchain: String`: 区块链的名称, 如 “ solana ” .

`failed: Function (transaction, error)=>{}`: 如果交易失败, 将召回执行( 如返回) .

`sent: Function (transaction)=>{}`: 如果交易已发送到网络, 将恢复执行 .

`succeeded: Function (transaction)=>{}`: 如果交易成功, 并且已被网络确认一次, 将召回执行 .

##### 索拉纳:简单值转移

例如,向索拉纳发送0.01 SOL:

`to String`:接收者的地址.

`value: Number or BigNumber as String`:交易值(仅用于简单的SOL转账).

```javascript

let sentTransaction = await wallet.sendTransaction({
  blockchain: 'solana',
  to: '2UgCJaHU5y8NC4uWQcZYeV9a5RyYLF7iKYCybCsdFFD1',
  value: 0.01,
  sent: function(transaction){},
  succeeded: function(transaction){},
  failed: function(transaction, error){}
})
```

##### 索拉纳:签署并发出指示

`instructions Array`: 一套交易指示

例如,发送1个USDC:

```javascript
import Token from '@depay/web3-tokens'

let sentTransaction = await wallet.sendTransaction({
  blockchain: 'solana',
  instructions: [
    await Token.solana.createTransferInstructions({
      token: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', 
      amount: '1000000',
      from: await wallet.account(),
      to: '5AcFMJZkXo14r3Hj99iYd1HScPiM4hAcLZf552DfZkxas'
    })
  ],
  sent: function(transaction){},
  succeeded: function(transaction){},
  failed: function(transaction, error){}
})
```

###### 索拉纳:指示签名人

如果您需要签名指令( 例如创建“ 扔出” 账户)

你可以通过 `signers` 作为交易的一部分 `sendTransaction`数字 :

```javascript
import { getProvider } from '@depay/web3-client'
import Token from '@depay/web3-tokens'
import { PublicKey, SystemProgram, Keypair } from '@depay/solana-web3.js'

const wallets = await getWallets()
const wallet = wallets[0]
const fromAddress = await wallet.account()
const provider = await getProvider('solana')
const keypair = Keypair.generate()
const account = keypair.publicKey.toString()
const rent = await provider.getMinimumBalanceForRentExemption(Token.solana.TOKEN_LAYOUT.span)

let instruction = SystemProgram.createAccount({
  fromPubkey: new SolanaWeb3js.PublicKey(fromAddress),
  newAccountPubkey: new SolanaWeb3js.PublicKey(wrappedAccount),
  programId: new SolanaWeb3js.PublicKey(Web3Tokens.Token.solana.TOKEN_PROGRAM),
  space: Web3Tokens.Token.solana.TOKEN_LAYOUT.span,
  lamports: rent
})

let sentTransaction = await wallet.sendTransaction({
  blockchain: 'solana',
  instructions: [instruction],
  signers: [keypair],
  sent: function(transaction){},
  succeeded: function(transaction){},
  failed: function(transaction, error){}
})
```

###### 索拉纳:地址查询表

如果您需要通过地址查询表来缩小交易规模,

你可以通过 `alts` 作为交易的一部分 `sendTransaction`数字 :

```javascript
import { getProvider } from '@depay/web3-client'
import Token from '@depay/web3-tokens'
import { PublicKey, SystemProgram, Keypair } from '@depay/solana-web3.js'

const wallets = await getWallets()
const wallet = wallets[0]
const fromAddress = await wallet.account()
const provider = await getProvider('solana')
const keypair = Keypair.generate()
const account = keypair.publicKey.toString()
const rent = await provider.getMinimumBalanceForRentExemption(Token.solana.TOKEN_LAYOUT.span)

let instruction = SystemProgram.createAccount({
  fromPubkey: new SolanaWeb3js.PublicKey(fromAddress),
  newAccountPubkey: new SolanaWeb3js.PublicKey(wrappedAccount),
  programId: new SolanaWeb3js.PublicKey(Web3Tokens.Token.solana.TOKEN_PROGRAM),
  space: Web3Tokens.Token.solana.TOKEN_LAYOUT.span,
  lamports: rent
})

let sentTransaction = await wallet.sendTransaction({
  blockchain: 'solana',
  instructions: [instruction],
  signers: [keypair],
  alts: ['3sEm5YYxgLnP1Z11WXHSgScWqFMrATSNDgZcXAcB1w9A'],
  sent: function(transaction){},
  succeeded: function(transaction){},
  failed: function(transaction, error){}
})
```

#### 价值

如果数值作为数字被传递,它将会被转换成一个大数字,应用单个块链的默认小数:

```javascript
let transaction = new Transaction({
  ...,
  value: 1
})

transaction.value // '1000000000000000000'
```

如果值作为字符串或大数字传递,则按以下规定使用:

```javascript
let transaction = new Transaction({
  ...,
  value: '1000000000000000000'
})

transaction.value // '1000000000000000000'
```

#### 错误的网络

`sendTransaction` 拒绝方式:

```javascript
{ code: 'WRONG_NETWORK' }
```

如果钱包连接到错误的网络,则网络不能自动切换.

### 获取钱包交易数

```javascript
import { transactionCount } from '@depay/web3-wallets'

let count = await transactionCount({ blockchain: 'polygon', address: '0x8Ffdb4Ee24a625856c82db7FAAE5Bd8B3406eF86' })
```

### 签名消息

```javascript
let signature = await wallet.sign("This is a message to be signed")
```

## 日志

### 改划

使用 [https://codebeautify.org (中文(简体) )](https://codebeautify.org/)

## 发展

### 开始吧

```
yarn install
yarn dev
```

### 释放

```
npm publish
```

## 常见问题

### @depay/web3-wallets 是什么？

One-Stop-Shop JavaScript 库将各种Web3加密钱包和多条块链同时与单一接口相融合\.

### 如何安装 @depay/web3-wallets？

在项目目录运行 npm install @depay/web3-wallets，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@depay/coinbase-wallet-sdk（^3\.8\.4）、@depay/solana-web3\.js（^1\.98\.0）、@depay/walletconnect-v2（^2\.12\.2）、@depay/web3-blockchains（^9\.7\.9）、@depay/web3-client（^11\.1\.0）、ethers（^5\.7\.1）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @depay/web3-wallets 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/depay\_\_web3-wallets 是否存在。

### @depay/web3-wallets 支持 ESM 还是 CommonJS？

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

### @depay/web3-wallets 需要什么版本的 Node\.js？

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

### @depay/web3-wallets 可以商用吗？

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

### @depay/web3-wallets 的下载量有多少？

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

### @depay/web3-wallets 还在维护吗？

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

