/**
  * Helper method for getting an APIContext for all calls (getting config from array)
  * @param string $token
  * @param string $version v1
  * @param string $coin btc|doge|ltc|uro|bcy
  * @param string $chain main|test3|test
  * @return ApiContext
  */
 private function getApiContextUsingConfigArray($token, $chain = 'main', $coin = 'btc', $version = 'v1')
 {
     $credentials = new SimpleTokenCredential($token);
     $config = array('mode' => 'sandbox', 'log.LogEnabled' => true, 'log.FileName' => $this->logDir . DIRECTORY_SEPARATOR . 'BlockCypher.log', 'log.LogLevel' => 'DEBUG', 'validation.level' => 'disabled');
     $apiContext = ApiContext::create($chain, $coin, $version, $credentials, $config);
     ApiContext::setDefault($apiContext);
     return $apiContext;
 }
 public function setUp()
 {
     parent::SetUp();
     self::$walletName = 'alice';
     $className = $this->getClassName();
     $sampleName = substr($className, 0, -4);
     $this->url = self::baseUrl() . basename(__DIR__) . '/' . $sampleName . '.php';
     $apiContext = ApiContext::create('main', 'btc', 'v1', new SimpleTokenCredential('c0afcccdde5081d6429de37d16166ead'), array('log.LogEnabled' => true, 'log.FileName' => 'BlockCypher.log', 'log.LogLevel' => 'DEBUG'));
     $this->deleteWalletIfExists('alice', $apiContext);
 }
<?php

// Run on console:
// php -f .\sample\wallet-api\GenerateAddressInHDWalletEndpoint.php
require __DIR__ . '/../bootstrap.php';
use BlockCypher\Auth\SimpleTokenCredential;
use BlockCypher\Client\HDWalletClient;
use BlockCypher\Rest\ApiContext;
$apiContext = ApiContext::create('main', 'btc', 'v1', new SimpleTokenCredential('c0afcccdde5081d6429de37d16166ead'), array('mode' => 'sandbox', 'log.LogEnabled' => true, 'log.FileName' => 'BlockCypher.log', 'log.LogLevel' => 'DEBUG'));
$walletClient = new HDWalletClient($apiContext);
$hdWalletGenerateAddressResponse = $walletClient->generateAddress('bob');
ResultPrinter::printResult("Generate Address in a HDWallet", "HDWalletGenerateAddressResponse", $walletName, null, $hdWalletGenerateAddressResponse);