Ethereum Xpub CryptoCoins Info Club

"New API xpub filter added for https://www.bitindex.network Now you can filter xpubs by an address so you can easily recover the private key for an address with funds: /xpub/addrs?address= Check it out now and let us know what you think!"

Check it out now and let us know what you think!"" title=""New API xpub filter added for https://www.bitindex.network Now you can filter xpubs by an address so you can easily recover the private key for an address with funds: /xpub/addrs?address= Check it out now and let us know what you think!"" /> submitted by cryptorebel to bitcoincashSV [link] [comments]

Get XPUB key from Bitcoin Core wallet? I try to setup the new Strike Lightning service.

Get XPUB key from Bitcoin Core wallet? I try to setup the new Strike Lightning service. submitted by Stadicus to Bitcoin [link] [comments]

[uncensored-r/Bitcoin] Get XPUB key from Bitcoin Core wallet? I try to setup the new Strike Lightning service.

The following post by Stadicus is being replicated because the post has been silently greylisted(for 0.6 hours).
(It was approved by the mods at: 2018-02-04T00:11:27.000Z)
The original post can be found(in censored form) at this link:
np.reddit.com/ Bitcoin/comments/7uyyn3
The original post's content was as follows:
https://i.redd.it/yht9acmfnzd01.png
submitted by censorship_notifier to noncensored_bitcoin [link] [comments]

Get XPUB key from Bitcoin Core wallet? I try to setup the new Strike Lightning service. /r/Bitcoin

Get XPUB key from Bitcoin Core wallet? I try to setup the new Strike Lightning service. /Bitcoin submitted by BitcoinAllBot to BitcoinAll [link] [comments]

Multisig HD Wallets - do I need to keep each mnemocic seed's xpub or is there a single new xpub for the multisig? Can xpubs be converted to mnemonics? /r/Bitcoin

Multisig HD Wallets - do I need to keep each mnemocic seed's xpub or is there a single new xpub for the multisig? Can xpubs be converted to mnemonics? /Bitcoin submitted by BitcoinAllBot to BitcoinAll [link] [comments]

What is an xpub address and how is it different from usual bitcoin addresses? I created a new wallet on blockchain.info and it works nothing like it used to. /r/Bitcoin

What is an xpub address and how is it different from usual bitcoin addresses? I created a new wallet on blockchain.info and it works nothing like it used to. /Bitcoin submitted by BitcoinAllBot to BitcoinAll [link] [comments]

PayButton v1 Release & Flipstarter

Hey guys!
We’re happy to have finally released the first production version of PayButton today!
There’s still a lot more work to do but we wanted to get something out there that people can try so we can start getting some proper feedback.
We’re also running a Flipstarter in an effort to speed up development as we think projects like PayButton are crucial for the success of Bitcoin Cash on the web. If you like what we've done so far and want to see more of it, you can check that out here: https://flipstarter.paybutton.org/.
Under the hood, the project has been switched over to React/Preact with TypeScript. The goal here was to make it as lightweight and self-contained as possible while still being accessible to other developers who want to contribute to the project.
Some of the new features include:
The roadmap also has a lot to look forward to including the option to setup a goal / target for raising funds, optional open source server, transition from REST to SSE, auto-incrementing addresses with xpub keys, and more. For more information on the current roadmap, you can check both our Flipstarter and our GitHub issues to see what's coming.
We’re still in the middle of rebuilding the website with new documentation but we’re hoping to have that live soon. The existing docs have been updated though so it'll work fine as a reference in the meantime.
Until then, here’s some links that will be useful if you’re looking to set PayButton up on your own website, get involved, or just learn more:
Definitely have a look and let us know what you think or if you run into any issues while setting it up!
submitted by KillerHurdz to btc [link] [comments]

Where can I find where the xPub is generated in Bitcoinlib?

I'm currently browsing through this high level wallet library to start programming some Bitcoin applications:
https://github.com/1200wd/bitcoinlib https://bitcoinlib.readthedocs.io/en/latest/
I'm trying to get a String value of the xPub that is used to generate new addresses for each wallet.
Can someone help me find it?
submitted by BlockchainBears to Bitcoin [link] [comments]

Tortuga: The lightweight, non-custodial, self-hosted payment gateway you've been waiting for!

I'm very pleased to announce the availability of my payment-gateway project: Tortuga.
Tortuga lets you sell a digital file for cryptocurrency. All you need to be able to do is run a docker container (I run mine on a little VPS from digital ocean).
Benefits:
Current Limitations:
Supported cryptocurrencies:
You can read more about it at https://github.com/unyieldinggrace/tortuga
The deployment instructions on the github page should be sufficient for technical users. I'll try to make time to write a step-by-step setup tutorial on read.cash at some stage (or if someone else wants to do it, that might be a good way to score tips!).
Motivation:
I made this payment gateway for idealistic reasons. I wrote a book called Taxation is Slavery: The Biblical Case for Libertarian Politics. Among many other things, this book argues that fiat money-printing is a form of immoral counterfeiting, and that we should attempt to secede from the fiat power structures by using cryptocurrency. To live that out, I was determined to find a way to sell the book directly to readers, completely peer-to-peer. In this way, I'm helping to "close the loop". I'm giving people something good to spend their (crypto) money on, without either them or me ever having to convert it to fiat.
The book also includes a brief sub-chapter on how the very existence of Bitcoin should force many Christians to re-evaluate the way they understand Jesus' statement about "giving to Ceasar what is Caesar's". Bitcoin has no president or king's face on it. There is no engraving of any Caesar. Thinking this through might be of interest to many Bitcoin fans :)
Ready to see it in action?
You can test out the payment gateway by seeing how I use it on my own site. Just click one of the crypto checkout buttons at https://beingbiblical.com/books/taxation-is-slavery
submitted by fatalglory to btc [link] [comments]

Windows / Linux Guide to using Trezor with Bitcoin Core (HWI)

This is a guide to using your Trezor with Bitcoin Core. It may seem like more trouble than it's worth but many applications use Bitcoin Core as a wallet such as LND, EPS, and JoinMarket. Learning how to integrate your Trezor into a Bitcoin Core install is rather useful in many unexpected ways. I did this all through the QT interfaces, but it's simple to script. There is a much simpler guide available from the HWI github, and the smallest Linux TLDR is here
Unfortunately, I don't have access to a Coldcard or Ledger. I'm not sure how the setpin or -stdinpass parameters are handled on that HW.

( A ) Install TrezorCTL, HWI, and build GUI

You only need to set the wallet up once, but may repeat to upgrade

( A.I ) Download extract and install HWI

  1. Download and isntall Python
  2. Download https://github.com/bitcoin-core/HWI/archive/1.1.2.zip
  3. Extract it to a working folder (assumes C:\User\Reddit\src\HWI)
  4. Change Directory (cd) to working folder cd "C:\User\Reddit\src\HWI"
  5. Setup venv python -m venv .venv
  6. Enter venv .venv\Scripts\activate.bat 1
  7. Install dependencies python -m pip install -U setuptools pip wheel
  8. Install TrezorCTL python -m pip install trezor[hidapi]
  9. Install HWI python -m pip install hwi pyside2
  10. Download github.com/libusb/libusb/releases/download/v1.0.23/libusb-1.0.23.7z
  11. Extract MS64\dll\libusb-1.0.dll from the archive
  12. Copy to pywin copy libusb-1.0.dll .venv\Lib\site-packages\pywin32_system32\

( A.II ) Build the QT UI files

  1. Download and install MSYS2
  2. Launch a mingw64.exe shell
  3. CD to working folder cd "C:\User\Reddit\src\HWI"
  4. Enter venv source .venv/Scripts/activate 1
  5. Run UI build bash contrib/generate-ui.sh

( B ) Create a Trezor wallet in Bitcoin Core (testnet)

You only need to set the wallet up once, no private key data is stored, only xpub data

( B.I ) Retrieve keypool from HWI-QT

  1. Launch hwi-qt.exe --testnet (assuming testnet)
  2. Click Set passphrase (if needed) to cache your passphrase then click Refresh
  3. Select you trezor from the list then click Set Pin (if needed)
  4. Ensure your Trezor in the dropdown has a fingerprint
  5. Select Change keypool options and choose P2WPKH
  6. Copy all the text from the Keypool textbox

