@daimo/sdk

中文文档
1.8.8发布于 2026/09/17BSD-2-ClauseTypeScriptES Module近 30 天下载 6378

Daimo SDK - 稳定币应用程序通用坡道

中文使用文档
文档目录5 节
  1. 入境点
  2. 样式
  3. 退出部件
  4. 账户注册互动
  5. 暂时无法使用的方法
Daimo

戴莫·SDK

pnpm add @daimo/sdk

见 dos.daimo.com (英语) 为了更多.

入境点

  • @daimo/sdk/common - 会话类型、 API 计划和常数
  • @daimo/sdk/client ——瘦 REST 客户端包装 /v1/* Daimo API, 对自定义 UI 有用
  • @daimo/sdk/web - 反应模式(<DaimoModal>)和内置存款UI的钩子
  • @daimo/sdk/native - 反应原生矿床UI(<DaimoFrameRN>结束 react-native-webview

样式

导入 @daimo/sdk/web/theme.css 用于内置网络用户界面。 分布式样式表命名空间 : daimo- 这样它就可以与主机应用的"Tailwind"构建共存.

@daimo/sdk/web/styles.css 仍可作为等同的别名.

退出部件

DaimoWithdrawal 收集收件人地址或 ENS 名称、 目的地 和目的网络,然后请您的服务器创建 打开会话。 把它包起来 DaimoSDKProvider 因此 ENS 分辨率和会话 投票使用提供者配置的Daimo API URL.

ENS工作时没有附加配置. 这个 createSession 必须回调 用您的 Daimo API 密钥调用您的认证后端; 永远不要曝光该密钥 在浏览器代码中.

import "@daimo/sdk/web/theme.css";
import { DaimoSDKProvider, DaimoWithdrawal } from "@daimo/sdk/web";

export function Withdrawal() {
  return (
    <DaimoSDKProvider>
      <DaimoWithdrawal
        fundingMode="injected-wallet"
        contactStorageScope={currentUser.id}
        theme={accountTheme}
        createSession={(input) =>
          fetch("/api/withdrawal/session", {
            method: "POST",
            headers: { "Content-Type": "application/json" },
            body: JSON.stringify(input),
          }).then((response) => response.json())
        }
      />
    </DaimoSDKProvider>
  );
}

contactStorageScope 必须是稳定的认证用户或账户ID。 这个 部件用它来隔离本地存储中保存的目的地 。 ENS总是 解析在 Ethereum 主网上, 无论选择的目的地网络. 将后端返回的组织主题通过 theme; 数据 部件在显示收件人用户界面前等待自定义样式表。 明确 themeMode 道具覆盖主题的光/ 暗/ 系统模式,同时保留 它的样式表.

过 resolveEns 仅在您有意需要自定义 ENS 时 决议。 回调收到一个ENSIP-15的常态化名称并带走 胜过戴莫主播的解答者 在您身后保留已支付的 RPC 证书 拥有经认证的后端. 使用 connectToAddress 当主机已连接 EVM 钱包时 。 单位 注入的wallet 流,设置 walletSource="evm" 排除仅索拉纳语 钱包,只使用双链钱包中的 EVM 提供者。 默认是 "all"这保留了EVM和索拉纳的混合资金.

手动模式从未提交 EIP-1193 提供者交易 。 主机拥有 通过 sendManualTransaction,而SDK则保留接收器 复用、重复投递保护、复试、投票和生命周期召回. 选择一个手工量模式 :

  • 过 amountUnits 用于正数固定小数。 SDK提交来 选择目的地后立即; 此变体不能同时使用 connectToAddress。 。 。 .
  • 双关 amountUnits 财务报告和审定财务报表 connectToAddress 通用美元条目。 SDK这个 接受 $0.01+ 最多有两个小数位.
  • 奥米 amountUnits 并通过一个EVM connectToAddress 用于只读符号和 平衡选择。 回调收到选中的源代码和精确度 余额封存的原始金额.
<DaimoWithdrawal
  fundingMode="manual"
  connectToAddress={embeddedWallet.address}
  contactStorageScope={currentUser.id}
  createSession={createWithdrawalSession}
  sendManualTransaction={async ({ receiverAddress, source }) => {
    if (!source) throw new Error("source token is required");
    const txHash = await embeddedWallet.sendToken({
      chainId: source.token.chainId,
      token: source.token.token,
      to: receiverAddress,
      amount: source.amount,
    });
    return { txHash };
  }}
/>

完整的适配器请求是:

type DaimoWithdrawalManualTransferRequest = {
  sessionId: string;
  receiverAddress: Address;
  destination: DaimoWithdrawalDestination;
  expiresAt: number;
  amountUnits: string;
  source?: {
    address: Address;
    token: DaimoPayToken;
    amount: bigint;
  };
};

amountUnits 是精确的固定或SDK入小数字符串. source 实值 总是在地址识别路径中显示, 并省略固定或通用的 手动输入. source.amount 是确切的原始值。 只在 提交或移交交易,并仅在重试时拒绝 同一会话是安全的。 重试重用相同的隐藏接收器 。 归还 交易散列让民意测验更早发现转移.

对于通用手动条目,省略地址:

<DaimoWithdrawal
  fundingMode="manual"
  contactStorageScope={currentUser.id}
  createSession={createWithdrawalSession}
  sendManualTransaction={async ({
    receiverAddress,
    amountUnits,
    expiresAt,
  }) => {
    const txHash = await hostWallet.sendStablecoin({
      to: receiverAddress,
      amountUnits,
      expiresAt,
    });
    return { txHash };
  }}
/>

过 amountUnits="25.00" 改为固定手工提交的同一部分. evmProvider 每个手动变体都禁止.

账户注册互动

内置账户的流量比版本的要薄 EnrollmentInteraction 合同。 服务器选择下一个语义 交互、本地化副本、打印格式修订、不透明的提交行动、, 主持回归行为 投票政策 SDK详尽地规定 表格、检察官办公室/转发、账号核对、主机操作、等待/审查、, 复试,终点站,以及活动状态,没有在铁路或供应商上分出.

DaimoClient.account.getEnrollmentInteraction 财务报告和审定财务报表 submitEnrollmentAction 是主要的客户方法。 年长者 startEnrollment 和专用形式/OTP方法在 支持兼容性窗口。 内置渲染器掉回那些 仅当服务器尚未曝光添加剂通用的 HTTP 路径 路径; 在一个完整支持的释放窗口显示否后删除适配器 a 遥测中的缺失倒计时.

暂时无法使用的方法

一个有线导航节点可以包括 temporarilyUnavailable: true方法 可选择。 模式在账户前显示临时退出消息 登录后让用户返回付费拾取器。 以往付款的存款 仍然打开他们的状态页面.

模块入学申请包括可选 session: { sessionId, clientSecret } 上下文,这样服务器就可以应用目的地 Org 的铁路暂停。 全账户 客户端的调用可以省略此字段的相容性. 部署接受的服务器 在推出这个SDK之前 存款创建总是由 服务器; 仅导航旗不是访问控制.

版本与发布记录

@daimo/sdk 共发布 35 个版本,首次发布于 2026/02/28;过去 12 个月发布了 35 个版本。

版本发布日期距今
1.8.8latest2026/09/171 个月前
1.8.72026/08/142 个月前
1.8.62026/08/083 个月前
1.8.52026/08/083 个月前
1.8.42026/08/083 个月前
1.8.32026/08/083 个月前

其他发布通道:next → 1.0.0-rc.3,beta → 1.8.0-beta.0。

关于 @daimo/sdk 的常见问题

@daimo/sdk 是什么?

Daimo SDK - 稳定币应用程序通用坡道

如何安装 @daimo/sdk?

在项目目录运行 npm install @daimo/sdk,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(18.x || 19.x)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@daimo/sdk 支持 TypeScript 吗?

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

@daimo/sdk 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@daimo/sdk 可以商用吗?

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

@daimo/sdk 的下载量有多少?

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

@daimo/sdk 还在维护吗?

最新版本 1.8.8 发布于 2026/09/17(1 个月前);至今共发布 35 个版本,其中过去 12 个月发布了 35 个;首次发布于 2026/02/28。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。