[C#] 如何使用 TRONGRID API 抓取 USDT TRC20 持有者名單

2024-11-13

朋友問我說他有沒有辦法去追蹤一些錢包動態,關於在 TRC20 上面關於 USDT 操作

第一步,他先問我有沒有辦法抓到全部的錢包,我後來上網找一下,好像可以抓到目前基於某 Contract 

抓取他的 holders ,這次當然直接實驗目標就是我們的 USDT Contract : TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t


查了一下,發現其實 trongrid 是有這 API  的,就趁這機會測試一下

文件位置 : https://docs.tronscan.org/api-endpoints/tokens

不難按照文件去寫可以可以拿到答案,只是要花點時間去看一下結構,不過比較麻煩的是他最多一次只能拿 50 個,然後最多只能拿到 Top 10,000

這點比較麻煩,不過就筆記一下,之後要去抓夠多細節的東西,我們後面有機會在繼續研究

// USDT TRC20 合约地址 string contractAddress = "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"; // Tronscan API URL var i = 1; try { Console.WriteLine("--- Top 10,000 資料---"); for (var count = 50; count <= 10_000; count+=50) { var apiUrl = $"https://apilist.tronscanapi.com/api/token_trc20/holders?start={count-50}&limit={count}&contract_address={contractAddress}&holder_address="; var client = new RestClient(apiUrl); var request = new RestRequest("", Method.Get); var response = client.Execute(request); if (response.IsSuccessful) { JObject parsedJson = JObject.Parse(response.Content); var tokens = parsedJson["trc20_tokens"]; foreach (var token in tokens) { Console.WriteLine("TOP "+i + "-" + "錢包位置:" + token["holder_address"].ToString() + ", USDT: " + (((decimal)token["balance"]) / 1_000_000).ToString()); i++; } } else { Console.WriteLine($"{response.StatusCode}, Error: {response.Content}"); } } } catch (Exception ex) { Console.WriteLine($"Error: {ex.Message}"); }


Result:


大概就先筆記到這看之後有遇到啥我在繼續記錄..



當麻許的碎念筆記 2014 | Donma Hsu Design.