( B.II ) Create the wallet in Bitcoin QT

  1. Launch Bitcoin Core (testnet) (non-pruned) 2
  2. Select Console from the Window menu
  3. Create a wallet createwallet "hwi" true
  4. Ensure that hwi is selected in the console wallet dropdown
  5. Verify walletname using the getwalletinfo command
  6. Import keypool importmulti '' (note ' caging)
  7. Rescan if TXNs are missing rescanblockchain 3

( C.I ) Grab Tesnet coins

  1. Select the Receive tab in Bitcoin Core (testnet)
  2. Ensure that the Wallet dropdown has hwi selected
  3. Select Create new receiving address and copy address
  4. Google "bitcoin testnet faucet" and visit a few sites
  5. Answer captcha and input your addressed copied from C.I.3

( D ) Spending funds with HWI

This is how you can spend funds in your Trezor using Bitcoin Core (testnet)

( D.I ) Create an unsigned PSBT

  1. Select the Send tab in Bitcoin Core (testnet)
  2. Ensure that the Wallet dropdown has hwi selected
  3. Verify your balance in Watch-only balance
  4. Rescan if balance is wrong (see B.II.7) 3
  5. Craft your TXN as usual, then click Create Unsigned
  6. Copy the PSBT to your clipboard when prompted

( D.II ) Sign your PSBT

  1. In HWI-QT click Sign PSBT
  2. Paste what you copied in D.I.6 in PSBT to Sign field
  3. Click Sign PSBT
  4. Copy the text for PSBT Result

( D.III ) Broadcast your TXN

  1. Select the Console window in Bitcoin Core (testnet)
  2. Ensure that the Wallet dropdown has hwi selected
  3. Finalize PSBT: finalizepsbt
  4. Copy the signed TXN hex from the hex field returned
  5. Broadcast TXN: sendrawtransaction

Final Thoughts

I did this all through the GUI interfaces for the benefit of the Windows users. Windows console is fine, but the quote escaping in windows console is nightmarish. Powershell would be good, but that throws this on a whole another level for most Windows folks.
There is also the need to use HWI-QT due to a bug in blank passphrases on the commandline. You can work around it by toggling passphrase off or on, but again, it's more than I wanted to spell out.
Footnotes:
  • 1. - Later version of python put the activate script under 'bin' instead of 'Script'
  • 2. - You can run pruned, but you need to have a fresh wallet
  • 3. - Rescan is automatic on 'importmulti' but I was pruned so it was wierd
submitted by brianddk to Bitcoin [link] [comments]

Cannot create wallet with Trezor

Hi guys, I am stuck trying to create a wallet for my Trezor with Electrum 4.0.4 on Linux:
I get to the point of entering the password twice and then selecting the path. But after that it just says
'Please wait' and then the window hangs. The only way to do something is either kill the process or send a `SIGINT` signal.
Interestingly after sending a SIGINT the window unfreezes and asks me again for the password (also during the whole freeze the Trezor device writes that I should enter my password). After entering the password again I get an empty error window and on closing it everything closes.
I started electrum with `electrum -v` to get some logs:
$ electrum -v I | logging | Electrum version: 4.0.4 - https://electrum.org - https://github.com/spesmilo/electrum I | logging | Python version: 3.8.6 (default, Sep 30 2020, 04:00:38) [GCC 10.2.0]. On platform: Linux-5.8.14-arch1-1-x86_64-with-glibc2.2.5 I | logging | Logging to file: None I | logging | Log filters: verbosity '*', verbosity_shortcuts '' I/p | plugin.Plugins | registering hardware bitbox02: ('hardware', 'bitbox02', 'BitBox02') I/p | plugin.Plugins | registering hardware coldcard: ('hardware', 'coldcard', 'Coldcard Wallet') I/p | plugin.Plugins | registering hardware digitalbitbox: ('hardware', 'digitalbitbox', 'Digital Bitbox wallet') I/p | plugin.Plugins | registering hardware keepkey: ('hardware', 'keepkey', 'KeepKey wallet') I/p | plugin.Plugins | registering hardware ledger: ('hardware', 'ledger', 'Ledger wallet') I/p | plugin.Plugins | registering hardware safe_t: ('hardware', 'safe_t', 'Safe-T mini wallet') I/p | plugin.Plugins | registering hardware trezor: ('hardware', 'trezor', 'Trezor wallet') I/p | plugin.Plugins | registering wallet type ('2fa', 'trustedcoin') D | util.profiler | Plugins.__init__ 0.0044 I/n | network | blockchains [0] I | exchange_rate.FxThread | using exchange CoinGecko D | util.profiler | Daemon.__init__ 0.0023 I/n | network | starting network I | daemon.Daemon | launching GUI: qt I/n | network | setting proxy None I | daemon.Daemon | starting taskgroup. I/n | network | connecting to electrumx.ftp.sh:50002:s as new interface I/n | network | starting taskgroup. I | gui.qt.history_list | could not import electrum.plot. This feature needs matplotlib to be installed. I | gui.qt.ElectrumGui | Qt GUI starting up... Qt=5.15.1, PyQt=5.15.1 I/i | interface.[localhost:50002] | connection established. version: ['ElectrumPersonalServer 0.2.0', '1.4'] D | util.profiler | ElectrumGui.__init__ 0.1374 I/i | interface.[vmd27610.contaboserver.net:50002] | disconnecting due to: ErrorGettingSSLCertFromServer(ConnectError(gaierror(-2, 'Name or service not known'))) I/n | network | couldn't launch iface vmd27610.contaboserver.net:50002:s -- CancelledError() I/i | interface.[electrumx.ftp.sh:50002] | disconnecting due to: ErrorGettingSSLCertFromServer(ConnectError(gaierror(-2, 'Name or service not known'))) I/n | network | couldn't launch iface electrumx.ftp.sh:50002:s -- CancelledError() I/i | interface.[rbx.curalle.ovh:50002] | disconnecting due to: ErrorGettingSSLCertFromServer(ConnectError(gaierror(-2, 'Name or service not known'))) I/i | interface.[2AZZARITA.hopto.org:50006] | connection established. version: ['ElectrumX 1.15.0', '1.4'] I/n | network | couldn't launch iface rbx.curalle.ovh:50002:s -- CancelledError() I/i | interface.[2AZZARITA.hopto.org:50006] | set blockchain with height 653567 I/i | interface.[2AZZARITA.hopto.org:50006] | skipping header 653566 I/n | network | no height for main interface I/n | network | fee_estimates {25: 46526, 10: 48176, 5: 50745, 2: 50750} I/i | interface.[hsmiths4fyqlw5xw.onion:50002] | disconnecting due to: ErrorGettingSSLCertFromServer(ConnectError(gaierror(-2, 'Name or service not known'))) I/n | network | couldn't launch iface hsmiths4fyqlw5xw.onion:50002:s -- CancelledError() I/n | network | switching to 2AZZARITA.hopto.org:50006:s I/i | interface.[electrum3.hodlister.co:50002] | connection established. version: ['ElectrumX 1.10.0', '1.4'] I/n | network | fee_histogram [[99, 100899], [71, 112316], [61, 132563], [59, 156116], [57, 175394], [54, 114050], [51, 219092], [49, 195934], [48, 565137], [47, 781451], [46, 883591], [45, 259824], [44, 450143], [43, 114488], [42, 22100], [41, 49428], [40, 106542], [38, 151315], [33, 547095], [22, 620244], [13, 648588], [9, 822409], [5, 741398], [3, 1799486], [2, 651429]] I/n | network | fee_histogram [[99, 100899], [71, 112316], [61, 132563], [59, 156116], [57, 175394], [54, 114050], [51, 219092], [49, 195934], [48, 565137], [47, 781451], [46, 883591], [45, 259824], [44, 450143], [43, 114488], [42, 22100], [41, 49428], [40, 106542], [38, 151315], [33, 547095], [22, 620244], [13, 648588], [9, 822409], [5, 741398], [3, 1799486], [2, 651429]] I/i | interface.[bitcoin.corgi.party:50002] | disconnecting due to: ErrorGettingSSLCertFromServer(ConnectError(gaierror(-5, 'No address associated with hostname'))) I/n | network | couldn't launch iface bitcoin.corgi.party:50002:s -- CancelledError() I/i | interface.[electrumx-core.1209k.com:50002] | disconnecting due to: ErrorGettingSSLCertFromServer(ConnectError(OSError(101, 'Network is unreachable'))) I/n | network | couldn't launch iface electrumx-core.1209k.com:50002:s -- CancelledError() I/i | interface.[electrum3.hodlister.co:50002] | set blockchain with height 653567 I/i | interface.[electrum3.hodlister.co:50002] | skipping header 653567 I/n | network | fee_estimates {25: 46526, 10: 48176, 5: 50745, 2: 50749} I/i | interface.[hsmiths5mjk6uijs.onion:50002] | disconnecting due to: ErrorGettingSSLCertFromServer(ConnectError(gaierror(-2, 'Name or service not known'))) I/n | network | couldn't launch iface hsmiths5mjk6uijs.onion:50002:s -- CancelledError() I/i | interface.[dxm.no-ip.biz:50002] | disconnecting due to: ErrorGettingSSLCertFromServer(ConnectError(ConnectionRefusedError(111, "Connect call failed ('77.6.34.45', 50002)"))) I/n | network | couldn't launch iface dxm.no-ip.biz:50002:s -- CancelledError() I/i | interface.[electrum2.eff.ro:50002] | disconnecting due to: ErrorGettingSSLCertFromServer(ConnectError(gaierror(-2, 'Name or service not known'))) I/n | network | couldn't launch iface electrum2.eff.ro:50002:s -- CancelledError() I/i | interface.[electrum.hsmiths.com:50002] | disconnecting due to: ConnectError(ConnectionResetError(104, 'Connection reset by peer')) I/n | network | couldn't launch iface electrum.hsmiths.com:50002:s -- CancelledError() I | storage.WalletStorage | wallet path /home/bene/.electrum/wallets/default_wallet I/i | interface.[bitcoin.aranguren.org:50002] | connection established. version: ['ElectrumX 1.15.0', '1.4'] I | storage.WalletStorage | wallet path /home/bene/.electrum/wallets/default_wallet I/i | interface.[bitcoin.aranguren.org:50002] | set blockchain with height 653567 I/i | interface.[bitcoin.aranguren.org:50002] | skipping header 653566 [240/1884] I/n | network | fee_estimates {25: 46526, 10: 48176, 5: 50745, 2: 50749} I/i | interface.[localhost:50002] | set blockchain with height 653567 I/i | interface.[localhost:50002] | skipping header 653567 I/n | network | fee_estimates {25: 46526, 10: 48175, 5: 50745, 2: 50749} I/p | plugin.Plugins | loaded bitbox02 I/p | plugin.Plugins | loaded coldcard I/p | plugin.Plugins | loaded digitalbitbox I/p | plugin.Plugins | loaded keepkey I/p | plugin.Plugins | loaded ledger I/p | plugin.Plugins | loaded safe_t I/p | plugin.Plugins | loaded trezor I | plugin.DeviceMgr | scanning devices... D | util.profiler | DeviceMgr.scan_devices 0.0244 W | gui.qt.installwizard.InstallWizard | error getting device infos for bitbox02: Missing libraries for bitbox02. // Make sure you install it with python3 W | gui.qt.installwizard.InstallWizard | error getting device infos for coldcard: Missing libraries for coldcard. // Make sure you install it with python3 W | gui.qt.installwizard.InstallWizard | error getting device infos for keepkey: Missing libraries for keepkey. // Make sure you install it with python3 W | gui.qt.installwizard.InstallWizard | error getting device infos for ledger: Missing libraries for ledger. // Make sure you install it with python3 W | gui.qt.installwizard.InstallWizard | error getting device infos for safe_t: Missing libraries for safe_t. // Make sure you install it with python3 I | plugins.trezor.qt.Plugin | connecting to device at webusb:001:3 I | plugins.trezor.qt.Plugin | connected to device at webusb:001:3 I | plugin.DeviceMgr | Registering My TREZOF3342BDD7C90C7F9FBA58136 I | plugin.DeviceMgr | scanning devices... D | util.profiler | DeviceMgr.scan_devices 0.0388 I/i | interface.[localhost:50002] | skipping header 653567 qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 4028, resource id: 14687032, major code: 40 (TranslateCoords), minor code: 0 I | plugin.DeviceMgr | scanning devices... D | util.profiler | DeviceMgr.scan_devices 0.0407 
This is the point where the window freezes. Then I precc `Ctrl+C` to send a SIGINT signal and then this is the rest of the logs:
I/n | network | couldn't launch iface technetium.network:50002:s -- TimeoutError() I/n | network | couldn't launch iface e2.keff.org:50002:s -- TimeoutError() I/n | network | couldn't launch iface electrum-server.ninja:50002:s -- TimeoutError() I/n | network | couldn't launch iface xray587.startdedicated.de:50002:s -- TimeoutError() I/n | network | couldn't launch iface electrum.mindspot.org:50002:s -- TimeoutError() I/i | interface.[electrum.leblancnet.us:50002] | disconnecting due to: ErrorGettingSSLCertFromServer(ConnectError(gaierror(-2, 'Name or service not known'))) I/n | network | couldn't launch iface electrum.leblancnet.us:50002:s -- CancelledError() I/i | interface.[ex01.axalgo.com:50002] | succeeded in getting cert I/i | interface.[electrumx.schulzemic.net:50002] | succeeded in getting cert ^CE | gui.qt.installwizard.InstallWizard | Traceback (most recent call last): File "/uslib/python3.8/site-packages/electrum/base_wizard.py", line 446, in on_hw_derivation xpub = self.plugin.get_xpub(device_info.device.id_, derivation, xtype, self) File "/uslib/python3.8/site-packages/electrum/plugins/trezotrezor.py", line 315, in get_xpub xpub = client.get_xpub(derivation, xtype) File "/uslib/python3.8/site-packages/electrum/plugin.py", line 362, in wrapper return run_in_hwd_thread(partial(func, *args, **kwargs)) File "/uslib/python3.8/site-packages/electrum/plugin.py", line 355, in run_in_hwd_thread return fut.result() File "/uslib/python3.8/concurrent/futures/_base.py", line 434, in result self._condition.wait(timeout) File "/uslib/python3.8/threading.py", line 302, in wait waiter.acquire() KeyboardInterrupt I/i | interface.[ex01.axalgo.com:50002] | connection established. version: ['ElectrumX 1.14.0', '1.4'] I/i | interface.[electrumx.schulzemic.net:50002] | connection established. version: ['ElectrumX 1.15.0', '1.4'] I/i | interface.[ex01.axalgo.com:50002] | set blockchain with height 653567 I/i | interface.[ex01.axalgo.com:50002] | skipping header 653567 I/n | network | fee_estimates {25: 46526, 10: 48176, 5: 50745, 2: 50749} I/i | interface.[electrumx.schulzemic.net:50002] | set blockchain with height 653567 I/i | interface.[electrumx.schulzemic.net:50002] | skipping header 653567 I/n | network | fee_estimates {25: 46526, 10: 48176, 5: 50745, 2: 50749} I/n | network | couldn't launch iface dragon085.startdedicated.de:50002:s -- TimeoutError() I/i | interface.[btc.electroncash.dk:60002] | succeeded in getting cert I/i | interface.[mxhwmwa3nt2si4ufszm24whlpkruu74jle27ys2fyjuiifbbrub6thyd.onion:50006] | disconnecting due to: ErrorGettingSSLCertFromServer(ConnectError(gaierror(-2, 'Name or service not known'))) I/n | network | couldn't launch iface mxhwmwa3nt2si4ufszm24whlpkruu74jle27ys2fyjuiifbbrub6thyd.onion:50006:s -- CancelledError() I/i | interface.[electrum2.villocq.com:50002] | disconnecting due to: ErrorGettingSSLCertFromServer(ConnectError(gaierror(-5, 'No address associated with hostname'))) I/n | network | couldn't launch iface electrum2.villocq.com:50002:s -- CancelledError() I/i | interface.[btc.electroncash.dk:60002] | connection established. version: ['ElectrumX 1.15.0', '1.4'] I/i | interface.[btc.electroncash.dk:60002] | set blockchain with height 653567 I/i | interface.[btc.electroncash.dk:60002] | skipping header 653567 I/n | network | fee_estimates {25: 46526, 10: 48176, 5: 50745, 2: 50749} I/i | interface.[btc.electrum.bitbitnet.net:50002] | connection established. version: ['ElectrumX 1.15.0', '1.4'] I/i | interface.[btc.electrum.bitbitnet.net:50002] | set blockchain with height 653567 [169/1884] I/i | interface.[btc.electrum.bitbitnet.net:50002] | skipping header 653567 I/n | network | fee_estimates {25: 46526, 10: 48176, 5: 50745, 2: 50749} I | plugin.DeviceMgr | scanning devices... D | util.profiler | DeviceMgr.scan_devices 0.0394 W | gui.qt.installwizard.InstallWizard | error getting device infos for bitbox02: Missing libraries for bitbox02. // Make sure you install it with python3 W | gui.qt.installwizard.InstallWizard | error getting device infos for coldcard: Missing libraries for coldcard. // Make sure you install it with python3 W | gui.qt.installwizard.InstallWizard | error getting device infos for keepkey: Missing libraries for keepkey. // Make sure you install it with python3 W | gui.qt.installwizard.InstallWizard | error getting device infos for ledger: Missing libraries for ledger. // Make sure you install it with python3 W | gui.qt.installwizard.InstallWizard | error getting device infos for safe_t: Missing libraries for safe_t. // Make sure you install it with python3 I/i | interface.[bitcoin.aranguren.org:50002] | skipping header 653567 E | daemon.Daemon | GUI raised exception: ReRunDialog(). shutting down. I | gui.qt.ElectrumGui | closing GUI I | daemon.Daemon | shutting down network I/n | network | stopping network I/n | network | couldn't launch iface electrum.hodlister.co:50002:s -- CancelledError() I/n | network | couldn't launch iface orannis.com:50002:s -- CancelledError() I/i | interface.[localhost:50002] | disconnecting due to: CancelledError() I/i | interface.[electrumx.schulzemic.net:50002] | disconnecting due to: CancelledError() I/i | interface.[ex01.axalgo.com:50002] | disconnecting due to: CancelledError() I/i | interface.[2AZZARITA.hopto.org:50006] | disconnecting due to: CancelledError() I/i | interface.[btc.electroncash.dk:60002] | disconnecting due to: CancelledError() I/i | interface.[electrum3.hodlister.co:50002] | disconnecting due to: CancelledError() I/i | interface.[btc.electrum.bitbitnet.net:50002] | disconnecting due to: CancelledError() I/i | interface.[bitcoin.aranguren.org:50002] | disconnecting due to: CancelledError() I/n | network | taskgroup stopped. I | daemon.Daemon | stopping taskgroup I | daemon.Daemon | taskgroup stopped. I | daemon.Daemon | removing lockfile I | daemon.Daemon | stopped E | __main__ | daemon.run_gui errored Traceback (most recent call last): File "/uslib/python3.8/site-packages/electrum/gui/qt/installwizard.py", line 118, in func_wrapper run_next(*out) File "/uslib/python3.8/site-packages/electrum/base_wizard.py", line 193, in on_wallet_type self.run(action) File "/uslib/python3.8/site-packages/electrum/base_wizard.py", line 115, in run f(*args, **kwargs) File "/uslib/python3.8/site-packages/electrum/base_wizard.py", line 225, in choose_keystore self.choice_dialog(title=title, message=message, choices=choices, run_next=self.run) File "/uslib/python3.8/site-packages/electrum/gui/qt/installwizard.py", line 106, in func_wrapper out = func(*args, **kwargs) File "/uslib/python3.8/site-packages/electrum/gui/qt/installwizard.py", line 594, in choice_dialog self.exec_layout(vbox, title) File "/uslib/python3.8/site-packages/electrum/gui/qt/installwizard.py", line 429, in exec_layout raise GoBack from None electrum.base_wizard.GoBack The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usbin/electrum", line 380, in  d.run_gui(config, plugins) File "/uslib/python3.8/site-packages/electrum/daemon.py", line 566, in run_gui self.gui_object.main() File "/uslib/python3.8/site-packages/electrum/gui/qt/__init__.py", line 363, in main if not self.start_new_window(path, self.config.get('url'), app_is_starting=True): File "/uslib/python3.8/site-packages/electrum/gui/qt/__init__.py", line 247, in wrapper return func(self, *args, **kwargs) File "/uslib/python3.8/site-packages/electrum/gui/qt/__init__.py", line 271, in start_new_window wallet = self._start_wizard_to_select_or_create_wallet(path) File "/uslib/python3.8/site-packages/electrum/gui/qt/__init__.py", line 313, in _start_wizard_to_select_or_create_wallet wizard.run('new') File "/uslib/python3.8/site-packages/electrum/base_wizard.py", line 115, in run f(*args, **kwargs) File "/uslib/python3.8/site-packages/electrum/base_wizard.py", line 153, in new self.choice_dialog(title=title, message=message, choices=choices, run_next=self.on_wallet_type) File "/uslib/python3.8/site-packages/electrum/gui/qt/installwizard.py", line 131, in func_wrapper raise ReRunDialog() from e electrum.base_wizard.ReRunDialog I/p | plugin.Plugins | stopped 
submitted by bIacktemplar to Electrum [link] [comments]

XPUB problems

Okay I have an old xpub that is coming up through ledger live for my bitcoin wallet. When I enter that xpub # to a viewer, it is bringing up only addresses with a 1 and nothing in them.
I see all my addresses in my ledger transaction history on live actually start with a 3.
I remember starting my ledger with a pre-segwit wallet but then switching all my transactions to a new segwit wallet. All these wallet were done with the same private key. Is there anyway to get an accurate xpub that has my segwit wallet address history?? It’s like ledger never saved the segwit xpub and is only reporting the original xpub?
Thanks
submitted by dreftylefty to ledgerwallet [link] [comments]

Windows Guide to using Trezor with Bitcoin Core (HWI)

This is a guide to using your Trezor with Bitcoin Core. It may seem like more trouble than it's worth but many applications use Bitcoin Core as a wallet such as LND, EPS, and JoinMarket. Learning how to integrate your Trezor into a Bitcoin Core install is rather useful in many unexpected ways. I did this all through the QT interfaces, but it's simple to script. There is a much simpler guide available from the HWI github, and the smallest TLDR is here

( A ) Install TrezorCTL, HWI, and build GUI

You only need to set the wallet up once, but may repeat to upgrade

( A.I ) Download extract and install HWI

  1. Download and isntall Python
  2. Download https://github.com/bitcoin-core/HWI/archive/1.1.2.zip
  3. Extract it to a working folder (assumes C:\User\Reddit\src\HWI)
  4. Change Directory (cd) to working folder cd "C:\User\Reddit\src\HWI"
  5. Setup venv python -m venv .venv
  6. Enter venv .venv\Scripts\activate.bat 1
  7. Install dependencies python -m pip install -U setuptools pip wheel
  8. Install TrezorCTL python -m pip install trezor[hidapi]
  9. Install HWI python -m pip install hwi pyside2
  10. Download github.com/libusb/libusb/releases/download/v1.0.23/libusb-1.0.23.7z
  11. Extract MS64\dll\libusb-1.0.dll from the archive
  12. Copy to pywin copy libusb-1.0.dll .venv\Lib\site-packages\pywin32_system32\

( A.II ) Build the QT UI files

  1. Download and install MSYS2
  2. Launch a mingw64.exe
  3. CD to working folder cd "C:\User\Reddit\src\HWI"
  4. Enter venv source .venv/Scripts/activate 1
  5. Run UI build bash contrib/generate-ui.sh

( B ) Create a Trezor wallet in Bitcoin Core (testnet)

You only need to set the wallet up once, no private key data is stored, only xpub data

( B.I ) Retrieve keypool from HWI-QT

  1. Launch hwi-qt.exe --testnet (assuming testnet)
  2. Click Set passphrase (if needed) to cache your passphrase then click Refresh
  3. Select you trezor from the list then click Set Pin (if needed)
  4. Ensure your Trezor in the dropdown has a fingerprint
  5. Select Change keypool options and choose P2WPKH
  6. Copy all the text from the Keypool textbox

( B.II ) Create the wallet in Bitcoin QT

  1. Launch Bitcoin Core (testnet) (non-pruned) 2
  2. Select Console from the Window menu
  3. Create a wallet createwallet "hwi" true
  4. Ensure that hwi is selected in the console wallet dropdown
  5. Verify walletname using the getwalletinfo command
  6. Import keypool importmulti '' (note ' caging)
  7. Rescan if TXNs are missing rescanblockchain 3

( C.I ) Grab Tesnet coins

  1. Select the Receive tab in Bitcoin Core (testnet)
  2. Ensure that the Wallet dropdown has hwi selected
  3. Select Create new receiving address and copy address
  4. Google "bitcoin testnet faucet" and visit a few sites
  5. Answer captcha and input your addressed copied from C.I.3

( D ) Spending funds with HWI

This is how you can spend funds in your Trezor using Bitcoin Core (testnet)

( D.I ) Create an unsigned PSBT

  1. Select the Send tab in Bitcoin Core (testnet)
  2. Ensure that the Wallet dropdown has hwi selected
  3. Verify your balance in Watch-only balance
  4. Rescan if balance is wrong (see B.II.7) 3
  5. Craft your TXN as usual, then click Create Unsigned
  6. Copy the PSBT to your clipboard when prompted

( D.II ) Sign your PSBT

  1. In HWI-QT click Sign PSBT
  2. Paste what you copied in D.I.6 in PSBT to Sign field
  3. Click Sign PSBT
  4. Copy the text for PSBT Result

( D.III ) Broadcast your TXN

  1. Select the Console window in Bitcoin Core (testnet)
  2. Ensure that the Wallet dropdown has hwi selected
  3. Finalize PSBT: finalizepsbt
  4. Copy the signed TXN hex from the hex field returned
  5. Broadcast TXN: sendrawtransaction

Final Thoughts

I did this all through the GUI interfaces for the benefit of the Windows users. Windows console is fine, but the quote escaping in windows console is nightmarish. Powershell would be good, but that throws this on a whole another level for most Windows folks.
There is also the need to use HWI-QT due to a bug in blank passphrases on the commandline. You can work around it by toggling passphrase off or on, but again, it's more than I wanted to spell out.
Footnotes:
  • 1. - Later version of python put the activate script under 'bin' instead of 'Script'
  • 2. - You can run pruned, but you need to have a fresh wallet
  • 3. - Rescan is automatic on 'importmulti' but I was pruned so it was wierd
submitted by brianddk to TREZOR [link] [comments]

Noob Question: First time using Samourai Wallet - No Private Keys.

Hi,
I'm new to the cryptocurrency space and have started to watch videos and read materials.
I wanted to try using bitcoins to get a more hands-on experience.
I have installed the Samourai wallet. Here a question I'd appreciate your help with.
  1. I don't see any private keys. - I've created a passphrase, a PIN, and got the mnemonic 12 words for backup. Inside settings I can see BIP-44 XPUB public key, Segwit YPUB public key (BIP49) and Segwit ZPUB (BIP84) along with Whirlpool public keys. Why can't I see any private keys?
Cheers!
submitted by scyneva to Samourai [link] [comments]

Generating an indexed btc address from an xpub key

An xpub key can generate a sequence of bitcoin addresses.
In this example ,1EfgV2Hr5CDjXPavHDpDMjmU33BA2veHy6 is the first, 12iNxzdF6KFZ14UyRTYCRuptxkKSSVHzqF is the second and so on and so forth.
With any Bitcoin API implementation is possible to easily generate a btc address from any xpub, where the xpub key is the input and the index is a parameter defining the position of the btc address in the derivation tree.
An example using the C# NBitcoin API:
BitcoinExtPubKey xpub = new BitcoinExtPubKey("yourxpub", Network.Main);
bitcoinAddress = xpub.Derive(0).Derive(btcindex).ScriptPubKey.GetDestinationAddress(Network.Main);
In this example, if the variable btcindex==0 and the xpub is the one from the example, the generated address is the first, namely: 1EfgV2Hr5CDjXPavHDpDMjmU33BA2veHy6 .
If btcindex==1, the second and so on and so forth.
Now, let's suppose we generate a btc address with index like 9999999 and send money to it, moreover only the first btc address has a positive amount, every btc address in the range between the first and the 9999999th has been never used before.
What may happen if we use a LedgeTrezor or a wallet like Electrum? As far as I know they need to scan the blockchain to find the addresses, but one thing is to scan one-hundred, another thing is scanning a billion!
Will that btc address even counted? If yes, will it be done in a reasoneable time?
submitted by MaleficentChoice3 to Bitcoin [link] [comments]

Here's my suggested new Trezor setup checklist.

  1. Read the manual: https://wiki.trezor.io/
  2. Upgrade FW to the latest release
  3. Initialize it and write down your seed
  4. Create a 5 or 6 word passphrase using BIP39, or diceware
  5. Ensure your passphrase is less than 50 characters
  6. Enable PIN and passphrase on your device and write it down as well.
  7. (Optional) Create a guessable pin and enable it as your wipe PIN
  8. Enable Account Labeling as a safeguard to mistyped passphrases.
  9. Create a guessable second passphrase (with labeling) as your decoy wallet)
  10. Print your xpub) and keep it with your seed / pin / passphrase
  11. Do a dry-run recovery to ensure your wrote the seed down correctly.
  12. Perform a wipe-device to ensure that recovery brings the proper labeling / xpubs back.
  13. Set up Trezor Password Manager to hold your passwords.
  14. Add Trezor as your U2F device (security key) for your exchanges
  15. Create some SSH keys with your Trezor
  16. (Linux only) Create a GPG key with your Trezor
  17. Move 10% of your coins off of the exchange to your Trezor decoy wallet.
  18. Move the other 90% of your coins to the real (non-decoy) wallet
  19. If thieves ask for your pin and passphrase, give the wipe-pin or decoy-passphrase.
