0

I am new to bitcoin development. I am going through documentation and researching to build below in the webwallet solution

  1. Create a HD Wallet which can assign addresses to subscribed users.
  2. BackUp / Restore HD wallet on a different machine for managing any risks.
  3. Allow user to withdraw funds as needed by processing a Withdrawal transaction if the user is sufficient funds in his account.
spk
  • 1
  • 1
  • Could you provide a broader context? What is the target use case? There is hundreds of web wallets on the market, including some open source solutions. – CypherpunkDev Jul 08 '21 at 14:34
  • Exploring to develop some functionality in an existing solution where Crypto can be used as mode of payment by consumers for exchange for services or exchange it for FIAT. – spk Jul 08 '21 at 21:34
  • I would be interested in knowing existing open source solutions, it would be great if you could point me to any. Thanks – spk Jul 08 '21 at 21:35
  • Lightning Network will be better for payments. Btcpayserver is an open source payment processor that can be used for integrating bitcoin payments in websites. Resources related to LND: https://docs.lightning.engineering/community-resources/resource-list –  Jul 09 '21 at 09:43

1 Answers1

0

You can use Bitcoin Core JSON-RPC API with any language that is used for web development. There are two ways to do this:

Libraries

There are few libraries that will help you develop web applications for Bitcoin. Example: The best JavaScript libraries supporting Bitcoin Core?

OR

  1. Experiment with Bitcoin Core RPC related to wallets on testnet. Once you understand how things work, run bitcoind with below bitcoin.conf:

    testnet=1
    server=1
    

    test.rpcport=PORT rpcuser=USERNAME rpcpassword=PASSWORD

  2. Run Postman (There is also Postwoman but I have not tried it)

  3. Create a request with URL: https://127.0.0.1:RPC_PORT/

  4. Select 'basic auth' and enter RPC credentials

  5. Body(raw):

    {"jsonrpc": "1.0", "id": "curltest", "method": "createwallet", "params": ["DW1",false,false,"",true,true]}
    
  6. This will create a descriptor wallet with name 'DW' if you send the request. For using it in your web application, you can click on </> code symbol and copy the code for one of the languages:

postman-bitcoin-core

Few things related to security: https://github.com/bitcoin/bitcoin/blob/master/doc/JSON-RPC-interface.md

There can be more ways or better ways to achieve the same. I am not a web developer. Just trying to help.

  • Thank you for providing the details to point me in the right direction. Do you know if there is any documentation that I can refer to for setting up a HD Wallet for this purpose, and the processes for a wallet backup and wallet restore. – spk Jul 08 '21 at 13:30
  • There is RPC command for almost everything. Create HD wallet: createwallet, Backup wallet: backupwallet. Basic steps for recovery: https://bitcoin.stackexchange.com/questions/102904/recovering-and-transferring-bitcoin-to-new-wallet/ –  Jul 08 '21 at 13:47