@dynamic-labs-sdk/wagmi

中文文档
1.51.0发布于 2026/11/11TypeScriptESM + CJS近 30 天下载 4668

公务 华为 支持动态JS SDK. 显示动态管理 EVM 钱包账户( 嵌入/ OTP 或外部) , 作为 wagmi 连接器 useAccount, (中文(简体) ), useSendTransaction, (中文(简体) ), useReadContract,其余的 wagmi/viem 钩克

中文使用文档
文档目录8 节
  1. 安装
  2. 要使用的 API
  3. 香草联署材料
  4. 切换目标钱包账户
  5. 将 wagmi 插入一个特定账户
  6. 反应
  7. 支持的东西
  8. 注释限制( L)

@ difficial-labs- sdk/ wagmi (英语)

公务 华为 支持动态JS SDK. 显示 a 动态管理 EVM 钱包账户(嵌入/OTP 或外部)为 wagmi 连接器是这样 useAccount, (中文(简体) ), useSendTransaction, (中文(简体) ), useReadContract,其余则 有动态钱包 保留钱包状态的真相来源.

安装

npm install @dynamic-labs-sdk/wagmi wagmi @wagmi/core viem @tanstack/react-query

wagmi, (中文(简体) ), @wagmi/core 财务报告和审定财务报表 viem 是同伴的依赖关系. wagmi 财务报告和审定财务报表 @tanstack/react-query 只有反应者需要帮助.

要使用的 API

使用自动同步—— syncDynamicWagmi 在香草JS, SyncDynamicWagmi 编号 : useSyncDynamicWagmi 在反应。 都盯着Dynami的 选中 EVM 钱包账户,所以 setSelectedWalletAccount(...) 这是你一直呼吁 动起来.

香草联署材料反应
将 wagmi 保留在 Dynamic 选定的账户上syncDynamicWagmiSyncDynamicWagmi (或 useSyncDynamicWagmi 钩子)
自己打一个账户createDynamicWagmiConnectorcreateDynamicWagmiConnector

createDynamicWagmiConnector 是原始的两种同步帮助都建立在上。 这个 桥 一个 账号——你通过的那个账号——从不跟踪 Dynamic的选取,所以只有在你故意想要给 wagmi 针入时才能达到 具体账户.

香草联署材料

syncDynamicWagmi 在 Dynamic 选定的 EVM 钱包账户上保留一个 wagmi 配置, 没有反应 它订阅 Dynamic 的钱包事件和驱动器 维克米的 connect 编号 : disconnect 当选择更改时——登录,钱包 切换,或登录——并返回停止同步的函数.

创建您的 wagmi 配置 启动时一次 你没有钱包账户 你却从未重建过这个配置 没有动态连接器在 createConfig数字 :

import { createConfig, http } from '@wagmi/core';
import { mainnet } from 'viem/chains';

export const config = createConfig({
  chains: [mainnet],
  transports: { [mainnet.id]: http() },
});

然后开始同步一次——没有 walletAccount 辩论,你从来没有 自己建立一个连接器 :

import { setSelectedWalletAccount } from '@dynamic-labs-sdk/client';
import { syncDynamicWagmi } from '@dynamic-labs-sdk/wagmi';

const stopSync = syncDynamicWagmi({ config });

// When you're done (teardown / logout):
stopSync();

它可以在用户拥有钱包之前开始:wagmi在EVM之前保持断开 选择钱包账户.

如果您使用多个动态客户端, 请通过客户端作为第二个参数 :

const stopSync = syncDynamicWagmi({ config }, client);

切换目标钱包账户

切换是一个动态呼叫——没有wagmi代码:

import { setSelectedWalletAccount } from '@dynamic-labs-sdk/client';

// wagmi re-points to nextWalletAccount automatically.
await setSelectedWalletAccount({ walletAccount: nextWalletAccount });

将 wagmi 插入一个特定账户

如果你想让wagmi来解释你的选择 而不是Dynamic的选择 一,自己建连接器. 钱包提供者来自 账户,所以你只通过账户:

import { connect, disconnect, getConnections } from '@wagmi/core';
import { createDynamicWagmiConnector } from '@dynamic-labs-sdk/wagmi';

await connect(config, {
  connector: createDynamicWagmiConnector({ walletAccount }),
});

// Dynamic-backed connectors carry `type: 'dynamic'`, so you can disconnect
// yours by name and leave connections your app made elsewhere untouched.
const dynamicConnections = getConnections(config).filter(
  (connection) => connection.connector.type === 'dynamic'
);

for (const { connector } of dynamicConnections) {
  await disconnect(config, { connector });
}

此连接器与该单一账户绑定, 不响应 setSelectedWalletAccount(...); 将其指向别处, 断开连接 用于另一个账户的连接器.

如果您使用多个动态客户端, 请通过客户端作为第二个参数 :

const connector = createDynamicWagmiConnector({ walletAccount }, client);

