qtool
provides tools for handling crypto objects (like addresses
, keys
and scriptPubKey
) using qtum specific parameters.
The qtool
web UI is available at qtool.qtum.info
-
Command line appllication to run qtool utilities
-
Available commands
convertaddress Converts a legacy address from one encoding to another convertprivkey Converts the encoding of a ECDSA private key getaddrfromprivkey Gets a base 58 address from a given private key p2pktoaddr Gets the b58 encoded address from a p2pk script Flags: -b, --blockchain string blockchain: "qtum" or "btc" (default "qtum") -h, --help help for qtool -n, --network string network type: "testnet" or "mainnet" (default "mainnet") -v, --verbose verbose output --version version for qtool
-
Detailed qtool-cli command info
-
Usage:
Building
qtool-cli
make build-cli
Converting
private key
format fromb58
tohex
:$ qtool convertprivkey cMbgxCJrTYUqgcmiC1berh5DFrtY1KeU4PXZ6NZxgenniF1mXCRk -f b58 > Result: 00821d8c8a3627adc68aa4034fea953b2f5da553fab312db3fa274240bd49f35
Converting
address
format to fromb58
tohex
$ qtool convertaddress qUbxboqjBRp96j3La8D1RYkyqx5uQbJPoW -f b58 > Result: 7926223070547d2d15b2ef5e7383e541c338ffe9
Getting
address
fromprivate key
:$ qtool getaddrfromprivkey cMbgxCJrTYUqgcmiC1berh5DFrtY1KeU4PXZ6NZxgenniF1mXCRk -n testnet -b qtum -f b58 > Result: qUbxboqjBRp96j3La8D1RYkyqx5uQbJPoW
-
web server that exposes all
qtool
utilities via a JSON-RPC api -
starting
qtool-api
on a docker container (listening on port 8080)make run-api
-
Available endpoints
/privatekey
❯ curl -X POST -d '{"jsonrpc":"2.0","id":1,"method":"convertprivkey","params":{"data":"00821d8c8a3627adc68aa4034fea953b2f5da553fab312db3fa274240bd49f35","format":"hex","network":"testnet", "blockchain":"qtum"}}' https://qtool.qtum.info/api/privatekey { "jsonrpc": "2.0", "result": { "privKey": "cMbgxCJrTYUqgcmiC1berh5DFrtY1KeU4PXZ6NZxgenniF1mXCRk" }, "error": null, "id": 1 }
/address
❯ curl -X POST -d '{"jsonrpc":"2.0","id":1,"method":"convertaddress","params":{"data":"qUbxboqjBRp96j3La8D1RYkyqx5uQbJPoW","format":"b58","network":"testnet", "blockchain":"qtum"}}' https://qtool.qtum.info/api/address { "jsonrpc": "2.0", "result": { "address": "7926223070547d2d15b2ef5e7383e541c338ffe9" }, "error": null, "id": 1 }
/script
❯ curl -X POST -d '{"jsonrpc":"2.0","id":1,"method":"getaddressfromscriptpubKey","params":{"data":"210299d391f528b9edd07284c7e23df8415232a8ce41531cf460a390ce32b4efd112ac","network":"testnet", "blockchain":"qtum"}}' https://qtool.qtum.info/api/script { "jsonrpc": "2.0", "result": { "scriptPubKey": { "hex": "210299d391f528b9edd07284c7e23df8415232a8ce41531cf460a390ce32b4efd112ac", "asm": "0299d391f528b9edd07284c7e23df8415232a8ce41531cf460a390ce32b4efd112 OP_CHECKSIG" }, "pubKey": "0299d391f528b9edd07284c7e23df8415232a8ce41531cf460a390ce32b4efd112", "addressHex": "7926223070547d2d15b2ef5e7383e541c338ffe9", "addressBase58": "qUbxboqjBRp96j3La8D1RYkyqx5uQbJPoW" }, "error": null, "id": 1 }
-
API specs
(TBD)
- golang pkg that implements
qtool
utilities
qtool
|
|-- qtool-api // code base for the qtool JSON-RPC api server
|-- qtool-cli // code base for qtool cli
|-- pkg // qtool library
|-- react-web-app // react based web UI
-
Starting / stoppping qtool-api and react web UI in dev environment
make start-compose-dev make stop-compose-dev
-
Starting / stopping qtool-api and react web UI in prod environment
make start-compose-prod make stop-compose-prod