# @chipi-stack/backend 中文文档

规范地址：https://npmcn.com/package/%40chipi-stack/backend/

版本：14\.19\.0
npm 元数据更新时间：2026-10-26T17:21:10.203Z
中文译文更新时间：2026-11-09T18:43:35.133Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40chipi-stack/backend
原文对照：https://npmcn.com/package/%40chipi-stack/backend/?lang=original
项目主页：https://docs.chipipay.com/
源码仓库：https://github.com/chipi-pay/build-with-chipi

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

- 包体积（解压后）：3.6 MB，45 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=20\.19\.0
- 运行依赖：10 个
- peer 依赖：@solana/web3\.js ^1\.95\.0
- 首次发布：2025-08-24T12:28:34.321Z
- 最新版本发布：2026-10-26T17:21:09.654Z
- 近 30 天下载量：1882（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：94（近 12 个月 64 个）

## 中文简介

服务器 SDK 用于无气Starknet钱包——钱包提供,支付,SKU购买和加密汇款

## 安装

```sh
npm install @chipi-stack/backend
```

也可以使用：`pnpm add @chipi-stack/backend`、`yarn add @chipi-stack/backend`、`bun add @chipi-stack/backend`

## README

# @ chipi- stack/ 后端

服务器侧SDK为Chipi Pay. 处理钱包创建,交易,SKU购买,以及交换.

## 安装

```bash
npm install @chipi-stack/backend
```

## 快速启动

```typescript
import { ChipiSDK } from "@chipi-stack/backend";

const sdk = new ChipiSDK({
  apiPublicKey: process.env.CHIPI_API_PUBLIC_KEY!,
  apiSecretKey: process.env.CHIPI_API_SECRET_KEY!,
});

const bearerToken = "your-bearer-token"; // From your auth provider (e.g., Clerk)

// Create a wallet
const wallet = await sdk.createWallet({
  params: {
    externalUserId: "user-123",
    chain: "STARKNET",
    encryptKey: "user-pin-or-passkey",
  },
  bearerToken,
});

// Transfer USDC
const tx = await sdk.transfer({
  params: {
    wallet: wallet.wallet,
    token: "USDC",
    recipient: "0x...",
    amount: 10,
    encryptKey: "user-pin-or-passkey",
  },
  bearerToken,
});
```

## 确认交易

每个无油的书写都回了一笔散文,没有别的,所以 `waitForTransaction` 回答以下两个问题:它是否成功,以及 它释放出什么.

```typescript
import { waitForTransaction } from "@chipi-stack/backend";

const receipt = await waitForTransaction(tx);

if (!receipt.success) {
  throw new Error(receipt.revertReason ?? "reverted on chain");
}

// Raw events, decode against your own ABI.
const transferred = receipt.events.filter((e) => e.from_address === USDC);
```

回来的回来作为 **结果** (单位:千美元)`success: false` 加号 `revertReason`(没有) 投出一个球,因为回转是正常的结果... ...你枝了。 只是"我们没有 也就是超时或运输故障 重试就是 正确的反应.

选项 : `nodeUrl`, (中文(简体) ), `retryIntervalMs` (违约3000)和 `timeoutMs` (默认为300000). `nodeUrl` 是你喜欢的终点 而不是唯一的终点 尝试过,因为阅读收据是一意孤行的,并落入RPC链.

## 国库

`sdk.treasury` 从自己的服务器驱动 SHHH 多西格 。 三者以下都需要 (单位:千美元) `sk_`,所以保持他们的服务器侧.

```typescript
// Discover a treasury instead of pinning its id in an env var.
const { items } = await sdk.treasury.list();
const ops = items.find((t) => t.name === "Ops Treasury");

// Require more signatures to borrow than to repay.
await sdk.treasury.setPolicy(ops.id, { sensitiveQuorum: 3 });
const policy = await sdk.treasury.getPolicy(ops.id);

// A transport bound to one treasury + owner, wireable into chipi-react's hooks.
const transport = sdk.treasury.forTreasury({ treasuryId: ops.id, ownerPubkey });
```

法定人数只能 **提高** `requiredApprovals` 在钱包上方的链上 阈值。 连锁店是硬楼 所以下面的法定人数能产生建议 达到批准,然后在执行时返回.

## Bramble 和其他 Starknet 钱包

已经拥有 Bramble, Braavos 或 Ready 的用户可以和 Chipi 一起使用. 他们的钥匙从不离开钱包.

**签到史塔克网** (14.16.0+): Bramble 签下SNIP-12信息,一次性非ce,账户检查.

```ts
import { createStarknetSignInTypedData, verifyStarknetSignIn } from "@chipi-stack/backend";
import { RpcProvider } from "starknet";

const now = Math.floor(Date.now() / 1000);
const typedData = createStarknetSignInTypedData({
  domain: "app.example.com",
  uri: "https://app.example.com",
  address: brambleAddress, // from wallet_requestAccounts
  nonce,
  issuedAt: now,
  expirationTime: now + 600,
});
// The browser asks Bramble: wallet_signTypedData(typedData) → signature
const result = await verifyStarknetSignIn({
  typedData,
  signature,
  provider: new RpcProvider({ nodeUrl }),
  expected: { domain: "app.example.com", uri: "https://app.example.com", nonce },
});
if (result.ok) console.log("signed in as", result.address);
```

