Tron example queries

This page provides Blockchain Analytics query examples for Tron.

See the BigQuery documentation for instructions on using BigQuery.

Tether transfers with the largest amounts in a month

This query returns the three largest USDT transfers in March 2023.

In the Google Cloud console, go to the BigQuerypage.

Go to BigQuery

The following query is loaded into the Editorfield:

  CREATE 
  
 TEMP 
  
 FUNCTION 
  
 hexToTron 
 ( 
 address 
  
 STRING 
 ) 
 RETURNS 
  
 STRING 
 LANGUAGE 
  
 js 
 OPTIONS 
  
 ( 
 library 
 = 
 [ 
 "gs://blockchain-etl-bigquery/ethers.js" 
 ]) 
 AS 
  
 r 
 """ 
 function encode58(buffer) { 
 const ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'; 
 const digits = [0]; 
 for (let i = 0; i < buffer.length; i++) { 
 for (let j = 0; j < digits.length; j++) digits[j] <<= 8; 
 digits[0] += buffer[i]; 
 let carry = 0; 
 for (let j = 0; j < digits.length; ++j) { 
 digits[j] += carry; 
 carry = (digits[j] / 58) | 0; 
 digits[j] %= 58; 
 } 
 while (carry) { 
 digits.push(carry % 58); 
 carry = (carry / 58) | 0; 
 } 
 } 
 for (let i = 0; buffer[i] === 0 && i < buffer.length - 1; i++) digits.push(0); 
 return digits.reverse().map((digit) => ALPHABET[digit]).join(""); 
 } 
 function sha256(msgBytes) { 
 const msgHex = ethers.utils.hexlify(msgBytes); 
 const hashHex = ethers.utils.sha256(msgHex); 
 return ethers.utils.arrayify(hashHex); 
 } 
 addressBytes = ethers.utils.arrayify('0x' + address.replace(/^0x/, '41')) 
 checkSum = sha256(sha256(addressBytes)).slice(0, 4); 
 return encode58(new Uint8Array([...addressBytes, ...checkSum])); 
 """ 
 ; 
 WITH 
  
 transfers 
  
 AS 
  
 ( 
  
 SELECT 
  
 block_number 
 , 
  
 hexToTron 
 ( 
 CONCAT 
 ( 
 '0x' 
 , 
  
 SUBSTR 
 ( 
 topics 
 [ 
 1 
 ], 
  
 27 
 ))) 
  
 AS 
  
 from_address 
 , 
  
 hexToTron 
 ( 
 CONCAT 
 ( 
 '0x' 
 , 
  
 SUBSTR 
 ( 
 topics 
 [ 
 2 
 ], 
  
 27 
 ))) 
  
 AS 
  
 to_address 
 , 
  
 CAST 
 ( 
 data 
  
 AS 
  
 INT64 
 ) 
  
 / 
  
 1000000 
  
 AS 
  
 amount 
  
 FROM 
  
 ` 
 bigquery 
 - 
 public 
 - 
 data 
 . 
 goog_blockchain_tron_mainnet_us 
 . 
 logs 
 ` 
  
 l 
  
 WHERE 
  
 address 
  
 = 
  
 '0xa614f803b6fd780986a42c78ec9c7f77e6ded13c' 
  
 -- USDT contract 
  
 AND 
  
 ARRAY_LENGTH 
 ( 
 topics 
 ) 
  
 = 
  
 3 
  
 AND 
  
 topics 
 [ 
 0 
 ] 
  
 = 
  
 '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef' 
  
 -- Transfer events 
  
 AND 
  
 DATE 
 ( 
 block_timestamp 
 ) 
  
 BETWEEN 
  
 "2023-03-01" 
  
 AND 
  
 "2023-03-31" 
 ) 
 SELECT 
  
 * 
  
 FROM 
  
 transfers 
  
 ORDER 
  
 BY 
  
 amount 
  
 DESC 
  
 LIMIT 
  
 3 
 ; 
 

The following shows an example result:

Example result
block_number from_address to_address amount
49606052 TV6MuMXfmLbBqPZvBHdwFsDnQeVfnmiuSi TWd4WrZ9wn84f5x1hZhL4DHvk738ns5jwb 2173544428.073
49076870 TWd4WrZ9wn84f5x1hZhL4DHvk738ns5jwb TV6MuMXfmLbBqPZvBHdwFsDnQeVfnmiuSi 2005126503.6518
49665517 T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb TBPxhVAsuzoFnKyXtc1o2UySEydPHgATto 1000000000.0
Design a Mobile Site
View Site in Mobile | Classic
Share by: