@dynamic-labs/tron

中文文档
5.16.0发布于 2026/11/11MITTypeScriptESM + CJS近 30 天下载 1.2万

对您网站执行钱包网络3认证和授权的 SDK 反应 .

中文使用文档
文档目录24 节
  1. 概览
  2. 安装
  3. 支持的钱包
  4. 使用量
  5. 基本融合
  6. 与 Tron 钱包合作
  7. 正在访问 TronWeb
  8. 签名信件
  9. 与TRC20 Tokens合作
  10. 网络信息
  11. 支持的网络
  12. 自定义网络
  13. API 参考
  14. TronWallet 类
  15. 是TronWallet( ) 语句
  16. 建筑
  17. 发展
  18. 构建
  19. 测试
  20. 林特
  21. 类型脚本支持
  22. 资源
  23. 支助
  24. 许可证

@ difficial- labs/ tron (韩语)

使用工业标准实现动态SDK的Tron区块链集成 TronWallet 适应器。 。 。 .

概览

这个软件包使用TronWallet适配器标准在您 dApp 中提供与 Tron 钱包的无缝集成. 通过利用TronWallet适配器,可以访问9+ Tron钱包通过一个单一,统一的接口,与自动钱包检测,连接管理,以及标准化的交易处理.

安装

npm install @dynamic-labs/tron

支持的钱包

此软件包通过 TronWallet 适配器支持以下 Tron 钱包 :

钱包类型说明
OKX 钱包浏览器扩展有 Tron 支持的多链钱包
位元钱包浏览器扩展原为位保存
托肯包移动/延长多链钱包
信任钱包移动/延长流行多链钱包

使用量

基本融合

将所有 Tron 钱包整合到您的动态配置 :

import { DynamicContextProvider } from '@dynamic-labs/sdk-react-core';
import { TronWalletConnectors } from '@dynamic-labs/tron';

function App() {
  return (
    <DynamicContextProvider
      settings={{
        environmentId: 'your-environment-id',
        walletConnectors: [TronWalletConnectors()],
      }}
    >
      {/* Your app content */}
    </DynamicContextProvider>
  );
}

与 Tron 钱包合作

使用 isTronWallet 安全访问Tron特定功能的类型守护 :

import { useDynamicContext } from '@dynamic-labs/sdk-react-core';
import { isTronWallet } from '@dynamic-labs/tron';

function MyComponent() {
  const { primaryWallet } = useDynamicContext();

  const handleSendTrx = async () => {
    if (!isTronWallet(primaryWallet)) {
      console.error('Not a Tron wallet');
      return;
    }

    try {
      // Send 10 TRX
      const result = await primaryWallet.sendTrx('TRecipientAddress...', 10);
      console.log('Transaction sent:', result.txid);
    } catch (error) {
      console.error('Transaction failed:', error);
    }
  };

  return <button onClick={handleSendTrx}>Send TRX</button>;
}

正在访问 TronWeb

直接访问 TronWeb 实例 :

import { useDynamicContext } from '@dynamic-labs/sdk-react-core';
import { isTronWallet } from '@dynamic-labs/tron';

function MyComponent() {
  const { primaryWallet } = useDynamicContext();

  const getTronWebInstance = () => {
    if (!isTronWallet(primaryWallet)) return null;

    const tronWeb = primaryWallet.getTronWeb();
    return tronWeb;
  };

  const checkBalance = async () => {
    const tronWeb = getTronWebInstance();
    if (!tronWeb) return;

    const balance = await tronWeb.trx.getBalance(primaryWallet.address);
    console.log('Balance (in SUN):', balance);
    console.log('Balance (in TRX):', balance / 1_000_000);
  };

  return <button onClick={checkBalance}>Check Balance</button>;
}

签名信件

用 Tron 钱包签名信件( 使用) signMessageV2:

import { useDynamicContext } from '@dynamic-labs/sdk-react-core';
import { isTronWallet } from '@dynamic-labs/tron';

function MyComponent() {
  const { primaryWallet } = useDynamicContext();

  const handleSignMessage = async () => {
    if (!isTronWallet(primaryWallet)) return;

    try {
      const message = 'Hello, Tron!';
      const signature = await primaryWallet.signMessage(message);
      console.log('Signature:', signature);

      // Verify the signature
      const tronWeb = primaryWallet.getTronWeb();
      if (tronWeb) {
        const recoveredAddress = await tronWeb.trx.verifyMessageV2(
          message,
          signature,
        );
        console.log('Verified:', recoveredAddress === primaryWallet.address);
      }
    } catch (error) {
      console.error('Signing failed:', error);
    }
  };

  return <button onClick={handleSignMessage}>Sign Message</button>;
}

与TRC20 Tokens合作

获取符号余额并与 TRC20 符号交互 :

import { useDynamicContext } from '@dynamic-labs/sdk-react-core';
import { isTronWallet } from '@dynamic-labs/tron';

