# @coinbase-sample/prime-sdk-ts 中文文档

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

版本：0\.10\.1
npm 元数据更新时间：2026-06-02T15:58:26.451Z
中文译文更新时间：2026-11-10T10:31:21.406Z
软件包许可：ISC

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

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

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

- 包体积（解压后）：1.2 MB，841 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2025-01-23T18:02:11.654Z
- 最新版本发布：2026-06-02T15:58:26.327Z
- 近 30 天下载量：7505（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：21（近 12 个月 6 个）

## 中文简介

> **折旧通知:** 这个SDK的开发已经转移到了 [GitHub组织](https://github.com/coinbase/prime-sdk-ts)启用 [硬币基础/硬币](https://github.com/coinbase/prime-sdk-ts) 问题和释放

## 安装

```sh
npm install @coinbase-sample/prime-sdk-ts
```

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

## README

# Coinbase 原始 API 类型Script SDK

> **折旧通知:** 这个SDK的开发已经转移到了 [GitHub组织](https://github.com/coinbase/prime-sdk-ts)启用 [硬币基础/硬币](https://github.com/coinbase/prime-sdk-ts) 用于当前来源、问题和释放。 这个 `coinbase-samples` 储存库仍供历史参考;新工作应针对库因巴克沃尔克储存库.

[![npm version](https://badge.fury.io/js/%40coinbase-sample%2Fprime-sdk-ts.svg)](https://badge.fury.io/js/%40coinbase-sample%2Fprime-sdk-ts) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

## 概览

欢迎使用 Coinbase Prime API TypeScript SDK. 此 TypeScript 项目提供了一个全面、 类型安全的接口 [核心主 API](https://docs.cdp.coinbase.com/prime/docs/welcome) 并优化了多种消费模式,以应对不同的使用案例.

## 许可证

这个 _主打字符 SDK_ 样本库是免费和开源的,并在 [Apache 许可证,2.0版本](https://npmcn.com/package/%40coinbase-sample/prime-sdk-ts/LICENSE)。 。 。 .

应用程序和代码仅供演示之用.

## QQ 快速启动

### 安装

```bash
npm install @coinbase-sample/prime-sdk-ts
```

### 基本用途(建议)

SDK提供了一个 **模块客户端** 提供懒惰的服务,以获得最好的开发者经验:

```typescript
import { CoinbasePrimeClientWithServices } from '@coinbase-sample/prime-sdk-ts';

// Create client from environment variables
const client = CoinbasePrimeClientWithServices.fromEnv();

// Access services directly - no manual instantiation needed!
const portfolios = await client.portfolios.listPortfolios();
const orders = await client.orders.listPortfolioOrders({ portfolioId: 'your-id' });
const wallets = await client.wallets.listWallets({ portfolioId: 'your-id' });
```

### 环境设置

复制 `env.example` 改为 `.env` 并包含您的值 :

```bash
cp env.example .env
```

然后编辑 `.env` 以你的实际全权证书:

```env
# API Credentials (JSON format)
PRIME_CREDENTIALS={"AccessKey":"your-access-key","SecretKey":"your-secret-key","Passphrase":"your-passphrase"}

# Required IDs
ENTITY_ID=your-entity-id
PORTFOLIO_ID=your-portfolio-id
WALLET_ID=your-wallet-id
```

## 使用实例

### **列表组合**

```typescript
const portfolios = await client.portfolios.listPortfolios();
console.log(portfolios.portfolios);
```

### **获取资产**

```typescript
const assets = await client.assets.listAssets({ 
  entityId: portfolioId 
});
console.log(assets.assets);
```

### **创建顺序**

```typescript
import { OrderSide, OrderType } from '@coinbase-sample/prime-sdk-ts';

const order = await client.orders.createOrder({
  portfolioId: 'your-portfolio-id',
  productId: 'BTC-USD',
  side: OrderSide.BUY,
  type: OrderType.MARKET,
  baseQuantity: '0.001'
});
console.log(order.orderId);
```

关于许多现有服务和终点的更有力实例,请参见示例文件夹.

## QQ 配置选项

### 缓冲控制

SDK在客户端和请求层都提供了强大的Pagination控制:

```typescript
const client = CoinbasePrimeClientWithServices.fromEnv(undefined, {
  maxPages: 5,        // Max pages to fetch automatically
  maxItems: 1000,     // Max total items across all pages
  defaultLimit: 100   // Items per page
});

// Or per-request
const response = await client.transactions.listPortfolioTransactions(
  { portfolioId, limit: 50 },
  { maxPages: 10, maxItems: 500 }
);
```

### 高级植入法

所有分解反应都包括强有力的人工分解控制方法:

```typescript
// Get the first page
const firstPage = await client.transactions.listPortfolioTransactions({ portfolioId });

// Check if there are more pages
if (firstPage.hasNext()) {
  console.log('More data available');
}

// Get the next page manually
const secondPage = await firstPage.next();

// Fetch ALL remaining pages and combine the data
const allTransactions = await firstPage.fetchAll(
  undefined,  // options
  (page, totalItems) => console.log(`Fetched page ${page}, total items: ${totalItems}`)
);

// Example: Manual pagination loop
let currentPage = firstPage;
while (currentPage.hasNext()) {
  console.log(`Processing ${currentPage.transactions.length} transactions`);
  currentPage = await currentPage.next();
}
```

#### 接地方法

| 方法 | 说明 | 回返 |
| --- | --- | --- |
| **`hasNext()`** | 检查是否有更多页面可用 | `boolean` |
| **`next()`** | 获取下一页 | `Promise<Response | null>` |
| **`fetchAll()`** | 获取所有剩余页面并合并数据 | `Promise<DataArray[]>` |
| **`getNextCursor()`** | 获取下一页光标 | `string | undefined` |

## • 替代导入模式

虽然 **模块客户端** (单位:千美元)`CoinbasePrimeClientWithServices`在大多数使用情况下,建议采用SDK,为特定情况提供最佳的额外进口模式:

### QQ 为 Bundle 大小优化

#### **手动客户端** (单位:千美元)`@coinbase-sample/prime-sdk-ts/manual`(中文(简体) )

当您需要完全控制服务即时:

```typescript
import { CoinbasePrimeClient, OrdersService, WalletsService } from '@coinbase-sample/prime-sdk-ts/manual';

const client = CoinbasePrimeClient.fromEnv();
const orders = new OrdersService(client);
const wallets = new WalletsService(client);

// Only the services you import are included in your bundle
```

#### **超小型客户端** (单位:千美元)`@coinbase-sample/prime-sdk-ts/client`(中文(简体) )

对于只服务模式(97%的捆绑):

```typescript
import { CoinbasePrimeClient } from '@coinbase-sample/prime-sdk-ts/client';
import { OrdersService } from '@coinbase-sample/prime-sdk-ts/services';

const client = CoinbasePrimeClient.fromEnv();
const orders = new OrdersService(client);
// Total bundle: ~3kb (perfect for microservices)
```

### QQ 套装大小比较

| 导入图案 | 套装大小 | 使用大小写 |
| --- | --- | --- |
| **模块客户端** (建议) | ~30kb 时 | 最佳开发者经验 |
| **手动客户端** | ~90kb 时 | 全面控制,所有可用的服务 |
| **服务+客户端** | ~6kb 时 | 自定义执行 |
| **个人服务** | ~3kb 时 | 微服务,Lambda功能 |

### QQ 只导入类型

对于共享库或类型定义:

```typescript
import type { CreateOrderRequest, OrderSide } from '@coinbase-sample/prime-sdk-ts/types';
// 0kb runtime - perfect for shared type libraries
```

## 什么时候用哪一个?

-   **QQ 模块客户端**: 默认选择 - 最佳 DX, 良好性能
-   **QQ 手动客户端**:需要所有服务,需要明确的控制
-   **仅服务**:微服务,自定义客户端,最小捆绑
-   **个人服务**: Lambda 函数,单用途应用程序
-   **仅限类型**: 共享库,类型定义

## 发展

### 安装

```bash
git clone https://github.com/coinbase-samples/prime-sdk-ts.git
cd prime-sdk-ts
npm install
```

### 构建

```bash
npm run build
```

### 运行示例

SDK 将综合实例纳入 `example/` 目录 :

```bash
# Set up environment (copy env.example to .env first)
cp env.example .env
# Edit .env with your actual entityId, portfolioId, and walletId

# Run examples
node example/listPortfolios.js
node example/createOrder.js
node example/listWallets.js TRADING
```

## QQ 类型脚本支持

SDK是用TypeScript来构建的,并提供了完整的类型安全:

```typescript
import { 
  CoinbasePrimeClientWithServices, 
  OrderSide, 
  OrderType,
  CreateOrderRequest 
} from '@coinbase-sample/prime-sdk-ts';

const client = CoinbasePrimeClientWithServices.fromEnv();

// Full IntelliSense and type checking
const request: CreateOrderRequest = {
  portfolioId: 'your-id',
  productId: 'BTC-USD',
  side: OrderSide.BUY,  // Enum with autocomplete
  type: OrderType.MARKET,
  baseQuantity: '0.001'
};

const order = await client.orders.createOrder(request);
// Response is fully typed - no manual type assertions needed
```

## 常见问题

### @coinbase-sample/prime-sdk-ts 是什么？

折旧通知: 这个SDK的开发已经转移到了 GitHub组织启用 硬币基础/硬币 问题和释放

### 如何安装 @coinbase-sample/prime-sdk-ts？

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

### @coinbase-sample/prime-sdk-ts 支持 TypeScript 吗？

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

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

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

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

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

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

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

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

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