submitted by brianddk to TREZOR [link] [comments]

How-to: setup your multisignature Cold wallet in Bitcoin Core 0.20 (highest security setup)

Last release of Core is amazing !
The main new feature is sortedmulti descriptor. This allows you to import your multisig setup in Core almost as if it was Electrum when combine to the new PSBT export in GUI !
As it needs command line and some weird checksum, you also need to input very long command in the console and if you made a mistake, you cannot copy the last command you made. So take your time when the commands are long to check everything and don't miss anything, use copy paste before validating the long command. You only have to do this once fortunately :)
I detail here how you do it with a k of n setup, good luck:
And you are DONE ! You should get the exact same addresses than Electrum and you can created receiving addresses in Qt ! To send money, just go to the send section, use the new coin control feature and export a partially signed transaction. You can use HWI or Electrum to sign it with your hardware wallets !
Notice: You can import more or less than 2000 addresses of each type. If less, blockchain rescan is faster but you may need to redo what we have done here later when all addresses will have been used once. If more, it is the contrary.

You now have the most possibly secure setup in one software: multisig with hardware on the full node wallet. When Bitcoin Core 0.21.0 will be out, we will also have native descriptor wallet so maybe we will have HD version of this. But for now, this is the best you can do ! Enjoy :)

P.S. : if you like doing things in one shot you can do the last two steps in one big command: importmulti '[{"desc": "wsh(sortedmulti(k,[path1]xpub1.../0/*,[path2]xpub2.../0/*,...,[pathn]xpubn/0/*))#check_sum0", "timestamp": birth_timestamp, "range": [0,2000], "watchonly": true, "keypool": true}, {"desc": "wsh(sortedmulti(k,[path1]xpub1.../1/*,[path2]xpub2.../1/*,...,[pathn]xpubn/1/*))#check_sum1", "timestamp": birth_timestamp, "range": [0,2000], "watchonly": true, "internal": true}]'
submitted by Pantamis to Bitcoin [link] [comments]