反应

SyncDynamicWagmi (或 useSyncDynamicWagmi 钩子)是反应包装器 周围 syncDynamicWagmi ——它运行组件寿命的同步. 这个 监视动态 选中 EVM 钱包账户和驱动 wagmi 的 connect 编号 : disconnect 当选择更改时, 您需要登录、 钱包切换或 登录。 没错 没有 通过一个 walletAccount,而你从来没有建立连接器 你自己来.

报酬: 给Dynamic的 setSelectedWalletAccount(...) 在你的应用程序中任何地方 和瓦格米自动跟随 useAccount 和朋友重新指向新来的 选中的账户没有额外的线程 。 动态保持真相的来源; wagmi 是一个只读的镜像。 它使什么也没有.

import { DynamicProvider } from '@dynamic-labs-sdk/react-hooks';
import { SyncDynamicWagmi } from '@dynamic-labs-sdk/wagmi/react';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { WagmiProvider, createConfig, http } from 'wagmi';
import { mainnet } from 'wagmi/chains';

// Your Dynamic client, created once via createDynamicClient(...).
import { client } from './dynamicClient';

// Dynamic handles wallet discovery, so disable wagmi's own injected discovery.
const config = createConfig({
  chains: [mainnet],
  multiInjectedProviderDiscovery: false,
  transports: { [mainnet.id]: http() },
});

const queryClient = new QueryClient();

// DynamicProvider makes the client available to the rest of Dynamic's React
// hooks (useUser, useGetWalletAccounts, ...). SyncDynamicWagmi uses the same
// client to keep wagmi in sync.
export const Providers = ({ children }) => (
  <DynamicProvider client={client}>
    <WagmiProvider config={config}>
      <QueryClientProvider client={queryClient}>
        <SyncDynamicWagmi config={config} />
        {children}
      </QueryClientProvider>
    </WagmiProvider>
  </DynamicProvider>
);

一旦挂载, 任何 wagmi 钩子都会镜像选中的动态钱包并切换 账户只是一个动态调用——没有wagmi代码:

import { setSelectedWalletAccount } from '@dynamic-labs-sdk/client';
import { useAccount } from 'wagmi';

const { address, isConnected } = useAccount();

// wagmi re-points to nextWalletAccount automatically.
await setSelectedWalletAccount({ walletAccount: nextWalletAccount });

钩也可直接取出:

import { useSyncDynamicWagmi } from '@dynamic-labs-sdk/wagmi/react';

useSyncDynamicWagmi({ config });

支持的东西

  • connect 编号 : disconnect
  • getAccounts 编号 : getChainId 编号 : isAuthorized
  • switchChain
  • 转发动态钱包事件( 账户更改、 网络更改、 断开) 给瓦格米.

注释限制( L)

  • v1 一次桥接一个单一的 EVM 账户(同步时选中的账户 一个你通过其他。 同时连接多个EVM账户是一个 后续行动——如果需要,请告诉我们.
  • 仅连接 EVM 钱包账户 。 选择一个非 EVM 钱包账户( 如 ) . Solana)将wagmi断开,直到选择 EVM 钱包账户 再来一次.
  • 并不是每个动态钱包提供者都可以更改网络. 当基础 提供者不能, switchChain - 和 connect(config, { connector, chainId }) 除了钱包的当前链条外 SwitchChainNotSupportedError 而不是沉默地停留在旧的网络上.

版本与发布记录

@dynamic-labs-sdk/wagmi 共发布 42 个版本,首次发布于 2026/08/13;过去 12 个月发布了 42 个版本。

版本发布日期距今
1.51.0latest2026/11/112 天前
1.50.02026/11/058 天前
1.49.12026/11/0210 天前
1.49.02026/10/3113 天前
1.48.02026/10/3014 天前
1.47.02026/10/2816 天前

关于 @dynamic-labs-sdk/wagmi 的常见问题

@dynamic-labs-sdk/wagmi 是什么?

公务 华为 支持动态JS SDK. 显示动态管理 EVM 钱包账户( 嵌入/ OTP 或外部) , 作为 wagmi 连接器 useAccount, (中文(简体) ), useSendTransaction, (中文(简体) ), useReadContract,其余的 wagmi/viem 钩克

如何安装 @dynamic-labs-sdk/wagmi?

在项目目录运行 npm install @dynamic-labs-sdk/wagmi,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:viem(^2.28.4)、@wagmi/core(^2.0.0 || ^3.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@dynamic-labs-sdk/wagmi 支持 TypeScript 吗?

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

@dynamic-labs-sdk/wagmi 支持 ESM 还是 CommonJS?

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

@dynamic-labs-sdk/wagmi 可以商用吗?

@dynamic-labs-sdk/wagmi 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@dynamic-labs-sdk/wagmi 的下载量有多少?

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

@dynamic-labs-sdk/wagmi 还在维护吗?

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