Configuration

Configuration options and settings for @tetherto/wdk-wallet-tron-gasfree

Wallet Configuration

import WalletManagerTronGasfree from '@tetherto/wdk-wallet-tron-gasfree'
import TronWeb from 'tronweb'

// Option 1: Using RPC URL
const config = {
  // Required parameters
  chainId: '728126428', // Blockchain ID
  provider: 'https://api.trongrid.io', // Tron RPC endpoint
  gasFreeProvider: 'https://api.gasfree.com', // Gas-free service URL
  gasFreeApiKey: 'your-api-key', // Gas-free API key
  gasFreeApiSecret: 'your-api-secret', // Gas-free API secret
  serviceProvider: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH', // Service provider address
  verifyingContract: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH', // Verifying contract address
  
  // Optional parameter
  transferMaxFee: 10000000 // Maximum fee in token base units
}

const wallet = new WalletManagerTronGasfree(seedPhrase, config)

// Option 2: Using TronWeb instance
const tronWeb = new TronWeb({ fullHost: 'https://api.trongrid.io' })
const config2 = {
  chainId: '728126428',
  provider: tronWeb,
  gasFreeProvider: 'https://api.gasfree.com',
  gasFreeApiKey: 'your-api-key',
  gasFreeApiSecret: 'your-api-secret',
  serviceProvider: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH',
  verifyingContract: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH'
}

Account Configuration

Both WalletAccountTronGasfree and WalletAccountReadOnlyTronGasfree share similar configuration requirements:

import { WalletAccountTronGasfree, WalletAccountReadOnlyTronGasfree } from '@tetherto/wdk-wallet-tron-gasfree'

// Full access account
const account = new WalletAccountTronGasfree(
  seedPhrase,
  "0'/0/0", // BIP-44 derivation path
  {
    chainId: '728126428',
    provider: 'https://api.trongrid.io',
    gasFreeProvider: 'https://api.gasfree.com',
    gasFreeApiKey: 'your-api-key',
    gasFreeApiSecret: 'your-api-secret',
    serviceProvider: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH',
    verifyingContract: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH',
    transferMaxFee: 10000000 // Optional
  }
)

// Read-only account (transferMaxFee not needed)
const readOnlyAccount = new WalletAccountReadOnlyTronGasfree(
  'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH', // Tron address
  {
    chainId: '728126428',
    provider: 'https://api.trongrid.io',
    gasFreeProvider: 'https://api.gasfree.com',
    gasFreeApiKey: 'your-api-key',
    gasFreeApiSecret: 'your-api-secret',
    serviceProvider: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH',
    verifyingContract: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH'
  }
)

Configuration Options

Provider

The provider option specifies how to connect to the Tron network.

Type: string | TronWeb Required: Yes

Examples:

// Option 1: Using RPC URL
const config = {
  provider: 'https://api.trongrid.io'
}

// Option 2: Using TronWeb instance
const tronWeb = new TronWeb({ fullHost: 'https://api.trongrid.io' })
const config = {
  provider: tronWeb
}

Chain ID

The chainId option specifies the blockchain's ID.

Type: string Required: Yes

Example:

const config = {
  chainId: '728126428' // Tron Mainnet
}

Gas-Free Provider

The gasFreeProvider option specifies the URL of the gas-free service.

Type: string Required: Yes

Example:

const config = {
  gasFreeProvider: 'https://api.gasfree.com'
}

Gas-Free API Key

The gasFreeApiKey option is your API key for the gas-free service.

Type: string Required: Yes

Example:

const config = {
  gasFreeApiKey: 'your-api-key'
}

Gas-Free API Secret

The gasFreeApiSecret option is your API secret for the gas-free service.

Type: string Required: Yes

Example:

const config = {
  gasFreeApiSecret: 'your-api-secret'
}

Service Provider

The serviceProvider option is the Tron address of the gas-free service provider.

Type: string Required: Yes

Example:

const config = {
  serviceProvider: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH'
}

Verifying Contract

The verifyingContract option is the Tron address of the contract that verifies gas-free transactions.

Type: string Required: Yes

Example:

const config = {
  verifyingContract: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH'
}

Transfer Max Fee

The transferMaxFee option sets a maximum limit for transaction fees to prevent unexpectedly high costs.

Type: number Required: No (optional) Unit: Token base units

Example:

const config = {
  transferMaxFee: 10000000 // Maximum fee in token base units
}

// Usage with error handling
try {
  const result = await account.transfer({
    token: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',
    recipient: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH',
    amount: 1000000
  }, {
    transferMaxFee: 5000 // Override default max fee
  })
} catch (error) {
  if (error.message.includes('exceeds the transfer max fee')) {
    console.error('Transfer cancelled: Fee too high')
  }
}

Network-Specific Configurations

Tron Mainnet

const mainnetConfig = {
  chainId: '728126428',
  provider: 'https://api.trongrid.io',
  gasFreeProvider: 'https://api.gasfree.com',
  gasFreeApiKey: 'your-api-key',
  gasFreeApiSecret: 'your-api-secret',
  serviceProvider: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH',
  verifyingContract: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH'
}

Tron Nile Testnet

const nileConfig = {
  chainId: '3448148', // Nile Testnet
  provider: 'https://nile.trongrid.io',
  gasFreeProvider: 'https://testnet.gasfree.com',
  gasFreeApiKey: 'your-testnet-api-key',
  gasFreeApiSecret: 'your-testnet-api-secret',
  serviceProvider: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH',
  verifyingContract: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH'
}
</tbody>

Need Help?