Configuration
Configuration options and settings for @tetherto/wdk-wallet-tron-gasfree
Network & Service Providers
| Service | Provider | URL (Mainnet) | URL (Testnet) |
|---|---|---|---|
| RPC Provider | TronGrid | https://api.trongrid.io | https://nile.trongrid.io |
| Gas-Free Service | GasFree.io | https://open.gasfree.io/tron/ | https://open-test.gasfree.io/nile/ |
Note: For the latest connection parameters and contract addresses, please refer to the official GasFree Specification.
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://open.gasfree.io/tron/', // Gas-free service URL
serviceProvider: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH', // Service provider address
verifyingContract: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH', // Verifying contract address
// Optional parameters
gasFreeApiKey: 'your-api-key', // Required only for signed GasFree API requests
gasFreeApiSecret: 'your-api-secret', // Provide together with gasFreeApiKey
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://open.gasfree.io/tron/',
serviceProvider: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH',
verifyingContract: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH',
gasFreeApiKey: 'your-api-key',
gasFreeApiSecret: 'your-api-secret'
}gasFreeApiKey and gasFreeApiSecret are optional. Omit both when your GasFree provider accepts unsigned requests. If you configure signed GasFree API requests, provide both values together; the constructor rejects partial credentials.
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://open.gasfree.io/tron/',
serviceProvider: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH',
verifyingContract: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH',
gasFreeApiKey: 'your-api-key', // Optional: provide with gasFreeApiSecret
gasFreeApiSecret: 'your-api-secret',
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://open.gasfree.io/tron/',
serviceProvider: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH',
verifyingContract: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH',
gasFreeApiKey: 'your-api-key', // Optional: provide with gasFreeApiSecret
gasFreeApiSecret: 'your-api-secret'
}
)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: number
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://open.gasfree.io/tron/'
}Gas-Free API Key
The gasFreeApiKey option is your API key for signed requests to the gas-free service.
Type: string
Required: No, unless your GasFree provider requires signed API requests.
Example:
const config = {
gasFreeApiKey: 'your-api-key',
gasFreeApiSecret: 'your-api-secret'
}Provide gasFreeApiKey and gasFreeApiSecret together. Passing only one of them throws during account construction.
Gas-Free API Secret
The gasFreeApiSecret option is your API secret for signed requests to the gas-free service.
Type: string
Required: No, unless your GasFree provider requires signed API requests.
Example:
const config = {
gasFreeApiKey: 'your-api-key',
gasFreeApiSecret: 'your-api-secret'
}Provide gasFreeApiSecret and gasFreeApiKey together. Passing only one of them throws during account construction.
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 | bigint
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://open.gasfree.io/tron/',
serviceProvider: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH',
verifyingContract: 'TFFAMLQZybALab4uxHA9RBE7pxhUAjfF3U', // Official Mainnet Contract
gasFreeApiKey: 'your-api-key', // Optional: provide with gasFreeApiSecret
gasFreeApiSecret: 'your-api-secret'
}Tron Nile Testnet
const nileConfig = {
chainId: 3448148188, // Nile Testnet (Specific ID required for GasFree)
provider: 'https://nile.trongrid.io',
gasFreeProvider: 'https://open-test.gasfree.io/nile/',
serviceProvider: 'TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH',
verifyingContract: 'THQGuFzL87ZqhxkgqYEryRAd7gqFqL5rdc', // Official Testnet Contract
gasFreeApiKey: 'your-testnet-api-key', // Optional: provide with gasFreeApiSecret
gasFreeApiSecret: 'your-testnet-api-secret'
}Node.js Quickstart
Get started with WDK in a Node.js environment
React Native Quickstart
Build mobile wallets with React Native Expo
WDK Tron Gasfree Wallet Usage
Get started with WDK's Tron Gasfree Wallet Usage
WDK Tron Gasfree Wallet API
Get started with WDK's Tron Gasfree Wallet API