1. Go to this page and download the library: Download headzoo/bitcoin-wallet-api library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
headzoo / bitcoin-wallet-api example snippets
use Headzoo\Bitcoin\Wallet\Api\JsonRPC;
use Headzoo\Bitcoin\Wallet\Api\Wallet;
use Headzoo\Bitcoin\Wallet\Api\RPCException;
// These configuration settings must match those from the bitcoin.conf file.
$conf = [
"user" => "testuser",
"pass" => "testpass",
"host" => "127.0.0.1",
"port" => 9332
];
// Begin by creating a Wallet instance, which needs an instance of JsonRPC passed to it's constructor.
$wallet = new Wallet(new JsonRPC($conf));
try {
// Get some basic information from the wallet.
$info = $wallet->getInfo();
print_r($info);
} catch (RPCException $e) {
echo $e->getTraceAsString();
die();
}
// Example output:
// [
// "version" => 90000,
// "protocolversion" => 70002,
// "walletversion" => 60000,
// "balance" => 6.02730425,
// "blocks" => 292075,
// "timeoffset" => -1,
// "connections" => 65,
// "proxy" => "",
// "difficulty" => 4250217919.86953540,
// "testnet" => false,
// "keypoololdest" => 1387569300,
// "keypoolsize" => 101,
// "paytxfee" => 0,
// "mininput" => 0.00100000,
// "unlocked_until" => 0,
// "errors" => ""
// ]
try {
// Get information about a specific block from the block chain.
$block = $wallet->getBlock("00000000000000005242ff2ddc9a407d67632ae7ee97f8c472358931b8bfc679");
print_r($block);
} catch (RPCException $e) {
echo $e->getTraceAsString();
die();
}
// Example output:
// [
// "hash" => "00000000000000005242ff2ddc9a407d67632ae7ee97f8c472358931b8bfc679",
// "confirmations" => 6,
// "size" => 76575,
// "height" => 292068,
// "version" => 2,
// "merkleroot" => "2520dd58da8b7e8d9f416db0c2d6669e63eb722a6bc6c344abfcfe64ac0ab024",
// "tx" => [
// "38c78866705c623615c502f13dff5da60cdfee74ec77025bbc0cd419b215bf5d",
// "46f551c0ba5822410c2349c6114dfb668adab827180eb5489a289b940e996682"
// ],
// "time" => 1395587882,
// "nonce" => 1796742204,
// "bits" => "190102b1",
// "difficulty" => 4250217919.86953540,
// "chainwork" => "000000000000000000000000000000000000000000002c6e31ad55d7fe8c8665",
// "previousblockhash" => "0000000000000000fa0424195c23ca1078d04011796f382778f211bde0a08ae5",
// "nextblockhash" => "0000000000000000c965941f8821c858c882414f0819aeccf1593076f97cb150"
// ]
// Signing a message using an address from the wallet, and then verifying the signature.
$address = "16sycWcsHDM1iedeLs11jDmryqHwsz8Bfd";
$message = "Mary had a little lamb.";
try {
// Encrypted wallets must be unlocked first.
$wallet->unlock("asd3sd945DS3a8D");
$signature = $wallet->signMessage($address, $message);
var_dump($signature);
} catch (RPCException $e) {
echo $e->getTraceAsString();
die();
}
// Example output:
// "IEE8F4Idkqt/q4qN4dXrMQBwrpetyrbAtPYptw+PM8As+XhSjo3qedsrlCccjaX7W+Gm9uXFz/MfLonwObgJkYw="
try {
$is_valid = $wallet->isSignedMessageValid($address, $signature, $message);
var_dump($is_valid);
} catch (RPCException $e) {
echo $e->getTraceAsString();
die();
}
// Example output:
// bool(true)
use Headzoo\Bitcoin\Wallet\Api\RPCPool;
use Headzoo\Bitcoin\Wallet\Api\JsonRPC;
use Headzoo\Bitcoin\Wallet\Api\RPCException;
// Start by creating a new pool, adding JsonRPCInterface instances to it, and then pass the pool
// to the Wallet constructor.
$conf = [
"wallet1" => [
"user" => "testnet",
"pass" => "testnet",
"host" => "localhost",
"port" => 9332
],
"wallet2" => [
"user" => "testnet",
"pass" => "testnet",
"host" => "localhost",
"port" => 9333
]
];
$pool = new RPCPool();
$pool->add(new JsonRPC($conf["wallet1"]));
$pool->add(new JsonRPC($conf["wallet2"]));
$wallet = new Wallet($pool);
// A different server will be chosen by the pool for each method call.
try {
$info = $wallet->getInfo();
$balance = $wallet->getBalance();
$accounts = $wallet->getAccounts();
} catch (Headzoo\Bitcoin\Wallet\Api\RPCException $e) {
echo $e->getTraceAsString();
die();
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.