HowTo: Create and Spend a Electrum Segwit 3of3 Multisig wallet with Trezors

I wrote a simlar post in Bitcoin about creating a MS wallet without a Trezor, this guide will focus on creating a 3of3 MS wallet with three Trezor's. Hopefully it should be obvious how to extend this to N-of-M for any value of N or M. You can also use this as a blueprint to do MS with non-HW Electrum wallets like Android.
It should be noted that this is the most general case method for setting this up. This allows to replace non-HW Electrum wallets into this procedure where HW-wallets are referenced. For the far simpler method, just pick Cosign with hardware device instead of Cosign with key as I outline here. If you choose Cosign with HW you can do the entire process in one wallet file in one session.
The main advantage of multisig is that it reduces the risk of one compromised seed exposing all your funds. Although this is exceedingly complicated, the added layer of complications make it all the more difficult to compromise your funds. Most of the complexity is on the initial wallet setup. Sending is only a bit more complicated, and Receiving is the same as it would be for any electrum wallet.
We will be creating three wallets here, and each will use a Trezor with its own seed, passphrase, and public key (Zpub). If your just wanting to play with this process you could use one Trezor with three different passphrases. Electrum will treat this like three different wallets, since... well since it is. The Zpubs will be calculated by Electrum.
For all references to wallet passphrases or encryption passwords, I highly recommend you generate six-word passphrases. Three simple ways to construct a six-word passphrase would be to either use EFF diceware long wordlist to roll for 6 words, or create a short six-word BIP39 seed and use that as a passphrase, or create a random Electrum seed and use the last 6 words. You will need to take care that all six-word passphrases are equal or less than 50 characters. Longer passphrases can produce some unexpected results. Whenever you need to create a passphrase or password from here on out, create a six-word string as described above.
Assuming your have your Trezors initialized with passphrases enabled, our first order of business will be ensuring the authenticity of Electrum. For the PC's this must be done with PGP/GPG following the procedure spelled out on the Electrum website, or the secondary docs. It is absolutely critical that you are certain your using the correct ThomasV key. As of the time of this writing, the "correct" ThomasV key was:
ThomasV PGP: 6694 D8DE 7BE8 EE56 31BE D950 2BD5 824B 7F94 70E6
Once your Electrum install is validated, here is excruciating detail on creating and spending from a 3of3 multisig wallet. This assumes you have passphrases enabled on all your Trezors and that each has a unique name. For simplicity I will simply refer to their names at "trez-1", "trez-2", and "trez-3"