function MyComponent() {
  const { primaryWallet } = useDynamicContext();

  const getUSDTBalance = async () => {
    if (!isTronWallet(primaryWallet)) return;

    // USDT contract address on Tron mainnet
    const usdtContract = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t';

    try {
      const balance = await primaryWallet.getTokenBalance(usdtContract);
      console.log('USDT Balance:', balance);
    } catch (error) {
      console.error('Failed to get token balance:', error);
    }
  };

  return <button onClick={getUSDTBalance}>Get USDT Balance</button>;
}

网络信息

获取当前网络细节 :

import { useDynamicContext } from '@dynamic-labs/sdk-react-core';
import { isTronWallet } from '@dynamic-labs/tron';

function MyComponent() {
  const { primaryWallet } = useDynamicContext();

  const getNetworkInfo = async () => {
    if (!isTronWallet(primaryWallet)) return;

    const network = await primaryWallet.getNetworkDetails();
    console.log('Chain ID:', network.chainId);
    console.log('Network Name:', network.name);
  };

  return <button onClick={getNetworkInfo}>Get Network Info</button>;
}

支持的网络

该套件包括内置支持:

  • 特龙主网 (车名: 0x2b6653dc(中文(简体) )
  • 尼罗河试验网 (车名: 0x94a9059e(中文(简体) )
  • 沙斯塔测试网 (车名: 0x401e93ff(中文(简体) )

自定义网络

您可以在创建连接器时配置自定义网络 :

import { TronLinkConnector } from '@dynamic-labs/tron';
import type { GenericNetwork } from '@dynamic-labs/types';

const customNetworks: GenericNetwork[] = [
  {
    blockExplorerUrls: ['https://custom-explorer.com'],
    chainId: '0x12345678',
    chainName: 'Custom Tron Network',
    name: 'Custom Tron Network',
    nativeCurrency: {
      decimals: 6,
      name: 'TRX',
      symbol: 'TRX',
    },
    networkId: '0x12345678',
    rpcUrls: ['https://custom-rpc.example.com'],
    vanityName: 'Custom Network',
  },
];

// Use with connector
const connector = new TronLinkConnector({
  walletBook: walletBookInstance,
  tronNetworks: customNetworks,
});

API 参考

TronWallet 类

Tron钱包的主钱包类.

方法

  • getAddress(): Promise<string> - 获取钱包地址
  • getNetwork(): Promise<string | number | undefined> - 获取当前网络
  • signMessage(message: string | Uint8Array): Promise<string> - 签名
  • getBalance(address?: string): Promise<string | undefined> - 获得TRX平衡
  • sendTrx(to: string, amount: number, options?: { from?: string }): Promise<BroadcastReturn> - 发送TRX
  • getTokenBalance(tokenId: string, address?: string): Promise<number> - 获得TRC20 令牌余额
  • getNetworkDetails(): Promise<{ chainId: string; name: string }> - 获取网络信息
  • getTronWeb(): TronWeb | undefined - 获取TronWeb实例

是TronWallet( ) 语句

类型守护以检查钱包是否是 Tron 钱包 .

function isTronWallet(wallet: Wallet | null | undefined): wallet is TronWallet;

建筑

此软件包使用 TronWallet 适应器 模式,其中规定:

  1. 适配层: 每个钱包连接器将 TronWallet 适应器实例包裹
  2. 统一接口: 所有钱包都显示相同的方法和事件
  3. 事件处理: 连接,断开,账户变更等标准化事件.
  4. 网络检测: 自动网络检测和切换支持

该架构遵循了Dynamic的钱包连接器模式,同时利用了TronWallet Adapter的战斗测试执行.

发展

构建

npx nx build tron

测试

npx nx test tron

林特

npx nx lint tron

类型脚本支持

这个包被用TypeScript来写,并提供了完整的类型定义. 启用您的严格模式 tsconfig.json 最佳经验:

{
  "compilerOptions": {
    "strict": true
  }
}

资源

支助

许可证

这个软件包是动态SDK的一部分,并遵循同样的许可证条款. 见 自由主义 详情


由动态实验室团队建造

版本与发布记录

@dynamic-labs/tron 共发布 207 个版本,首次发布于 2025/09/16;过去 12 个月发布了 178 个版本。

版本发布日期距今
5.16.0latest2026/11/112 天前
5.15.12026/11/103 天前
5.15.02026/11/103 天前
4.104.0v4-lts2026/11/0310 天前
5.14.02026/10/3013 天前
4.103.02026/10/2816 天前

其他发布通道:alpha → 4.83.2-alpha.0,rc → 5.0.0-rc.4,v4-lts → 4.104.0。

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

@dynamic-labs/tron 是什么?

对您网站执行钱包网络3认证和授权的 SDK 反应 .

如何安装 @dynamic-labs/tron?

在项目目录运行 npm install @dynamic-labs/tron,或使用 pnpm add / yarn add / bun add。

@dynamic-labs/tron 支持 TypeScript 吗?

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

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

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

@dynamic-labs/tron 可以商用吗?

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

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

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

@dynamic-labs/tron 还在维护吗?

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