Transactions

如何以 JSON 格式獲取比特幣地址的輸入/輸出交易列表?

  • November 1, 2021

有沒有一個例子說明如何以 json 格式獲取比特幣地址的所有交易數據?

您可以使用blockchain.info提供的 api。

例如https://blockchain.info/rawaddr/$bitcoin_address,用於以 JSON 格式獲取地址的所有交易。

如上所述,您可以使用 blockchain.info 來提取結果。在這裡,我想添加到 m1xolyd1an 提供的解決方案中,他的程式碼工作正常,但它僅提取您嘗試檢索數據的地址所做的最新 50 個結果/交易。

為了從一開始就提取交易的完整細節,必須對程式碼進行一些小的調整。以下是我的解決方案

<?php
$address = $_POST['Address'];
$url = "https://blockchain.info/address/".$address."?format=json&offset=0";
$json = json_decode(file_get_contents($url), true);

$totalTxs = $json["n_tx"];
echo "Total transaction : $totalTxs";
for($ex=0;$ex<$totalTxs;$ex+=50){
//$address = "1HB5XMLmzFVj8ALj6mfBsbifRoD4miY36v";
$url = "https://blockchain.info/address/".$address."?format=json&offset=$ex";
$json = json_decode(file_get_contents($url), true);

//total transactions
$totalTxs = $json["n_tx"];
//final balance
$balanceSatoshis = $json["final_balance"];
$balanceBitcoins = $balanceSatoshis / 100000000;
$balanceBitcoins = number_format($balanceBitcoins, 8);

//loop through each transaction and display all inputs and outs
for($i=0;$i<50;$i++){

echo "<table><tr><td>";
echo "HASH OF TX:</br>";
$hash=$json["txs"][$i]["hash"];
echo " ".$hash;

echo "</td><td width='550'>SENT FROM:<br>";
$n_inputs = count($json["txs"][$i]["inputs"]);  

for($ii = 0; $ii < $n_inputs; $ii++){   
   $inValue = $json["txs"][$i]["inputs"][$ii]["prev_out"]["value"];    
   $inValueCalc = $inValue / 100000000;    
   $inAddy = $json["txs"][$i]["inputs"][$ii]["prev_out"]["addr"];  
   echo " ". rtrim(number_format($inValueCalc, 8), '0') ." ". $inAddy ." "; 
   echo "<br>";
   }   

echo "</td><td>SENT TO:<br>";
$n_outputs = count($json["txs"][$i]["out"]);    

for($io = 0; $io < $n_outputs; $io++){  
   $outValue = $json["txs"][$i]["out"][$io]["value"];  
   $outValueCalc = $outValue / 100000000;  
   $outAddy = $json["txs"][$i]["out"][$io]["addr"];    
   echo " ". rtrim(number_format($outValueCalc, 8), '0') ." ". $outAddy ." ";   
   echo "<br>";    
   }   
echo "</td></tr></table>";
}
}
?>

引用自:https://bitcoin.stackexchange.com/questions/51794