Three Wallet Creation passes

Do the following first for "trez-1", then for "trez-2" and finally for "trez-3". The order is VERY important:
  1. Wallet->New, name your wallet
  2. Then insert your Trezor ("trez-1", "trez-2", or "trez-3")
  3. Choose Multisig Wallet, then 3of3
  4. Choose Use a hardware device
  5. Select device
  6. Craft (and record) a new 6 word passphrase
  7. Choose Native Segwit derivation
  8. Record Zpub
  9. Unplug your Trezor ("trez-1", "trez-2", or "trez-3")
  10. Choose Add Cosigner Key
  11. Wait at "Add Cosigner 2" dialog

Distribute Zpubs to Finish Wallet Creation

When completing the setup for each wallet below you will be prompted for a wallet encryption password. I recommend you craft a unique six-word string as described above. If Electrum asks to reconnect to your HW wallet simply say "No". You will notice that the order is the reverse of the previous portion. As before, the order is VERY important,.
  1. Swap over to your trez-3 wallet
  2. Click "Enter Cosigner Key"
  3. Enter trez-1 Zpub
  4. Click "Enter Cosigner Key"
  5. Enter trez-2 Zpub
  6. Swap over to your trez-2 wallet
  7. Click "Enter Cosigner Key"
  8. Enter trez-3 Zpub
  9. Click "Enter Cosigner Key"
  10. Enter trez-1 Zpub
  11. Swap over to your trez-1 wallet
  12. Click "Enter Cosigner Key"
  13. Enter trez-2 Zpub
  14. Click "Enter Cosigner Key"
  15. Enter trez-3 Zpub
