I want to calculate the fees of a blocktrail transaction with blocktrail SDK, before making the transaction, in order to let the recipient pay fees.

Here is what I tried:

$FEES = $wallet->coinSelection(\Blocktrail\SDK\Wallet::normalizeOutputsStruct(['66f4dec6ab29cd056ce1814c6fdfee05e1524b36' =>'100000']),false,false,\Blocktrail\SDK\Wallet::FEE_STRATEGY_LOW_PRIORITY;
echo "$FEES";
$fee = $FEES['fee'];
echo "$fee";

But this don't work, it says this: Fatal error: Uncaught Blocktrail\SDK\Exceptions\BlocktrailSDKException: Address not recognized

How can I fix this error?

3 Answers 3


I am not sure as have not used their api system but it could be down to the format of your bitcoin address you are passing in.

66f4dec6ab29cd056ce1814c6fdfee05e1524b36 is read as a valid bitcoin address using this service

However when I search that address under a block explorer I get the following address which starts with the more common 1 1APPGSyMsPaBUAHtjEm6tPqV9U54JRzmd6

66f is not a start of a bitcoin address i recognise, though there are many out but no mention on the wiki

Thus I would suggest trying your code with the more common bitcoin address format

$FEES = $wallet->coinSelection(\Blocktrail\SDK\Wallet::normalizeOutputsStruct(['1APPGSyMsPaBUAHtjEm6tPqV9U54JRzmd6' =>'100000']),false,false,\Blocktrail\SDK\Wallet::FEE_STRATEGY_LOW_PRIORITY['fee'];
echo "$FEES";

And see if that works

  • Thanks for reply, but it still don't work, same error Commented Jul 29, 2018 at 12:51
  • hmm One thing I would want to verify next would be that the coinSelection part of your code is definitely choosing bitcoin?
    – Fuzzybear
    Commented Jul 29, 2018 at 12:56
  • Yes, it is bitcoin, the only thing is that I'm using the bitcoin testnet, that I have initialized before, $client = new BlocktrailSDK("api", "api", "BTC", true); Commented Jul 29, 2018 at 12:59
  • 66f4dec6ab29cd056ce1814c6fdfee05e1524b36 is a bitcoin test net address Commented Jul 29, 2018 at 13:04
  • might be you need to specify the testnet on the fee transaction as well... what are the false,false parts submitted after the address? though i would have expected that to have worked with the bitcoin address starting with the 1. So not sure, have you tried speaking directly to their support?
    – Fuzzybear
    Commented Jul 29, 2018 at 14:13

66f4dec6ab29cd056ce1814c6fdfee05e1524b36 is not a valid Bitcoin address.

Valid Bitcoin addresses on mainnet start with a 1 (P2PKH), 3 (P2SH), or bc1 (segwit).

On testnet, the addresses start with m or n (P2PKH), 2 (P2SH), or tb1 (segwit).


after init wallet

$wallet = $client->initWallet("WALLET", "PASS");

You can force a fee. I don't know if that will serve you.

$fee = 0.0001;

$wallet->pay(array("address" => BlocktrailSDK::toSatoshi(0.00200000)), null, false, false, Wallet::FEE_STRATEGY_FORCE_FEE, BlocktrailSDK::toSatoshi($fee));

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.