# @crossmint/client-sdk-smart-wallet 中文文档

规范地址：https://npmcn.com/package/%40crossmint/client-sdk-smart-wallet/

版本：0\.3\.88
npm 元数据更新时间：2026-11-10T15:53:59.266Z
中文译文更新时间：2026-11-11T01:40:28.220Z
软件包许可：Apache-2\.0

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

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

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

- 包体积（解压后）：215 kB，117 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：4 个
- 首次发布：2024-07-30T01:02:38.997Z
- 最新版本发布：2026-11-10T15:53:58.304Z
- 近 30 天下载量：2683（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：127（近 12 个月 49 个）

## 中文简介

> \[!Warning\] > 智能钱包SDK不再维护,使用 [钱包 SDK](https://github.com/Crossmint/crossmint-sdk/tree/main/packages/wallets) 换句话说.

## 安装

```sh
npm install @crossmint/client-sdk-smart-wallet
```

也可以使用：`pnpm add @crossmint/client-sdk-smart-wallet`、`yarn add @crossmint/client-sdk-smart-wallet`、`bun add @crossmint/client-sdk-smart-wallet`

## README

# 智能钱包 SDK

> \[尖叫声\] 智能钱包SDK不再维护,使用 [钱包 SDK](https://github.com/Crossmint/crossmint-sdk/tree/main/packages/wallets) 换句话说.

与 Crossmint Smart 钱包互动的客户端 SDK 。 这个SDK使开发者能够创建和管理智能合同钱包,既支持传统的基于键盘的签名,也支持密码认证.

## 安装

```sh
npm install @crossmint/client-sdk-smart-wallet
# or
pnpm add @crossmint/client-sdk-smart-wallet
```

## 认证

此 SDK 使用 JSON Web Tokens( JWT) 认证您的用户 。 JWT由认证服务器生成,用于授权用户部署和操作钱包.

关于如何获得JWT标志的详细指示,请参见: [用户认证](https://docs.crossmint.com/wallets/quickstarts/EVM/non-custodial-wallets/evm-non-custodial-client-side#4-set-up-user-auth)。 。 。 .

## 快速启动

```typescript
import { SmartWalletSDK } from "@crossmint/client-sdk-smart-wallet";
import { privateKeyToAccount } from "viem";

const sdk = SmartWalletSDK.init({ clientApiKey: "<YOUR_API_KEY>" });
const account = privateKeyToAccount(privateKey);

const wallet = await sdk.getOrCreateWallet(
  {
    jwt: "<USER_TOKEN>",
  },
  "base-sepolia",
  {
    signer: {
      type: "VIEM_ACCOUNT",
      account,
    },
  }
);

const address = wallet.address;
```

## 实例

### 钱包创建

#### 密码钱包

```typescript
const signer = await sdk.createPasskeySigner("My Wallet")
const wallet = await sdk.getOrCreateWallet(
  {
    jwt: "<USER_TOKEN>",
  },
  "base-sepolia",
  {
    signer,
  }
);
const address = walletClient.getAddress();
```

#### 私钥钱包

```typescript
import { privateKeyToAccount } from "viem";

const account = privateKeyToAccount(privateKey);
const wallet = await sdk.getOrCreateWallet(
  {
    jwt: "<USER_TOKEN>",
  },
  "base-sepolia",
  {
    signer: {
      type: "VIEM_ACCOUNT",
      account,
    },
  }
);
const address = walletClient.getAddress();
```

#### 浏览器钱包

```typescript
import type { EIP1193Provider } from "viem";

const providerSigner = window.ethereum as EIP1193Provider;
const wallet = await sdk.getOrCreateWallet(
  {
    jwt: "<USER_TOKEN>",
  },
  "base-sepolia",
  {
    signer: providerSigner,
  }
);
```

### 发送交易

```typescript
import { encodeFunctionData, erc20Abi } from "viem";

const walletClient = wallet.client.wallet;
const txHash = await walletClient.sendTransaction({
  to: "<TOKEN_ADDRESS>",
  data: encodeFunctionData({
    abi: erc20Abi,
    functionName: "transfer",
    args: ["<RECEIVER_ADDRESS>", "<TRANSFER_AMOUNT>"],
  })
})
```

### 签名信件

```typescript
const walletClient = wallet.client.wallet;
const signature = await walletClient.signMessage({
  message: "Hello, Crossmint!"
})
```

## 从 `0.1.x`

`0.2.x` SDK 努力向后兼容 `0.1.x` 尽可能多.

然而,由于钱包现在由Crossmint API供电,一些功能已经无法使用.

具体来说,一些职能来自 `SmartWalletClient` 对象已不可用 :

-   `request`
-   `writeContract`
-   `deployContract`
-   `account`
-   `sendUserOperation`
-   `prepareUserOperationRequest`

此外,密码创建流程也有所改变. 要创建有密码功能的钱包, 您首先创建一个密码符号:

```typescript
const signer = await sdk.createPasskeySigner("My Wallet")
```

钱包创建时使用该签名符 :

```typescript
const wallet = await sdk.getOrCreateWallet(
  {
    jwt: "<USER_TOKEN>",
  },
  "<NETWORK>",
  {
    signer,
  }
);
```

## API 参考

### 智能钱包SDK

与智能钱包互动的主要切入点.

#### 静态方法

##### `init(params: SmartWalletSDKInitParams): SmartWalletSDK`

用客户端的 API 键初始化 SDK .

```typescript
const sdk = SmartWalletSDK.init({ clientApiKey: "<YOUR_API_KEY>" });
```

#### 实例方法

##### `getOrCreateWallet(user: UserParams, chain: SmartWalletChain, walletParams: WalletParams): Promise<EVMSmartWallet>`

为指定的用户创建或检索智能钱包.

```typescript
const wallet = await sdk.getOrCreateWallet(
  {
    jwt: "<USER_TOKEN>" 
  },
  "<NETWORK>",
  {
    signer: /* PasskeySigner or ExternalSigner */
  }
);
```

##### `createPasskeySigner(name: string): Promise<PasskeySigner>`

创建带有指定名称的新密码符号.

```typescript
const signer = await sdk.createPasskeySigner("My Wallet");
```

### 类型

#### 智能钱包钱

支持区块链网络.

#### 钱包

钱包创建配置 :

```typescript
interface WalletParams {
  signer: ExternalSigner | PasskeySigner;
}

// Use existing Web3 wallet or private key
type ExternalSigner = EIP1193Provider | ViemAccount;

// Use private key authentication
interface ViemAccount {
  type: "VIEM_ACCOUNT";
  account: LocalAccount & { source: "custom" };
};

// Use passkey authentication
interface PasskeySigner {
  type: "PASSKEY";
  credential: WebAuthnP256.P256Credential;
}
```

### EMSmartWallet 软件

钱包实例由 `getOrCreateWallet()`。提供与智能钱包互动的方法:

```typescript
interface EVMSmartWallet {
  // viem clients that provide an interface for core wallet functionality.
  client: {
      public: PublicClient<HttpTransport>;
      wallet: SmartWalletClient;
  };

  // The EVM chain of the smart wallet.
  chain: SmartWalletChain;

  // The address of the smart wallet.
  address(): Address;

  // Transfers tokens from the smart wallet to a specified address.
  transferToken(toAddress: Address, config: TransferType): Promise<string>;

  // A list of NFTs owned by the wallet.
  nfts(): Promise<NftResponse>;

  // Sends a contract call transaction and returns the hash of a confirmed transaction.
  executeContract(params: {
    address: Address;
    abi: Abi;
    functionName: string;
    args: unknown;
  }): Promise<Hex>;
}
```

### 智能钱包客户端

通过 `wallet.client.wallet`。提供与钱包互动的方法:

```typescript
interface SmartWalletClient {
  // Get the wallet's address
  getAddress(): Address;
  
  // Sign a message
  signMessage(message: string): Promise<Hex>;
  
  // Sign typed data (EIP-712)
  signTypedData<T extends TypedData>(params: TypedDataDefinition<T>): Promise<Hex>;
  
  // Send a transaction
  sendTransaction(params: {
    to: Address;
    data?: Hex;
    value?: bigint;
  }): Promise<Hex>;
}
```

可在以下网址查阅全文: [文档](https://docs.crossmint.com/sdk-reference/smart-wallets/introduction)。 。 。 .

## 常见问题

### @crossmint/client-sdk-smart-wallet 是什么？

\[\!Warning\] \> 智能钱包SDK不再维护,使用 钱包 SDK 换句话说\.

### 如何安装 @crossmint/client-sdk-smart-wallet？

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

### @crossmint/client-sdk-smart-wallet 支持 TypeScript 吗？

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

### @crossmint/client-sdk-smart-wallet 支持 ESM 还是 CommonJS？

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

### @crossmint/client-sdk-smart-wallet 可以商用吗？

@crossmint/client-sdk-smart-wallet 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @crossmint/client-sdk-smart-wallet 的下载量有多少？

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

### @crossmint/client-sdk-smart-wallet 还在维护吗？

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

