Paper Wallet support in bitcoin-core



Summary:

The proposal to add paper wallet functionality in bitcoin-core software has been suggested and discussed by Dan Libby. He suggests starting with a single new RPC call, genExternalAddress [type], which would return a new Bitcoin address and private key for receiving payments. This functionality is not currently available within the bitcoin-core implementation and requires the use of third-party software such as bitaddress.org. By incorporating this functionality into bitcoin-core, users can eliminate the need to place trust in an additional body of code from a less-trusted and less peer-reviewed source. One consideration of exposing this in QT is that it may encourage users to generate paper wallets from online machines, rendering them more lukewarm rather than cold since the keys weren't generated in an air-gapped environment. To address this concern, it is suggested that any UI in QT include some sort of a modal dialog that informs the user that this is not a secure cold storage address unless it was created on an offline machine and printed on a non-networked printer. If adopted, this API is simple to implement and use as it provides enough functionality for any moderately skilled developer to create their own paper wallet creation script using any scripting language or for advanced users to perform using bitcoin-cli or debug console. Further steps could be taken in this direction, but are not necessary for a useful first-step. These include an RPC call to generate an external HD wallet seed and an RPC call to generate N key/address pairs from a given seed. GUI functionality in bitcoin-qt to facilitate easy paper wallet generation (and printing?) for end-users, complete with nice graphics, qr codes, etc.


Updated on: 2023-06-12T21:24:23.212694+00:00