You can now close each wallet file.
You should now have recorded:
Keep the 12 secrets secure, separate and safe.

Receive funds into your 3of3 MS wallet

Receive just like any other wallet. All three wallets will watch the same set of addresses

Spend funds from your 3of3 MS wallet

  1. Create a TXN as you normally would on your first device
  2. In the TXN dialog hit "Preview" instead of Send
  3. In the Preview screen hit "Sign", then "Export"
  4. Copy the TXN over to your second device
  5. On your second device click Tools->Load Transaction
  6. Enter your partially signed TXN
  7. Verify the Status reads "Partially signed (1/3)"
  8. In the Preview screen hit "Sign", then "Export"
  9. Copy the TXN over to your third device
  10. On your third device click Tools->Load Transaction
  11. Enter your partially signed TXN
  12. Verify the Status reads "Partially signed (2/3)"
  13. In the Preview screen hit "Sign", then "Broadcast"

Conclusion

Certainly more complicated than a non MS wallet, but a lot more secure. Also be aware that the Segwit MS TXNs are about 40% larger than the native Segwit TXNs, so this does generate some additional cost in TXN fees.
submitted by brianddk to TREZOR [link] [comments]

Implementing support for Gleec coin

I'm trying to make a custom Trezor implementation that supports Gleec coin (BTC clone).
I have done the following steps:
  1. Inside the trezor-firmware in "common/defs/bitcoin" I included the "gleecBtc.json" configuartion:
After building the firmware.bin file I found out via hex editor that it doesn't contain the configuration. Then I included a new configuration inside "core/src/apps/common/coininfo.py":
.... if not utils.BITCOIN_ONLY: if False: pass elif name == "GleecBTC": return CoinInfo( coin_name=name, coin_shortcut="GLEEC", decimals=8, address_type=35, address_type_p2sh=38, maxfee_kb=2000000, signed_message_header="GleecBTC Signed Message:\n", xpub_magic=0x0488b21e, xpub_magic_segwit_p2sh=0x049d7cb2, xpub_magic_segwit_native=0x04b24746, bech32_prefix="fg", cashaddr_prefix=None, slip44=460, segwit=True, fork_id=None, force_bip143=False, decred=False, negative_fee=False, curve_name='secp256k1', extra_data=False, timestamp=False, overwintered=False, confidential_assets=None, ) .... 
Finally the gleec configuration was inside the firmware.bin file. And I flashed it on the hardware.
2) Inside the trezor-connect in "src/data/coins.json" I included:
.... { "address_type": 35, "address_type_p2sh": 38, "bech32_prefix": "fg", "blockbook": [ "https://blockbook.gleechain.com/" ], "blocktime_seconds": 300, "cashaddr_prefix": null, "coin_label": "GleecBTC", "coin_name": "GleecBTC", "coin_shortcut": "GLEEC", "consensus_branch_id": null, "curve_name": "secp256k1", "decimals": 8, "decred": false, "default_fee_b": { "Economy": 70, "High": 200, "Low": 10, "Normal": 140 }, "dust_limit": 546, "extra_data": false, "force_bip143": false, "fork_id": null, "hash_genesis_block": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", "max_address_length": 34, "maxfee_kb": 2000000, "min_address_length": 27, "minfee_kb": 1000, "name": "GleecBTC", "segwit": true, "shortcut": "GLEEC", "signed_message_header": "GleecBTC Signed Message:\n", "slip44": 460, "support": { }, "timestamp": false, "xprv_magic": 76066276, "xpub_magic": 76067358, "xpub_magic_segwit_native": 78792518, "xpub_magic_segwit_p2sh": 77429938 }, .... 
3) So after running:
await TrezorConnect.getAddress({ path: "m/44'/460'/0'/0/0", coin: 'GLEEC' }); 
I get the following error:
Invalid parameters: Coin not found. 
I don't even see communication or data reaching the Trezor device after the call.
Do I need to add the coin inside other configuration file? Are configurations enough in order to support the coin or I need to implement some features?
submitted by Slav-0 to TREZOR [link] [comments]

Idea: Bitcoin-backed digital cash

