bitvora / bitvora-php
A PHP SDK for the Bitvora API
Installs: 149
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/bitvora/bitvora-php
Requires (Dev)
- phpunit/phpunit: ^11.4
- vlucas/phpdotenv: ^5.6
This package is auto-updated.
Last update: 2025-12-17 17:50:07 UTC
README
The Bitvora PHP SDK provides a simple way to interact with the Bitvora API for Bitcoin and Lightning transactions. This SDK supports functionality for handling transactions, deposits, withdrawals, and managing Lightning invoices and addresses.
Installation
You can install the SDK using Composer:
composer require bitvora/bitvora-php
Usage
To use the SDK, initialize the BitvoraClient with the appropriate API key and Network enum (Network::MAINNET or Network::SIGNET), and then call the methods available for each endpoint.
Available Methods and Getters
1. Get Transactions
use Bitvora\Client\BitvoraClient; use Bitvora\Enum\Network; $client = new BitvoraClient(Network::MAINNET, 'API_KEY'); $transactionsResponse = $client->getTransactions(); $transactions = $transactionsResponse->all(); // Returns an array of TransactionResponse objects foreach ($transactions as $transaction) { echo $transaction->getId(); echo $transaction->getAmountSats(); echo $transaction->getStatus(); echo $transaction->getRailType(); }
Available Getters for TransactionResponse:
$transaction->getId(); $transaction->getAmountSats(); $transaction->getRecipient(); $transaction->getStatus(); $transaction->getRailType(); $transaction->isSettled(); $transaction->isPending(); $transaction->isFailed(); $transaction->isPendingApproval(); $transaction->isRejected(); $transaction->isDeposit(); $transaction->isWithdrawal();
2. Get Withdrawal by ID
use Bitvora\Client\BitvoraClient; use Bitvora\Enum\Network; $client = new BitvoraClient(Network::MAINNET, 'API_KEY'); $withdrawalResponse = $client->getWithdrawal('withdrawal_id'); echo $withdrawalResponse->getId(); echo $withdrawalResponse->getAmountSats();
Available Getters for WithdrawalResponse:
$withdrawal->getId(); $withdrawal->getAmountSats(); $withdrawal->getRecipient(); $withdrawal->getStatus(); $withdrawal->getRailType(); $withdrawal->isSettled(); $withdrawal->isPending(); $withdrawal->isFailed();
3. Get Deposit by ID
use Bitvora\Client\BitvoraClient; use Bitvora\Enum\Network; $client = new BitvoraClient(Network::MAINNET, 'API_KEY'); $depositResponse = $client->getDeposit('deposit_id'); echo $depositResponse->getId(); echo $depositResponse->getAmountSats();
Available Getters for DepositResponse:
$deposit->getId(); $deposit->getAmountSats(); $deposit->getRecipient(); $deposit->getStatus(); $deposit->getRailType(); $deposit->isSettled(); $deposit->isPending(); $deposit->isFailed();
4. Get Balance
use Bitvora\Client\BitvoraClient; use Bitvora\Enum\Network; $client = new BitvoraClient(Network::MAINNET, 'API_KEY'); $balanceResponse = $client->getBalance(); echo $balanceResponse->getBalance();
Available Getter for BalanceResponse:
$balanceResponse->getBalance(); // Returns the balance in satoshis.
5. Get Lightning Invoice by ID
use Bitvora\Client\BitvoraClient; use Bitvora\Enum\Network; $client = new BitvoraClient(Network::MAINNET, 'API_KEY'); $lightningInvoiceResponse = $client->getLightningInvoice('invoice_id'); echo $lightningInvoiceResponse->getPaymentRequest();
Available Getters for LightningInvoiceResponse:
$invoice->getId(); $invoice->getMemo(); $invoice->getAmountSats(); $invoice->getPaymentRequest(); $invoice->isSettled();
6. Estimate Withdrawal
use Bitvora\Client\BitvoraClient; use Bitvora\Enum\Currency; use Bitvora\Enum\Network; $client = new BitvoraClient(Network::MAINNET, 'API_KEY'); $estimateResponse = $client->estimateWithdrawal(1000, Currency::BTC(), 'destination_address'); echo $estimateResponse->getAmountSats(); echo $estimateResponse->getFeeSats();
Available Getters for EstimateWithdrawalResponse:
$estimateResponse->getRecipient(); $estimateResponse->getAmountSats(); $estimateResponse->getFeeSats(); $estimateResponse->getSuccessProbability();
7. Create Lightning Invoice
use Bitvora\Client\BitvoraClient; use Bitvora\Enum\Currency; use Bitvora\Enum\Network; $client = new BitvoraClient(Network::MAINNET, 'API_KEY'); $invoiceResponse = $client->createLightningInvoice(1000, Currency::BTC(), 'Invoice for services', 3600); echo $invoiceResponse->getPaymentRequest();
Available Getters for LightningInvoiceResponse:
$invoice->getId(); $invoice->getMemo(); $invoice->getAmountSats(); $invoice->getPaymentRequest(); $invoice->isSettled();
8. Create Lightning Address
use Bitvora\Client\BitvoraClient; use Bitvora\Enum\Network; $client = new BitvoraClient(Network::MAINNET, 'API_KEY'); $lightningAddressResponse = $client->createLightningAddress(); echo $lightningAddressResponse->getAddress();
Available Getters for CreateLightningAddressResponse:
$lightningAddress->getId(); $lightningAddress->getHandle(); $lightningAddress->getDomain(); $lightningAddress->getAddress();
9. Create On-Chain Address
use Bitvora\Client\BitvoraClient; use Bitvora\Enum\Network; $client = new BitvoraClient(Network::MAINNET, 'API_KEY'); $onChainAddressResponse = $client->createOnChainAddress(); echo $onChainAddressResponse->getAddress();
Available Getters for CreateOnChainAddressResponse:
$onChainAddress->getId(); $onChainAddress->getAddress();
10. Confirm Withdrawal
use Bitvora\Client\BitvoraClient; use Bitvora\Enum\Currency; use Bitvora\Enum\Network; $client = new BitvoraClient(Network::MAINNET, 'API_KEY'); $withdrawalResponse = $client->confirmWithdrawal(2100, Currency::SATS(), 'destination_address'); echo $withdrawalResponse->getId(); echo $withdrawalResponse->getStatus();
Available Getters for WithdrawalResponse:
$withdrawal->getId(); $withdrawal->getAmountSats(); $withdrawal->getRecipient(); $withdrawal->getStatus(); $withdrawal->getRailType(); $withdrawal->isSettled(); $withdrawal->isPending(); $withdrawal->isFailed();
License
This SDK is open-sourced software licensed under the MIT license.