Gibt es ein Beispiel dafür, wie man alle Transaktionsdaten für eine Bitcoin-Adresse im JSON-Format erhält?
Sie können die von blockchain.info bereitgestellte API verwenden .
Verwenden Sie zum Beispiel, https://blockchain.info/rawaddr/$bitcoin_address
um alle Transaktionen für eine Adresse im JSON-Format abzurufen.
Wie oben beantwortet, können Sie blockchain.info zum Extrahieren der Ergebnisse verwenden. Hier möchte ich die von m1xolyd1an bereitgestellte Lösung ergänzen, sein Code funktioniert gut, aber er extrahiert nur die letzten 50 Ergebnisse/Transaktionen, die von der Adresse gemacht wurden, für die Sie versuchen, die Daten abzurufen.
Um die vollständigen Details der Transaktion von Anfang an zu extrahieren, müssen einige kleinere Änderungen am Code vorgenommen werden. Unten ist meine Lösung
<?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>";
}
}
?>
Ihre Frage ist mit blockchain.info getaggt , sodass Sie einfach den Endpunkt verwenden könnenhttps://blockchain.info/address/1ADDRESSTOLOOKUPGOESHERE?format=json
Die Ausgabe liefert eine anfängliche Zusammenfassung der Adresse, gefolgt von jeder Transaktion im txs[]
Array mit allen Eingaben und Ausgaben. Sie haben auch ein Beispiel angefordert, daher finden Sie unten eine Snippet-Antwort.
{
"hash160":"eaad40023319c547321b63f8adc6cc5a11759c61",
"address":"1NPrfWgJfkANmd1jt88A141PjhiarT8d9U",
"n_tx":159,
"total_received":261352990,
"total_sent":259703473,
"final_balance":1649517,
"txs":[
{
"ver":1,
"inputs":[
{
"sequence":4294967295,
"prev_out":{
"spent":true,
"tx_index":221676260,
"type":0,
"addr":"19hNEoHRGb2wDpxWGgDEDwaoHdEfKjZwWx",
"value":3214191,
"n":20,
"script":"76a9145f635f8cf8ad279cd74eb24a44cd128973e00a0e88ac"
},
"script":"47304402207edc4373fbb9a01ac6e07eb88f91c7008e2ed951603a3ce03393d2bf7e99bcbd022060963067a9559cc8b140136dc4f78819731260151ed9d81c19c25ffd8df42b7a01410497e0923c9b2ea5261733f81fa83333d25373db3feae91e15ae42f5347e8f65080c90b33cba4470e5eabec06db30a57b4017ad3588a26722e36249eb5c6679a39"
}
],
"block_height":454724,
"relayed_by":"87.128.111.190",
"out":[
{
"addr_tag_link":"http:\/\/wearechange.org\/donate\/",
"addr_tag":"wearechange.org",
"spent":false,
"tx_index":225606846,
"type":0,
"addr":"12HdLgeeuA87t2JU8m4tbRo247Yj5u2TVP",
"value":166948,
"n":0,
"script":"76a9140e1d1da1fc5bb5165a54a4d9ecefbc8458bae3d388ac"
}
],
Angenommen, Sie verwenden PHP und möchten alle Transaktionen für eine bestimmte Adresse abrufen und anzeigen. Sie würden die API aufrufen und dann jede im Array durchlaufen.
http://ppfiddle.org/main/code/e4jy-rrqt
<?php
$address = "1NPrfWgJfkANmd1jt88A141PjhiarT8d9U";
$url = "https://blockchain.info/address/".$address."?format=json";
$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<$totalTxs;$i++){
echo "<table><tr><td width='550'>";
echo "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 "<button style='background-color:red;'>". rtrim(number_format($inValueCalc, 8), '0') ."</button><a href='#'>". $inAddy ."</a>";
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 "<button style='background-color:green;'>". rtrim(number_format($outValueCalc, 8), '0') ."</button><a href='#'>". $outAddy ."</a>";
echo "<br>";
}
echo "</td></tr></table>";
}
?>
Sie können die Blockr- API verwenden.
http://btc.blockr.io/api/v1/address/txs/the_address
Wo the_address
ist die Adresse, über die Sie Informationen suchen?
Dies ist jedoch auf die 200 letzten Transaktionen beschränkt.
Hier haben Sie ein einfaches Python-Beispiel , das dies tut:
from json import loads
from requests import get
url = 'http://btc.blockr.io/api/v1/address/txs/'
btc_addr = '36YKytAqTfq5FbjrBqMwnEdS62eZjB7DV6'
r = get(url + btc_addr)
data = loads(r.content)['data']
print data
Wo 36YKytAqTfq5FbjrBqMwnEdS62eZjB7DV6
ist eine zufällig ausgewählte Adresse. Das Ergebnis wird sein:
{u'txs':[
{u'time_utc': u'2017-03-03T08:22:57Z', u'amount': 5, u'confirmations': 4, u'amount_multisig': 0,
u'tx': u'fc8bd6d4bff2c5c07f82939cbf798f4442226f39b607353fe8355cf3170d67b7'},
{u'time_utc': u'2017-01-03T17:14:19Z', u'amount': -10, u'confirmations': 9084, u'amount_multisig': 0,
u'tx': u'daa9f8c25ce09240a02df1ac56122bb014eb9f6abe5a22bbfe04ee4fa1afb9cc'},
{u'time_utc': u'2017-01-03T11:10:21Z', u'amount': 10, u'confirmations': 9129, u'amount_multisig': 0,
u'tx': u'13362f7a746cfe6481e08155d778bba69c8db706673b99239762f5dca14f18f4'}
], u'limit_txs': 200, u'nb_txs': 3, u'nb_txs_displayed': 3, u'address': u'36YKytAqTfq5FbjrBqMwnEdS62eZjB7DV6'}
bicoin api - listreceivedbyaddress(minconf,include_empty,include_watchonly,address_filter)
return json:
[
{
address: '37ngGpLcqbgU3Bov8hjMSzgqBKfLyB3f9r',
amount: 0.0003039,
confirmations: 92,
label: '',
txids: [
'76acd9e2b7b79f68c9a4a3a4a5cce3528ee8ae6d383aed069bf03d5e95408ec7'
]
}
]
Ich konnte die Transaktionen UND die gesamten BTC, die pro Transaktion eingegangen sind, nicht mit den Ratschlägen auf Seiten wie dieser abrufen . Zum Glück bin ich darüber gestolpert, was es wunderbar löst:
$address = 'YOUR BTC ADDRESS';
$transaction_list=array();
$satoshi=100000000;
$txnlist=file_get_contents("https://blockchain.info/rawaddr/".$address);
if($txnlist)
{
$txnlist=json_decode($txnlist,true);
if($txnlist && isset($txnlist['txs']) && $txnlist['txs'])
{
$txns=$txnlist['txs'];
foreach($txns as $txn)
{
$amount=$txn['result']/$satoshi;
$time=$txn['time'];
$hash=$txn['hash'];
$transaction_list[]=array(
'amount'=>$amount,
'hash'=>$hash,
'time'=>$time
);
}
}
$data['address']=$txnlist['address'];
$data['total_txn']=$txnlist['n_tx'];
$data['total_received']=$txnlist['total_received']/$satoshi;
$data['total_sent']=$txnlist['total_sent']/$satoshi;
$data['final_balance']=$txnlist['final_balance']/$satoshi;
$data['transaction_list']=$transaction_list;
}
print '<pre>';
print_r($data);
die();
Das Ergebnis:
(
[address] => XXXXXXXX
[total_txn] => 2
[total_received] => 0.00917981
[total_sent] => 0
[final_balance] => 0.00917981
[transaction_list] => Array
(
[0] => Array
(
[amount] => 0.00298651
[hash] => XXXXXXX
[time] => 1235576379
)
[1] => Array
(
[amount] => 0.0061933
[hash] => XXXXXXXXXX
[time] => 1632561967
)
)
)
Patoshi パトシ
Nikhil Jain