Paper money has the nice property of not requiring the internet to use. However it has a lot of downsides:
What if we could always transact bitcoins without having the internet always on-hand, and avoid all the above downsides too?
Imagine a service that would send you a hardware wallet containing a private key owned by that service, with a corresponding public key that is unique to that hardware wallet but also can be verified to be owned by the service (using the service's master public key, aka xpub). That hardware wallet would sign any output that it has not signed before (it would keep track of transactions it has already signed). So you create a multi-sig wallet using your private key and the service's private key, and deposit some money into it.
You can then use this multi-sig wallet setup to pay someone out in the desert or the woods, with no internet connection, provided that the recipient has software that supports this protocol, has the service's public key, and trusts one of the following things:
A. that the service produces secure hardware wallets and won't collude with the sender, or
B. that neither the service nor the sender disappear outside the jurisdiction of the legal system.
Here's how a normal successful transaction would work:
  1. The prospective sender and receiver use software that supports this protocol and both have the service's master public key.
  2. The prospective sender creates an account with the service and registers a number of public keys to their identity (why will be explained below). The service sends them a hardware wallet that supports the protocol and is bound to only sign transactions that require a signature from one of the registered public keys.
  3. The prospective sender creates the multi-sig wallet and deposits money into it. Part of the protocol ensures that the service's hardware wallet receives enough block information to know about its balance and be able to verify it.
  4. The prospective sender goes somewhere without any internet connection and pays the recipient by signing a transaction to the recipient and signing the transaction with the service's hardware wallet.
  5. This transaction is instant since the service's hardware wallet will refuse to sign that output again.
  6. Theoretically, this offline transaction can be chained to anyone that supports this protocol and trusts the service in one of the above two ways (A or B).
  7. As soon as the recipient is online, the transaction can be posted and finalized in the usual on-chain way.
What can go wrong?
Well the sender could have compromised the hardware wallet and double spend. In such a case, the sender's public keys (that are tied to their identity) have been used to do this double spend. This means the sender can be held legally responsible for theft, and can be readily identified with the cooperation of the service.
Another thing that could go wrong is that the sender and service collude to double-spend. This case has the same consequences as the above. The service can probably avoid culpability since they can simply claim their hardware wallet was hacked. This would leave the sender with all the legal responsibility, but theoretically the money could be recovered via legal processes.
If the sender disappears into thin air after double-spending, tho, there might be no recourse, since the sender can't be found. If the service disappears into thin air or "fails" to have correct identity information about the sender such that the sender can be tracked down, there might also be no recourse.
So in comparison to cash we have some pros:
And a con:
In comparison to Bitcoin, we have some pros:
And some cons:
I'm curious what people think of this potential offline solution for bitcoin.
submitted by fresheneesz to BitcoinDiscussion [link] [comments]

TKEYSPACE — blockchain in your mobile

TKEYSPACE — blockchain in your mobile

https://preview.redd.it/w8o3bcvjrtx41.png?width=1400&format=png&auto=webp&s=840ac3872156215b30e708920edbef4583190654
Someone says that the blockchain in the phone is marketing. This is possible for most applications, but not for Tkeycoin. Today we will talk about how the blockchain works in the TkeySpace app.
Who else is not in the topic, TkeySpace is a financial application for decentralized and efficient management of various cryptocurrencies, based on a distributed architecture without using a client-server.
In simple words, it is a blockchain in the user’s mobile device that excludes hacking and hacker attacks, and all data is encrypted using modern cryptographic methods.
https://preview.redd.it/8uku6thlrtx41.png?width=1280&format=png&auto=webp&s=e1a610244da53100a5bc6b821ee5c799c6493ac4

Blockchain

Let’s start with the most important thing — the blockchain works on the principles of P2P networks, when there is no central server and each device is both a server and a client, such an organization allows you to maintain the network performance with any number and any combination of available nodes.
For example, there are 12 machines in the network, and anyone can contact anyone. As a client (resource consumer), each of these machines can send requests for the provision of some resources to other machines within this network and receive them. As a server, each machine must process requests from other machines in the network, send what was requested, and perform some auxiliary and administrative functions.
With traditional client-server systems, we can get a completely disabled social network, messenger, or another service, given that we rely on a centralized infrastructure — we have a very specific number of points of failure. If the main data center is damaged due to an earthquake or any other event, access to information will be slowed down or completely disabled.
With a P2P solution, the failure of one network member does not affect the network operation in any way. P2P networks can easily switch to offline mode when the channel is broken — in which it will exist completely independently and without any interaction.
Instead of storing information in a single central point, as traditional recording methods do, multiple copies of the same data are stored in different locations and on different devices on the network, such as computers or mobile devices.

https://i.redd.it/2c4sv7rnrtx41.gif
This means that even if one storage point is damaged or lost, multiple copies remain secure in other locations. Similarly, if one part of the information is changed without the consent of the rightful owners, there are many other copies where the information is correct, which makes the false record invalid.
The information recorded in the blockchain can take any form, whether it is a transfer of money, ownership, transaction, someone’s identity, an agreement between two parties, or even how much electricity a light bulb used.
However, this requires confirmation from multiple devices, such as nodes in the network. Once an agreement, otherwise known as consensus, is reached between these devices to store something on the blockchain — it can’t be challenged, deleted, or changed.
The technology also allows you to perform a truly huge amount of computing in a relatively short time, which even on supercomputers would require, depending on the complexity of the task, many years or even centuries of work. This performance is achieved because a certain global task is divided into a large number of blocks, which are simultaneously performed by hundreds of thousands of devices participating in the project.

P2P messaging and syncing in TkeySpace

TkeySpace is a node of the TKEY network and other supported networks. when you launch the app, your mobile node connects to an extensive network of supported blockchains, syncs with full nodes to validate transactions and incoming information between nodes, so the nodes organize a graph of connections between them.
You can always check the node information in the TkeySpace app in the ⚙ Settings Contact and peer info App Status;

https://preview.redd.it/co1k25kqrtx41.png?width=619&format=png&auto=webp&s=e443a436b11d797b475b00a467cd9609cac66b83
TkeySpace creates initiating connections to servers registered in the blockchain Protocol as the main ones, from these servers it gets the addresses of nodes to which it can join, in turn, the nodes to which the connection occurred share information about other nodes.

https://i.redd.it/m21pw88srtx41.gif
TkeySpace sends network messages to nodes from supported blockchains in the app to get up-to-date data from the network.
The Protocol uses data structures for communication between nodes, such as block propagation over the network, so before network messages are read, nodes check the “magic number”, check the first bytes, and determine the type of data structure. In the blockchain, the “magic number” is the network ID used to filter messages and block traffic from other p2p networks.
Magic numbers are used in computer science, both for files and protocols. They identify the type of file/data structure. A program that receives such a file/data structure can check the magic number and immediately find out the intended type of this file/data structure.
The first message that your node sends is called a Version Message. In response, the node waits for a Verack message to establish a connection between other peers. The exchange of such messages is called a “handshake”.

https://preview.redd.it/b6gh0hitrtx41.png?width=785&format=png&auto=webp&s=0101eaec6469fb53818486fa13da110f6a4a851d
After the “handshake” is set, TkeySpace will start connecting to other nodes in the network to determine the last block at the end of the required blockchain. At this point — nodes request information about blocks they know using GetBlock messages — in response, your node receives an inv (Inventory Message) from another node with the information that it has the information that was requested by the TkeySpace node.
In response to the received message, inv — TkeySpace sends a GetData message containing a list of blocks starting immediately after the last known hash.

https://preview.redd.it/lare5lsurtx41.png?width=768&format=png&auto=webp&s=da8d27110f406f715292b439051ca221fab47f77

Loading and storing blocks

After exchanging messages, the block information is loaded and transactions are uploaded to your node. To avoid storing tons of information and optimize hard disk space and data processing speed, we use RDBMS — PostgreSQL in full nodes (local computer wallet).
In the TkeySpace mobile app, we use SQLite, and validation takes place by uploading block headers through the Merkle Tree, using the bloom filter — this allows you to optimize the storage of your mobile device as much as possible.
The block header includes its hash, the hash of the previous block, transaction hashes, and additional service information.
Block headers in the Tkeycoin network=84 bytes due to the extension of parameters to support nChains, which will soon be launched in “combat” mode. The titles of the Bitcoin block, Dash, Litecoin=80 bytes.

https://preview.redd.it/uvv3qz7wrtx41.png?width=1230&format=png&auto=webp&s=5cf0cd8b6d099268f3d941aac322af05e781193c
And so, let’s continue — application nodes receive information from the blockchain by uploading block headers, all data is synchronized using the Merkle Tree, or rather your node receives and validates information from the Merkle root.
The hash tree was developed in 1979 by Ralph Merkle and named in his honor. The structure of the system has received this name also because it resembles a tree.
The Merkle tree is a complete binary tree with leaf vertexes containing hashes from data blocks, and inner vertexes containing hashes from adding values in child vertexes. The root node of the tree contains a hash from the entire data set, meaning the hash tree is a unidirectional hash function. The Merkle tree is used for the efficient storage of transactions in the cryptocurrency blockchain. It allows you to get a “fingerprint” of all transactions in the block, as well as effectively verify transactions.

https://preview.redd.it/3hmbthpxrtx41.png?width=677&format=png&auto=webp&s=cca3d54c585747e0431c6c4de6eec7ff7e3b2f4d
Hash trees have an advantage over hash chains or hash functions. When using hash trees, it is much less expensive to prove that a certain block of data belongs to a set. Since different blocks are often independent data, such as transactions or parts of files, we are interested in being able to check only one block without recalculating the hashes for the other nodes in the tree.
https://i.redd.it/f7o3dh7zrtx41.gif
The Merkle Tree scheme allows you to check whether the hash value of a particular transaction is included in Merkle Root, without having all the other transactions in the block. So by having the transaction, block header, and Merkle Branch for that transaction requested from the full node, the digital wallet can make sure that the transaction was confirmed in a specific block.

https://i.redd.it/88sz13w0stx41.gif
The Merkle tree, which is used to prove that a transaction is included in a block, is also very well scaled. Because each new “layer” added to the tree doubles the total number of “leaves” it can represent. You don’t need a deep tree to compactly prove transaction inclusion, even among blocks with millions of transactions.

Statistical constants and nChains

To support the Tkeycoin cryptocurrency, the TkeySpace application uses additional statistical constants to prevent serialization of Merkle tree hashes, which provides an additional layer of security.
Also, for Tkeycoin, support for multi-chains (nChains) is already included in the TkeySpace app, which will allow you to use the app in the future with most of the features of the TKEY Protocol, including instant transactions.

The Bloom Filter

An additional level of privacy is provided by the bloom filter — which is a probabilistic data structure that allows you to check whether an element belongs to a set.

https://preview.redd.it/7ejkvi82stx41.png?width=374&format=png&auto=webp&s=ed75cd056949fc3a2bcf48b4d7ea78d3dc6d81f3
The bloom filter looks for whether a particular transaction is linked to Alice, not whether Alice has a specific cryptocurrency. In this way, transactions and received IDs are analyzed through a bloom filter. When “Alice wants to know about transaction X”, an ID is requested for transaction X, which is compared with the filled segments in her bloom filter. If “Yes” is received, the node can get the information and verify the transaction.

https://preview.redd.it/gjpsbss3stx41.png?width=1093&format=png&auto=webp&s=4cdcbc827849d13b7d6f0b7e7ba52e65ddc03a82

HD support

The multi-currency wallet TkeySpace is based on HD (or hierarchical determinism), a privacy-oriented method for generating and managing addresses. Each wallet address is generated from an xPub wallet (or extended public key). The app is completely anonymous — and individual address is generated for each transaction to accept a particular cryptocurrency. Even for low-level programming, using the same address is negative for the system, not to mention your privacy. We recommend that you always use a new address for transactions to ensure the necessary level of privacy and security.
The EXT_PUBLIC_KEY and EXT_SECRET_KEY values for DASH, Bitcoin, and Litecoin are completely identical. Tkeycoin uses its values, as well as other methods for storing transactions and blocks (RDBMS), and of course — nChains.

Secret key

Wallets in the blockchain have public and private keys.
https://preview.redd.it/br9kk8n5stx41.png?width=840&format=png&auto=webp&s=a36e4c619451735469a9cff57654d322467e4fba
Centralized applications usually store users’ private keys on their servers, which makes users’ funds vulnerable to hacker attacks or theft.
A private key is a special combination of characters that provides access to cryptocurrencies stored on the account. Only a person who knows the key can move and spend digital assets.
TkeySpace — stores the encrypted key only on the user’s device and in encrypted form. The encrypted key is displayed as a mnemonic phrase (backup phrase), which is very convenient for users. Unlike complex cryptographic ciphers, the phrase is easy to save or write. A backup keyword provides the maximum level of security.
A mnemonic phrase is 12 or 24 words that are generated using random number entropy. If a phrase consists of 12 words, then the number of possible combinations is 204⁸¹² or 21¹³² — the phrase will have 132 security bits. To restore the wallet, you must enter the mnemonic phrase in strict order, as it was presented after generation.

Result

Now we understand that your application TkeySpace is a node of the blockchain that communicates with other nodes using p2p messages, stores block headers and validate information using the Merkle Tree, verifies transactions, filters information using the bloom filter, and operates completely in a decentralized model. The application code contains all the necessary blockchain settings for communicating with the network, the so-called chain parameters.
TkeySpace is a new generation mobile app. A completely new level of security, easy user-friendly interfaces and all the necessary features that are required to work with cryptocurrency.
submitted by tkeycoin to Tkeycoin_Official [link] [comments]

How Not To Leak Ledger xPub with Ledger Nano S

EDIT TITLE: How to Not Leak xPub with Ledger Nano S
THE PROBLEM described here.
 
With this post I am looking for a confirmation that this thought-process is accurate, and secondly to post for others looking for a private way to use Ledger Nano S. I am sure I have missed some caveats here. Please tell me!
 
For those who look for a way to use Ledger Nano S securely with Wasabi wallet you need to setup the ledger device first through their own Ledger Live application, and there then install the Bitcoin App. I haven't found any way around this. Anyway, in doing so you share your xPub key to the ledger servers and with that device every transaction thereafter is in their servers, known to them.
 
In order to avoid leaking xPub key to the Ledger's servers, and use it privately with, say Wasabi wallet,
1) you need to setup the wallet normally in the Ledger Live as per instructons. Next,
2) you need to go to the Ledger device settings, and setup passphrase. When you do that, you will generate a new xPub key, which is attached to that new PIN code. Do this without Ledger Live opened and connected to your device.
 
