Popularity
0.7
Growing
Activity
4.5
Declining
1
1
2

Programming language: Go
Tags: API     Web Frameworks     Client     Package     Library     Bitcoin     Electrum    

Electrum JSON RPC Client alternatives and similar packages

Based on the "Web Frameworks" category

Do you think we are missing an alternative of Electrum JSON RPC Client or a related project?

Add another 'Web Frameworks' Package

README

Electrum JSON RPC Client

Build Status Go Report Card GoDoc [License MIT](LICENSE)

Note: The library does not have implementations of all Electrum RPC resources[WIP]. PRs for new resources and endpoints are welcome, or you can simply implement some yourself as-you-go.

Preposition

1. Install Electrum and create a wallet

2. Set RPC port

By default, it's random port - set it to any port you want

./run_electrum setconfig rpcport 7777

3. Set user and password for RPC

./run_electrum setconfig rpcuser user
./run_electrum setconfig rpcpassword password

4. Run Electrum as daemon

./run_electrum daemon start

If you want to start in testnet mode

./run_electrum --testnet daemon start

5. Load daemon wallet

./run_electrum daemon load_wallet

If daemon is running in testnet, you need to specify to load testnet wallet

./run_electrum --testnet daemon load_wallet

Now you have a local Electrum JSON RPC server running - congrats 🥳

If you need to stop it, use

./run_electrum daemon stop

or if running in testnet

./run_electrum --testnet daemon stop

Install

go get github.com/MarinX/electrumrpc

Use

import "github.com/MarinX/electrumrpc"

Example

You can find more in electrumrpc_test.go

// httpClient is optional
// if nil, the http.DefaultClient will be used
client := electrumrpc.New("<rpc-user>", "<rpc-password>", "<rpc-endpoint>", nil)

// Call RPC methods
ver, err := client.Version()
if err != nil {
    //handle error
    panic(err)
}
fmt.Println("Electrum version:", ver)

Not all endpoints are implemented right now. In those case, you can use Call method and point your model

var rpcResponse string
err := client.Call("version", nil, &rpcResponse)
if err != nil {
    fmt.Println(err)
    return
}
fmt.Println("Electrum version:", rpcResponse)

Available RPC methods

RPC Method Available
version ✅
getaddressbalance ✅
getbalance ✅
validateaddress ✅
getservers ✅
createnewaddress ✅
getunusedaddress ✅
ismine ✅
gettransaction ✅
getseed ✅
listaddresses ✅
addrequest ✅
rmrequest ✅
clearrequests ✅
getrequest ✅
getfeerate ✅
signmessage ✅
verifymessage ✅

Contributing

PR's are welcome. Please read CONTRIBUTING.md for more info

License

MIT


*Note that all licence references and agreements mentioned in the Electrum JSON RPC Client README section above are relevant to that project's source code only.