@crossmint/client-sdk-smart-wallet

中文文档
0.3.88发布于 2026/11/10Apache-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 2683

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

中文使用文档
文档目录13 节
  1. 安装
  2. 认证
  3. 快速启动
  4. 实例
  5. 钱包创建
  6. 发送交易
  7. 签名信件
  8. 从 0.1.x
  9. API 参考
  10. 智能钱包SDK
  11. 类型
  12. EMSmartWallet 软件
  13. 智能钱包客户端

智能钱包 SDK

[尖叫声] 智能钱包SDK不再维护,使用 钱包 SDK 换句话说.

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

安装

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

认证

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

关于如何获得JWT标志的详细指示,请参见: 用户认证。 。 。 .

快速启动

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;

实例

钱包创建

密码钱包

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

私钥钱包

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();

浏览器钱包

import type { EIP1193Provider } from "viem";

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

发送交易

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>"],
  })
})

签名信件

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

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

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

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

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

API 参考

智能钱包SDK

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

静态方法

init(params: SmartWalletSDKInitParams): SmartWalletSDK

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

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

实例方法

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

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

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

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

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

类型

智能钱包钱

支持区块链网络.

钱包

钱包创建配置 :

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()。提供与智能钱包互动的方法:

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。提供与钱包互动的方法:

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>;
}

可在以下网址查阅全文: 文档。 。 。 .

版本与发布记录

@crossmint/client-sdk-smart-wallet 共发布 127 个版本,首次发布于 2024/07/30;过去 12 个月发布了 49 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.3.88latest2026/11/10今天
0.3.872026/11/064 天前
0.3.862026/11/065 天前
0.3.852026/11/056 天前
0.3.842026/11/056 天前
0.3.832026/10/3012 天前

其他发布通道:beta → 0.3.54-beta.1。

关于 @crossmint/client-sdk-smart-wallet 的常见问题

@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 和提交记录判断。