# @coinbase/coinbase-sdk 中文文档

规范地址：https://npmcn.com/package/%40coinbase/coinbase-sdk/

版本：0\.25\.0
npm 元数据更新时间：2025-06-04T17:04:32.455Z
中文译文更新时间：2026-11-10T10:28:04.898Z
软件包许可：ISC

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

原始 npm 页面：https://www.npmjs.com/package/%40coinbase/coinbase-sdk
原文对照：https://npmcn.com/package/%40coinbase/coinbase-sdk/?lang=original
项目主页：https://github.com/coinbase/coinbase-sdk-nodejs#readme
源码仓库：https://github.com/coinbase/coinbase-sdk-nodejs

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

- 包体积（解压后）：1.4 MB，117 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：14 个
- 首次发布：2024-05-29T01:01:00.572Z
- 最新版本发布：2025-06-04T17:04:32.000Z
- 近 30 天下载量：34685（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：47（近 12 个月 0 个）

## 中文简介

核心平台 SDK

## 安装

```sh
npm install @coinbase/coinbase-sdk
```

也可以使用：`pnpm add @coinbase/coinbase-sdk`、`yarn add @coinbase/coinbase-sdk`、`bun add @coinbase/coinbase-sdk`

## README

# 核心节点Js SDK

[![npm version](https://img.shields.io/npm/v/@coinbase/coinbase-sdk?style=flat-square&logo=npm)](https://www.npmjs.com/package/@coinbase/coinbase-sdk) [![npm weekly downloads](https://img.shields.io/npm/dw/@coinbase/coinbase-sdk?style=flat-square)](https://www.npmtrends.com/@coinbase/coinbase-sdk)

Coinbase Node.js SDK 允许将密码简单地整合到您的应用程序中. 通过呼叫 Coinbase 的平台 API, SDK 允许您提供加密钱包, 将加密输入/出这些钱包, 跟踪钱包余额, 将密码从一个资产交换到另一个资产 .

SDK 支持多个网络上的各种动词, 如文件所示 [这里](https://docs.cdp.coinbase.com/cdp-sdk/docs/networks)。 。 。 .

_说明: 由于SDK提供了新的能力并改进了开发者的经验,更新可能偶尔会包括断裂变化. 这些文件将载入本报告 [变动情况](https://npmcn.com/package/%40coinbase/coinbase-sdk/CHANGELOG.md) 文档._

## 文档

-   [CDP API 文档](https://docs.cdp.coinbase.com/cdp-apis/docs/welcome)

## 所需资源

Coinbase服务器侧SDK需要Node.js版本18或更高,npm版本9.7.2或更高. 要查看您当前已安装的 Node.js 版本, 请从命令行运行如下 :

```bash
node -v
npm -v
```

我们建议安装和管理节点和npm版本 `nvm`。见 [安装和更新](https://github.com/nvm-sh/nvm?tab=readme-ov-file#installing-and-updating) 输入 `nvm` 研究如何安装的指令 `nvm`。 。 。 .

一次 `nvm` ,您可以通过运行以下命令来安装和使用最新版本的Node.js和npm:

```bash
nvm install node # "node" is an alias for the latest version
nvm use node
```

## 安装

可选: npm 初始化

此命令初始化了一个新的 npm 工程, 并设置了默认设置, 通过设置类型字段为软件包. json 文件的"模块"来使用 ES 模块 .

```bash
npm init -y; npm pkg set type="module"
```

#### 您可以导入 SDK 如下:

```bash
npm install @coinbase/coinbase-sdk
```

或者说

```bash
yarn add @coinbase/coinbase-sdk
```

## 使用量

### 初始化

#### 您可以导入 SDK 如下 :

常见 Js :

```javascript
const { Coinbase, Wallet } = require("@coinbase/coinbase-sdk");
```

ES模块 :

```typescript
import { Coinbase, Wallet } from "@coinbase/coinbase-sdk";
```

开始, [创建 CDP API 密钥](https://portal.cdp.coinbase.com/access/api)。然后,通过 API 键名和 API 键的私人密钥通过 API 键名 `Coinbase` 构造器 :

```typescript
const apiKeyName = "Copy your API Key name here.";

const privateKey = "Copy your API Key's private key here.";

Coinbase.configure({ apiKeyName: apiKeyName, privateKey: privateKey });
```

如果您正在使用 CDP 服务器- Signer 来管理您的私人密钥, 请启用 constuctor 选项 :

```typescript
Coinbase.configure({ apiKeyName: apiKeyName, privateKey: apiKeyPrivateKey, useServerSigner: true })
```

另一个初始化SDK的方法是从包含您API密钥的json文件取出API密钥,从CDP门户网站下载.

```typescript
Coinbase.configureFromJson({ filePath: "path/to/your/api-key.json" });
```

这将允许您使用平台 API 认证 .

常见 Js :

```javascript
const { Coinbase, Wallet } = require("@coinbase/coinbase-sdk");
Coinbase.configureFromJson("path/to/your/api-key.json");

// List all Wallets for the CDP Project.
Wallet.listWallets().then(resp => {
  console.log(resp.data);
});
```

或使用ES模块和sync/await:

```typescript
import { Coinbase, Wallet } from "@coinbase/coinbase-sdk";
Coinbase.configureFromJson("path/to/your/api-key.json");

// List all Wallets for the CDP Project.
const resp = await Wallet.listWallets();
console.log(resp.data);
```

### 钱包、地址和转账

现在, 创建一个钱包, 它将默认为 Base Sepolia 测试网网络( 如果没有指定 ) .

```typescript
// Create a Wallet with one Address by default.
const wallet = await Wallet.create();
```

接下来查看您的钱包的默认地址 。 您需要这个默认地址, 才能为您的第一个转帐提供资金 .

```typescript
// A Wallet has a default Address.
const address = await wallet.getDefaultAddress();
console.log(`Address: ${address}`);
```

钱包身上没有资金启动 为了资助这个地址,您需要向上面产生的钱包寄出资金。 如果你没有测试网的资金,从 [水龙头](https://docs.base.org/docs/tools/network-faucets/)。 。 。 .

为发展目的,我们提供 `faucet` 以EH在塞波利亚基地测试网的地址为您提供资金的方法。 我们允许每个地址 在24小时窗口里有一个水龙头索赔.

```typescript
// Create a faucet request that returns you a Faucet transaction that can be used to track the tx hash.
const faucetTransaction = await wallet.faucet();
console.log(`Faucet transaction: ${faucetTransaction}`);
```

```typescript
// Create a new Wallet to transfer funds to.
// Then, we can transfer 0.00001 ETH out of the Wallet to another Wallet.
const anotherWallet = await Wallet.create();
let transfer = await wallet.createTransfer({ amount: 0.00001, assetId: Coinbase.assets.Eth, destination: anotherWallet });
transfer = await transfer.wait();
```

### 无气UDC 转账

为了转移USDC而无需持有ETH气体,你可以使用 `createTransfer` 使用该方法 `gasless` 选项设置为 `true`。 。 。 .

```typescript
let transfer = await wallet.createTransfer({ amount: 0.00001, assetId: Coinbase.assets.Usdc, destination: anotherWallet, gasless: true });
transfer = await transfer.wait();
```

默认情况下,无煤气转让与其他转让一起进行分批,提交可能需要更长的时间。 如果你想选择不进行批量,可以设置 `skipBatching` 选项到 `true`,将立即提交交易.

```typescript
let transfer = await wallet.createTransfer({
  amount: 0.00001,
  assetId: Coinbase.assets.Usdc,
  destination: anotherWallet,
  gasless: true,
  skipBatching: true
});
transfer = await transfer.wait();
```

### 交易基金

```typescript
// Create a Wallet on `base-mainnet` to trade assets with.
let mainnetWallet = await Wallet.create({ networkId: Coinbase.networks.BaseMainnet });

console.log(`Wallet successfully created: ${mainnetWallet}`);

// Fund your Wallet's default Address with ETH from an external source.

// Trade 0.00001 ETH to USDC
let trade = await wallet.createTrade({ amount: 0.00001, fromAssetId: Coinbase.assets.Eth, toAssetId: Coinbase.assets.Usdc });
trade = await trade.wait();

console.log(`Trade successfully completed: ${trade}`);
```

### 重新证明钱包

SDK用开发者管理的密钥创建了钱包,这意味着您负责安全地存储重新建立钱包所需的密钥. 下面的代码会指引您 如何导出钱包并存储在一个安全的地方.

```typescript
// Export the data required to re-instantiate the Wallet.
const data = wallet.export();
```

要坚持钱包的数据,您需要执行存储方法,将数据导出存储在一个安全的位置. 如果你不把钱包存放在一个安全的地方... ...你就会失去使用钱包和所有资金的机会.

```typescript
// At this point, you should implement your own "store" method to securely persist
// the data required to re-instantiate the Wallet at a later time.
await store(data);
```

为了方便测试,我们提供 `saveSeed` 在本地文件系统中存储钱包种子的方法。 这是一种储存钱包种子的不安全方法,只能用于发展目的.

```typescript
const seedFilePath = "";
wallet.saveSeedToFile(seedFilePath);
```

要加密已保存的数据, 请设置加密为真 。 请注意, 您的 CDP API 密钥也是本地持续的数据的加密密钥 。 要用加密数据重现钱包, 请使用相同的 API 键配置您的 SDK `saveSeed` 财务报告和审定财务报表 `loadSeed`。 。 。 .

```typescript
wallet.saveSeedToFile(seedFilePath, true);
```

以下代码说明如何从数据导出时重新证明钱包.

```typescript
// The Wallet can be re-instantiated using the exported data.
const importedWallet = await Wallet.import(data);
```

使用 `saveSeed`,使用以下代码.

```typescript
const userWallet = await Wallet.fetch(wallet.getId());
await userWallet.loadSeedFromFile(seedFilePath);
```

## 承认

此工程包括来自 [维姆](https://github.com/wevm/viem) 根据麻省理工学院颁发的许可证.

## 常见问题

### @coinbase/coinbase-sdk 是什么？

核心平台 SDK

### 如何安装 @coinbase/coinbase-sdk？

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

### @coinbase/coinbase-sdk 支持 TypeScript 吗？

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

### @coinbase/coinbase-sdk 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @coinbase/coinbase-sdk 可以商用吗？

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

### @coinbase/coinbase-sdk 的下载量有多少？

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

### @coinbase/coinbase-sdk 还在维护吗？

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