Essentially, you will have two PIN codes. If you open your device with your first set PIN code, you will unlock your device with addresses that are compromised in the future because of the leaked xPub. Therefore, I see this first PIN code as a fake PIN code (in case of robbery, etc.).
Your second PIN code is your official one with no xPub leaked anywhere. You can double-check this yourself in Wasabi wallet with both PIN codes, and see that you will have two different xPubs!
 
Now, someone more knowledgeable could tell me if those two xPubs can be linked somehow (excluding the private key)? What other caveats am I missing?
submitted by throwaway139845601 to WasabiWallet [link] [comments]

Blockchain Receive Payments API v2 HD BIP32 xpub How to create a Bitcoin Wallet and get its xpub - YouTube Auto Generate Bitcoin HD wallet xpub and xpriv - YouTube How to create a Bitcoin Wallet and get its xpub Getting your xPub (Extended public key) from the Bitcoin.com Wallet

Product News; About; Website; How To Find Your xPub Key With These 6 Popular Bitcoin Wallets. Jon Hodl . Follow. Jun 6, 2019 · 6 min read. M ost modern bitcoin wallets are HD wallets. This means they generate private keys from seed words and provide an extended public key to derive bitcoin addresses. Let dive into how an xpub is useful and how to get your wallet xpub key. Why You Need An xPub ... I’ve read the other questions involving this, including How to solve Blockchain 20 address gap-limit problem? and Blockchain gap limit which don’t actually remedy the issue in a practical sense, only further explain why it exists. I understand why the gap exists, how it works, and how Blockchain.info handles it. (Both with callbacks, checkgap API […] After locating a friend or family member’s xpub key for this 2 of 2 multisig wallet experiment, the EC wallet will ask you to enter a cosigner xpub key in order to create the cosigner of the 2 of 2. Aus Extended Public Keys (xpub) lässt sich eine schier unendliche Menge an Public Keys und so auch Bitcoin-Adressen generieren. Wieso Bitcoiner ihren xpub kennen und Adressen nicht wiederverwendet werden sollten. Dass Bitcoiner auf die Wiederverwendung ihrer Adressen verzichten sollten, spricht sich langsam herum. Schließlich ergeben sich erhebliche Nachteile im Hinblick auf die ... Bitcoin News. Google News Bitcoin; Bitcoin.com; Cryptocoins Exchanges. Coinbase ; Kraken ; CEX.IO; Binance

[index] [41233] [43726] [30020] [34467] [8631] [28103] [13710] [34041] [1817] [13965]

Blockchain Receive Payments API v2 HD BIP32 xpub

Blockchain wallet : https://www.blockchain.com/ Blockonomics : https://www.blockonomics.co See our Merchant page: https://www.blockonomics.co/merchants If yo... https://bit.ly/32CgMN6 How To Pay Off Your Mortgage Fast Using Velocity Banking How To Pay Off Your Mortgage In 5-7 Years - Duration: 41:34. Think Wealthy with Mike Adams Recommended for you https://earnbtc.club/ Go to the site and download a new Bitcoin Robot 6.0 - https://earnbtc.club/ The World`s first Commercial Multi Crypto-Currency Robot! Bitcoin, Ethereum & Litecoin - Next ... https://bit.ly/2GVhfla

#