PHPackages                             boomuo/php-electrum-api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. boomuo/php-electrum-api

ActiveLibrary

boomuo/php-electrum-api
=======================

PHP wrapper for Electrum JSONRPC-API

0385↓100%PHP

Since May 23Pushed 2y agoCompare

[ Source](https://github.com/boomuo/php-electrum-api)[ Packagist](https://packagist.org/packages/boomuo/php-electrum-api)[ RSS](/packages/boomuo-php-electrum-api/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

[![Packagist](https://camo.githubusercontent.com/84751d550349cfc6fc02774bf18440529ecac282e044e35b8338e2cfc1b6cb9f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f70616472696f2f7068702d656c65637472756d2d6170692e7376673f636f6c6f723d253233346331)](https://camo.githubusercontent.com/84751d550349cfc6fc02774bf18440529ecac282e044e35b8338e2cfc1b6cb9f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f70616472696f2f7068702d656c65637472756d2d6170692e7376673f636f6c6f723d253233346331)[![GitHub code size in bytes](https://camo.githubusercontent.com/913a50be2374a1c86accd623ce25c04fd678321de71ba7ed1a9f5b1d9f4640f7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f636f64652d73697a652f70616472696f2f7068702d656c65637472756d2d6170692e7376673f636f6c6f723d253233346331)](https://camo.githubusercontent.com/913a50be2374a1c86accd623ce25c04fd678321de71ba7ed1a9f5b1d9f4640f7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f636f64652d73697a652f70616472696f2f7068702d656c65637472756d2d6170692e7376673f636f6c6f723d253233346331)

php-electrum-api - Electrum library
===================================

[](#php-electrum-api---electrum-library)

```
Licence: GPL-3.0
Author: Pascal Krason
Language: PHP 5.6-7.1

```

Please note, this library is by far not completed and but can be used in production. Until now i only implemented the most commonly used API-Calls. If you think im missing something, just create an issue or fork the project.

Setting up Electrum
===================

[](#setting-up-electrum)

First you need to setup a new Electrum wallet. Follow the instructions according to your OS at the [Electrum Download Page](https://electrum.org/#download). After the successfull installation you need to set a rpcport by typing:

```
electrum setconfig rpcport 7777
electrum setconfig rpcuser "username"
electrum setconfig rpcpassword "password"

```

Then we can create a default wallet, dont forget to note your generated seed, it's nescessary if you want to recover it one day:

```
electrum create

```

Now we can go ahead and start Electrum in daemon mode:

```
electrum daemon start

```

Since some new version electrum wants you to load your wallet by hand on startup:

```
electrum daemon load_wallet

```

Requirements
============

[](#requirements)

On the PHP side there are not much requirements, you only need at least PHP 5.6 and the curl-Extension installed. Then you can go ahead ans it through [Composer](http://getcomposer.org) which will do everything else for you.

Install
=======

[](#install)

First you need to install [Composer](https://getcomposer.org/doc/00-intro.md), after you accomplished this you can go ahead:

```
composer require boomuo/php-electrum-api

```

Then you can simply include the autoloader and begin using the library:

```
// Include composer autoloader
require_once 'vendor/autoloader.php';
```

Examples
========

[](#examples)

Basic example
-------------

[](#basic-example)

A very basic useage example. Every API-Call has it's own request-object. You simply create one and execute it.

```
$method = new \Electrum\Request\Method\Version();

try {
    $response = $method->execute();
} catch(\Exception $exception) {
    die($exception->getMessage());
}

$response->getVersion();
```

Create new wallet
-----------------

[](#create-new-wallet)

Create default wallet:

```
    $client = new \Electrum\Client('http://127.0.0.1', 7777, 0, 'user', 'password');
    $wallet = new \Electrum\Request\Method\Wallet\CreateWallet($client);
    $response = $wallet->execute();
```

This code is similar to the command:

```
$ electrum create
```

You can also create more wallets with custom names specifying flag of the new wallet.

```
    $client = new \Electrum\Client('http://127.0.0.1', 7777, 0, 'user', 'password');
    $wallet = new \Electrum\Request\Method\Wallet\CreateWallet($client);
    $response = $wallet->execute(['wallet_path' => '~/.electrum/wallets/your_wallet']);
```

This code is similar to the command:

```
$ electrum create -w ~/.electrum/wallets/your_wallet
```

Response will be:

```
[
    'seed' => 'wallet seed',
    'path' => 'path where wallet file is stored',
    'msg'  => 'Please keep your seed in a safe place; if you lose it, you will not be able to restore your wallet.',
];
```

Load wallet
-----------

[](#load-wallet)

```
    $client = new \Electrum\Client('http://127.0.0.1', 7777, 0, 'user', 'password');
    $load_wallet = new \Electrum\Request\Method\Wallet\LoadWallet($client);
    $load_wallet->execute(['wallet_path' => '~/.electrum/wallets/your_wallet']);
```

List wallets
------------

[](#list-wallets)

Get list of all loaded wallets:

```
    $client = new \Electrum\Client('http://127.0.0.1', 7777, 0, 'user', 'password');
    $list_wallets = new \Electrum\Request\Method\Wallet\ListWallets($client);
    $list_wallets->execute();
```

Get new address
---------------

[](#get-new-address)

```
    $client = new \Electrum\Client('http://127.0.0.1', 7777, 0, 'user', 'password');
    $wallet = new \Electrum\Request\Method\Payment\AddRequest($client);
    $tx     = $wallet->execute();
    echo $tx->getAddress();
```

Create new address for wallet
-----------------------------

[](#create-new-address-for-wallet)

```
    $client = new \Electrum\Client('http://127.0.0.1', 7777, 0, 'user', 'password');
    $newAddress = new \Electrum\Request\Method\Address\CreateNewAddress($client);
    $newAddress->execute(['wallet'  => '~/.electrum/wallets/your_wallet']);
```

Make a new Payment
------------------

[](#make-a-new-payment)

```
    $client = new \Electrum\Client('http://127.0.0.1', 7777, 0, 'user', 'password');
    $method = new \Electrum\Request\Method\Payment\PayTo($client);
    $method->setDestination('BTC4ddress1234'); //Destination parameter is the address where we'll send the btc
    $method->setAmount(1); //send 1 BTC = 10k usd

    $tx = $method->execute(); //$tx returns the transaction ID of the payment, this is still not sent to the blockchain
    /**
    * @param array ['password' => '']
    * If the Electrum wallet is encrypted with a password use the following execute method instead
    * The previous one will return an error of "Password required"
    */
    //$tx = $method->execute(['password' => 'myPass123']); //

    $broadcast = new Electrum\Request\Method\Payment\Broadcast($client);
    $broadcast->setTransaction($tx);
    $result = $broadcast->execute(); //broadcasts payment to the blockchain
    echo $result;

    A payment has been made

```

Custom Client Configuration
---------------------------

[](#custom-client-configuration)

Every Request/Method takes a `Electrum\Client`-instance as parameter which replaces the default one. A custom instance can be usefull if you want to set custom config params like another Hostname or Port.

```
$client = new \Electrum\Client('http://127.0.0.1', 7777, 0, 'username', 'password');
$method = new \Electrum\Request\Method\Version($client);

try {
    $response = $method->execute();
} catch (\Exception $exception) {
    die($exception->getMessage());
}

$response->getVersion();
```

Advanced exception handling
---------------------------

[](#advanced-exception-handling)

Dealing with exceptions is easy. You can catch two types of exceptions which indicates whether it's an Request or Response fault.

```
$method = new \Electrum\Request\Method\Version();

try {
    $response = $method->execute();
} catch (\Electrum\Request\Exception\BadRequestException $exception) {
    die(sprintf(
        'Failed to send request: %s',
        $exception->getMessage()
    ));
} catch(\Electrum\Response\Exception\BadResponseException $exception) {
    die(sprintf(
        'Electrum-Client failed to respond correctly: %s',
        $exception->getMessage()
    ));
}
```

###  Health Score

18

—

LowBetter than 8% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity22

Early-stage or recently created project

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/20eb6c9e1d2333645aef7ee2b84bf94f6af2c583f7923afd99273b21f58ea3ed?d=identicon)[boomuo](/maintainers/boomuo)

---

Top Contributors

[![Padrio](https://avatars.githubusercontent.com/u/3200139?v=4)](https://github.com/Padrio "Padrio (11 commits)")[![epoxa](https://avatars.githubusercontent.com/u/9610552?v=4)](https://github.com/epoxa "epoxa (5 commits)")[![LordS4me](https://avatars.githubusercontent.com/u/6563861?v=4)](https://github.com/LordS4me "LordS4me (3 commits)")[![boomuo](https://avatars.githubusercontent.com/u/19392216?v=4)](https://github.com/boomuo "boomuo (2 commits)")[![zorn-v](https://avatars.githubusercontent.com/u/12619075?v=4)](https://github.com/zorn-v "zorn-v (2 commits)")[![oasin](https://avatars.githubusercontent.com/u/31675779?v=4)](https://github.com/oasin "oasin (1 commits)")[![kbgod](https://avatars.githubusercontent.com/u/33161857?v=4)](https://github.com/kbgod "kbgod (1 commits)")[![09923554971](https://avatars.githubusercontent.com/u/87097637?v=4)](https://github.com/09923554971 "09923554971 (1 commits)")[![reinaldoacosta](https://avatars.githubusercontent.com/u/12644557?v=4)](https://github.com/reinaldoacosta "reinaldoacosta (1 commits)")[![thebigben](https://avatars.githubusercontent.com/u/35976104?v=4)](https://github.com/thebigben "thebigben (1 commits)")

### Embed Badge

![Health badge](/badges/boomuo-php-electrum-api/health.svg)

```
[![Health](https://phpackages.com/badges/boomuo-php-electrum-api/health.svg)](https://phpackages.com/packages/boomuo-php-electrum-api)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
