Tron SDK Guide: Connecting Apps & Mini Wallets to Web3 DEX API

·

Installation & Initialization

Ensure you're using version 6.96.0 or later. Integrate OKX Connect into your DApp via npm:

import { OKXUniversalProvider } from '@okx/web3-connect'

Required Parameters

Returns
OKXUniversalProvider instance

👉 Get started with Tron Web3 integration

Wallet Connection

Establish wallet connections to obtain addresses for transaction signing.

Connection Parameters

{
  namespaces: {
    'tron': {
      chains: ['tron:mainnet'],
      methods: ['signTransaction'],
      events: ['accountsChanged']
    }
  },
  sessionConfig: {
    redirect: 'tg://resolve' // For Telegram Mini Apps
  }
}

Response

Transaction Preparation

Create provider instance:

const provider = new OKXTronProvider(universalProvider);

Account Management

Request

Response

{
  "address": "TXXXXXXXXXXXXXXXXX"
}

Message Signing

Sign V1

const signature = await provider.signMessage('Hello TRON');

Sign V2 (Chain-specific)

const signatureV2 = await provider.signMessageV2(
  'Secure message', 
  'tron:mainnet'
);

Transaction Processing

1. Sign Only

const signedTx = await provider.signTransaction({
  rawData: { ... },
  visible: false
});

2. Sign & Broadcast

const txHash = await provider.signAndSendTransaction(
  builder.transactionBuilder,
  'tron:mainnet'
);

Disconnection

Terminate active sessions:

provider.disconnect();

Event Handling

Subscribe to wallet events:

provider.on('accountsChanged', (accounts) => {
  console.log('New addresses:', accounts);
});

Error Reference

CodeDescription
4001User rejected request
4100Unauthorized chain
4200Unsupported method
5000Connection failure

👉 Troubleshoot common wallet issues

FAQ

What's the minimum SDK version required?

Version 6.96.0 or newer is mandatory for TRON integration.

Can I use SVG logos for my dApp?

No, you must provide PNG/ICO icons at 180x180px resolution.

How do I handle user rejections?

Implement fallback logic when receiving error code 4001.

Is testnet supported?

Yes, specify 'tron:nile' as chainId for testnet operations.

What transaction formats are accepted?

Use TronWeb.transactionBuilder-generated transaction objects.

How long do sessions persist?

Until explicit disconnect() call or wallet-side termination.