**信任的钱包** (14.17.0+):Bramble可以是Chipi钱包的共同所有人或回收监护人,通过 `STARK_SNIP12` 签字人种. 一旦加入为共同所有者,Bramble批准与 `wallet_signTypedData` 奇皮毫无气息地传达他们:

```ts
const txHash = await sdk.executeWithExternalSigner({
  params: {
    walletAddress: chipiWallet.publicKey,
    ownerIndex: brambleOwnerId,
    calls,
    signTypedData: async (typedData) =>
      (await bramble.request({ type: "wallet_signTypedData", params: typedData })) as string[],
    // Checked off-chain before relaying (key from resolveStarkSnip12Signer).
    signer: { address: brambleAddress, starkPubkey },
  },
  bearerToken,
});
```

这个 `STARK_SNIP12` 主网公布核查员类别; `isShhhVerifierDeclared` 检查任何网络。 指南: [签到史塔克网](https://docs.chipipay.com/sdk/guides/sign-in-with-starknet) 财务报告和审定财务报表 [信任的钱包](https://docs.chipipay.com/sdk/guides/trusted-wallets)。 。 。 .

## USDC(环CCTP V2)

原生的USDC从Base,Arbitrum,Optimism,Polygon或Ethereum进入了Chipi钱包,然后返回出局,一个链条上燃烧Circle,另一个链条上薄荷. Chipi支付斯塔克内薄荷;用户免费(15–20分从一L2)或快取(Circle的收费,约一分). 反应钩子( R)`useCrossChainDeposit`, (中文(简体) ), `useCrossChainWithdraw`)做整流;棋子在这里用于服务器和自定义流.

```ts
import { ChipiServerSDK, CCTP_EVM_CHAINS, cctpQuote, formatCctpEta } from "@chipi-stack/backend";

export async function depositFromBase(sdk: ChipiServerSDK, burnTxHash: string) {
  const base = CCTP_EVM_CHAINS.find((c) => c.key === "base")!;
  const quotes = await cctpQuote({ sourceDomain: base.domain, destinationDomain: 25, amount: "25" });
  console.log(`free in ${formatCctpEta(quotes.standard.eta)}, or ${quotes.fast.feeUsdc} USDC fee for ${formatCctpEta(quotes.fast.eta)}`);

  // Once the user's EVM wallet burned (depositFromEvm in the browser), register the burn:
  // Chipi mints on Starknet even if the user's page is gone.
  await sdk.registerCctpDeposit({
    burnTxHash,
    sourceDomain: base.domain,
    mintRecipient: wallet.address,
    amountUsdc: quotes.standard.amountUsdc,
  });
  return sdk.getCctpDepositStatus(burnTxHash); // PENDING | MINTED | FAILED | UNREGISTERED
}
```

索拉纳是一个单独的入口, `@chipi-stack/backend/solana`,则需要 `@solana/web3.js` (可选的同伴依赖性) : `depositFromSolana` 烧穿了主人的钱包 等待烧到着陆, `buildCctpWithdrawToSolanaCalls` 命名所有者的 USDC 令牌账户( 唯一的账户) `receiveMessage` 薄荷到, `solanaUsdcAtaExists` 财务报告和审定财务报表 `isSolanaWalletAddress` 打开接收器.

指南 : [交叉链路](https://docs.chipipay.com/sdk/guides/cross-chain-usdc)。 。 。 .

## 你可以运送的东西

-   **现职钱包 APIs** ——从后端为用户提供和管理钱包
-   **SKU市场(机票、账单、礼品卡)** - 将现实世界的采购与加密铁路结合起来
-   **加密汇款后端** ——建设有稳定币结算的跨境支付服务
-   **Fintechs的无气支付处理** ——接受并发送USDC而不由用户支付汽油

有主意吗? [告诉我们你想建什么](https://github.com/chipi-pay/build-with-chipi/issues/new)

## 文档

完整文件时间 [页面存档备份,存于互联网档案馆. docs.chipipay.com](https://docs.chipipay.com/)

## 许可证

麻省理工学院

## 常见问题

### @chipi-stack/backend 是什么？

服务器 SDK 用于无气Starknet钱包——钱包提供,支付,SKU购买和加密汇款

### 如何安装 @chipi-stack/backend？

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

### @chipi-stack/backend 支持 TypeScript 吗？

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

### @chipi-stack/backend 支持 ESM 还是 CommonJS？

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

### @chipi-stack/backend 需要什么版本的 Node\.js？

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

### @chipi-stack/backend 可以商用吗？

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

### @chipi-stack/backend 的下载量有多少？

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

### @chipi-stack/backend 还在维护吗？

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

