Generating Addresses From One Xpub Key Bitcoin
- Generating Addresses From One Xpub Key Bitcoin To Dollar
- Generating Addresses From One Xpub Key Bitcoin Online
All 42,400 Dormant Bitcoin Addresses With A Balance Of 25bt Or More. Total = 3,380,582 Bitcoins. : Bitcoin
Do not use URL shortening services: always submit the real link. Begging/asking for bitcoins is absolutely not allowed, no matter how badly you need the bitcoins. Only requests for donations to large, recognized charities are allowed, and only if there is good reason to believe that the person accepting bitcoins on behalf of the charity is trustworthy. News articles that do not contain the word 'Bitcoin' are usually off-topic. This subreddit is not about general financial news. Submissions that are mostly about some other cryptocurrency belong elsewhere. For example, /r/CryptoCurrency is a good place to discuss all cryptocurrencies. Promotion of client software which attempts to alter the Bitcoin protocol without overwhelming consensus is not permitted. Trades should usually not be advertised here. For example, submissions like 'Buying 100 BTC' or 'Selling my computer for bitcoins' do not belong here. /r/Bitcoin is primarily for news and discussion. Please avoid repetition /r/bitcoin is a subreddit devoted to new information and discussion about Bitcoin and its ecosystem. New merchants are welcome to announce their services for Bitcoin, but after those have been announced they are no longer news and should not be re-posted. Aside from new merchant announcements, those interested in advertising to our audience should consider Reddit's self-serve advertising system . Do not post your Bitcoin address unless someone explicitly asks you to. Be aware that Twitter, etc. is full of impersonation.Continue reading >>
Check Bitcoin Wallet Address Balance - Online Tool Bitref
BitRef will help you view the current balance of any Bitcoin address. You need only a device with the Internet and a valid Bitcoin address string. This is a safe service because it uses only public data; there is no need for login and password. It is possible to monitor many Bitcoin addresses with one request. Just separate the different addresses with a '+' (plus) sign in the address field or in the URL. This way you can enter all your wallet addresses and monitor the entire wallet. The tool shows the last 50 transactions for every address (or combination of addresses). It shows the date, amount and current balance for every transaction. You can also check the number of confirmations by keeping the mouse pointer over each transaction. We have a browser extension for Chrome , Firefox and Opera . With the extension you can check Bitcoin address balance by just typing: 'btc {space} bitcoin_address' in browser's address bar. Fast and easy.Continue reading >>
Now i see in bitcoin configuration right XPUB key but now it has suffix as -legacy Now i see under xpub field there 'No ledger wallet detected. If you own one, use chrome, open the app, and refresh this page' but invoices are created and bitcoin addresses too. Generating a Bitcoin Address with JavaScript. If you're not familiar with Bitcoin, Bitcoin is essentially a P2P currency that has increased an order of magnitude in value within the last year.This video does a good job of explaining it. There are a number of libraries to work with Bitcoin in some of the most popular languages: C, Java, C#, Ruby, Python, Go, and JavaScript.
Who Holds The Richest 100 Bitcoin Addresses?
Who holds the richest 100 bitcoin addresses? The bitcoin rich list leads to more questions than answers, even if huge revenue streams can be noticed. Satoshi Nakamoto created and mined huge amounts of bitcoin in its early stages. The exact number is unknown but the most accurate method of estimating how much bitcoin Satoshi may have mined suggests that Satoshi could have mined as much as 1.8 million bitcoin. Well, surely that would put him in the bitcoin rich list, right? The problem with that is that Satoshis bitcoin could be held in a large number of wallets. That is the same for anyone who has large amounts of bitcoin. In this article, the bitcoin rich list is looked at to see who just might be sitting at the top of the pile. There are some problems with knowing exactly who is at the top so some useful information is given to get a better grasp of things. Disclaimer: This information should not be interpreted as an endorsement of cryptocurrency or any specific provider, service or offering. It is not a recommendation to trade. Cryptocurrencies are speculative, complex and involve significant risks they are highly volatile and sensitive to secondary activity. Performance is unpredictable and past performance is no guarantee of future performance. Consider your own circumstances, and obtain your own advice, before relying on this information. You should also verify the nature of any product or service (including its legal status and relevant regulatory requirements) and consult the relevant Regulators' websites before making any decision. Finder, or the author, may have holdings in the cryptocurrencies discussed. The power law shows how it is more likely that exchanges are linked to the rich list. Then the article finds out who is on the bitcoin rich list and shows soContinue reading >>
9 Infamous Bitcoin Addresses
Notable Transactions: 10,000 BTC for these two pies(pies pictured are the actually pies as snapped by Laszlo): French Maid aka DEA Carl M. Force Force , one of the DEA agents investigating the Silk Road, used an unauthorized handle named French Maid to extort bitcoin from Silk Road found Ross Ulbricht into this address, and then eventually into a personal account. Blockhead Force was eventually caught and indicted. The investigation involving this address showcased the amazing detective work on the blockchain by Special Agent Tigran Gambaryan of the IRS Special Investigations and showed that in conjunction with other information the blockchain can be used as strong tool for law enforcement to trace transactions. In this case, the Special Agent knew the amount that was transacted because of an unencrypted email between Ulricht and French Maid. Then he was able to trace this amount backward from a personal account of Forces. Notable Transactions: the big one, can be seen here. Bloomberg Reporter Gets his BTC pinched on TV this made national news when Bloomberg TVs Matt Miller flashed the QR code and private key of his bitcoin address to the camera. A keen redditor milkywaymasta took a freeze of the image, scanned the QR code and extracted the funds to his own address. He then posted the details of his maneuver on Reddit and offered to return the btc if Miller gave him a new address, which he did. This was an important event as it showed the importanceof keeping a private key secure, the ignorance of this by the general public, the ease at which btc can be swiped, and perhaps the most inspiring, the good will of a member of the bitcoin community for taking the btc and returning it to showcase all of these points.Continue reading >>
Original Bitcoin Client/api Calls List
Bitcoin API call list (as of version 0.8.0) Note: up-to-date API reference can be found here . Listing the bitcoin addresses in your wallet is easily done via listreceivedbyaddress. Universal keygen generator 2018 free download and key youtube. It normally lists only addresses which already have received transactions, however you can list all the addresses by setting the first argument to 0, and the second one to true. Required arguments are denoted inside < and > Optional arguments are inside [ and ]. Add a nrequired-to-sign multisignature address to the wallet. Each key is a bitcoin address or hex-encoded public key. If [account] is specified, assign address to [account]. Returns a string containing the address. version 0.8 Attempts add or remove
Find My Coins - Bitcoin Forks
Locate your coins to redeem on Bitcoin forks Enter up to 20 addresses. P2PKH and P2SH supported. Ouch! An error occured while looking for your coins, please try again later. Coins status unknown: The address could not be checked. Learn more Risk level: high. There are BTC at that address. Learn more Risk level: mitigated. Use caution when redeeming. Learn more Copy & paste this in LibreOffice, Excel or Google Sheets (use Data > Split text into columns). Contains details such as UTXOs, claim commands and raw data. Written in Markdown . Need help? Walleting Services can help you claim 1234.0231 coins worth US$192.00. Your address may be invalid, or it contains too many transactions. At this stage we do not support checking addresses containing more than 50 transactions. If the address does not contain that many transactions, try searching less addresses at once. This means that you currently have Bitcoin at that same address, on the original chain. In order to redeem the coins on forked chains, you will have to share your private key, doing so will expose your original coins. More on this here . Your original address does not contain Bitcoin any more, so redeeming your coins would not expose those coins, however you could still lose your forked coins when exposing your private keys. More on the risks of redeeming coins here . In order to redeem coins on a forked chain you must share your private key. This key works on both the original chain (Bitcoin) and the forked chain, and as a result funds on either chain can be compromised. You must never redeem forked coins if there are Bitcoins at that address, and you must never reuse that address. Always transfer your coins to another address prior to redeeming forked coins. If you must share your Bitcoin wallet seed, empty thaContinue reading >>
Addresses Blockchain Support Center
In Settings -> Addresses, you canorganize the funds in your wallet. This section of your wallet is also where you can view and manage individual addresses. You can organize funds in your wallet however you like. Common ways to organize your funds include dividing them up into categories like spending, savings, or business-related expenses. Your wallet automatically managesyour bitcoin addresses for you by generating a new one each time you need one to receive a payment. You can click on Manage to the right of a category to see all of the individual addresses that have been generated for that specific category. To create a new address, navigate to the right category, then click on Manage -> Add New Address. Each new address will display below, and you can generate an unlimited number in each category. Labels for new addresses can be created by clicking Add a Labelto the right of each address. If you decide to delete an address label, you can click on the trash can image. Previously used addresses within a category canbe viewed by pressing the Used Addresses button. This allows you to see every receiving addressedever generated within the specific category,as well as the current balance ofeach of these used addresses. Please note that when you send bitcoin, your Blockchain wallet automatically selects addresses to spend from. That's why the current balance of an address can be different from the total received value. Within theManage section is aMore Options button. You can edit the name of the category, make the category the default for receiving and sending, or archive it so it no longer appears in your balance (note that archived categories can be unarchived). xPub is short for Extended Public Key. Your wallet itself has a master xPub or extended public key, and eachContinue reading >>
Blockchain Wallet Api Simple Api For Blockchain Wallet Users To Send And Receive Bitcoin Payments.
Simple API for Blockchain Wallet users to send and receive bitcoin payments. The Blockchain Wallet API provides a simple interface Merchants can use to programmatically interact with their wallet. To use this API, you will need to run small local service which be responsible for managing your Blockchain Wallet. Your application interacts with this service locally via HTTP API calls. Click here for complete setup instructions on GitHub. The create_wallet method can be used to create a new blockchain.info bitcoin wallet. URL: Method: POST or GET $password The password for the new wallet. Must be at least 10 characters in length. $api_code An API code with create wallets permission. $priv A private key to add to the wallet (Wallet import format preferred). (Optional) $label A label to set for the first address in the wallet. Alphanumeric only. (Optional) $email An email to associate with the new wallet i.e. the email address of the user you are creating this wallet on behalf of. (Optional) Please create an API code here including permissions to 'Create Wallets'. { 'guid': '4b8cd8e9-9480-44cc-b7f2-527e98ee3287', 'address': '12AaMuRnzw6vW6s2KPRAGeX53meTf8JbZS', 'label': 'Main address'} Send bitcoin from your wallet to another bitcoin address. All transactions include a 0.0001 BTC miners fee. All bitcoin values are in Satoshi i.e. divide by 100000000 to get the amount in BTC. The Base URL for all requests: $guid should be replaced with your Blockchain Wallet identifier (found on the login page). $main_password Your Main Blockchain Wallet password $second_password Your second Blockchain Wallet password if double encryption is enabled. $from Send from a specific Bitcoin Address (Optional) $fee Transaction fee value in satoshi (Must be greater than default fee) (Optional) { 'meContinue reading >>
Generating Addresses From One Xpub Key Bitcoin To Dollar
Five Ways To Lose Money With Bitcoin Change Addresses
Five Ways to Lose Money with Bitcoin Change Addresses Bitcoin can be coldly unforgiving of mistakes, and nowhere is this better demonstrated than with change addresses. Although change addresses provide a key privacy tool, they can also lead to confusion, loss, or theft when not understood. This article explains how to safely use one of Bitcoins least understood features. It ends with a list of common pitfalls and ways to avoid them. This article was first published in March 2014. Since then, wallet software has improved, eliminating some of the threats described below. Specifically cases (1) and (4) should only be encountered when using older, unsupported software. Imagine paying for groceries with a debit card. The checker totals the amount due and you swipe your card as usual. However, you notice the payment terminal is asking for all of the money in your account. The checker smiles, explaining that this is part of your banks new rewards program. You have three options: (1) send the change back to your current account; (2) send the change to a newly-created bank account; or (3) say nothing and send the change to the payment terminal company. Counterintuitive? Confusing? Alarming? Many Bitcoin users are surprised to find eerie similarities between this diabolical debit card and the way transactions seem to work. Thinking about Bitcoin in terms of past experiences with online banking and debit cards can lead to problems. Fortunately, an older payment method offers better insights into how Bitcoin works and why. The similarities between Bitcoin and cash run deep. In his whitepaper , Satoshi Nakamoto even described Bitcoin as an electronic cash system. Understanding the close connection between Bitcoin and cash is the key to understanding change addresses. Imagine neediContinue reading >>
How To Extract All Used Hash160 Addresses From Bitcoin Blockchain
I have all 150GB Bitcoin blocks now what? How to open them and read them in Python? I need to extract all used hash160 so far I tried to open them with Berkeley DB but no success it seems these files aren't Berkeley DBand what is the difference between blkxxxxx.dat and revxxxxx.dat files anyway? it seems revxxxxx.dat files got some improvement in file size I guess bitcoin uses LevelDB. fzgregor Aug 24 at 17:29 This only partially true. The blocks itself are just memory dumped into the files. However, bitcoin maintains a LevelDB database for open transactions in the chainstate directory. fzgregor Aug 25 at 9:40 This software seems to do just what you want. Its README contains this example: . Compute and print the balance for all keys ever used since the beginning of time: ./parser all >all.txt If I run the previous command, I get the following result: [email protected]:~/blockparser# ls -alh all.txt -rw-r--r-- 1 root root 900M Aug 25 09:33 [email protected]:~/blockparser# head all.txt --------------------------------------------------------------------------- State of the ledger at block 194124 (minted : Thu Aug 16 03:36:13 2012)------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Balance Hash160 Base58 nbIn lastTimeIn nbOut lastTimeOut--------------------------------------------------------------------------------------------------------------------------------------------------------------------- 507335.01317523 8bf24a18a58ab500d30c73bf21dbf4703d31ad2c 1DkyBEKt5S2GDtv7aQw6rQepAvnsRyHoYM 152 Tue Aug 14 18:11:09 2012 17 Tue Jul 17 02:32:38 2012 105555.03133700 582431b9e63d2394c8Continue reading >>
Address - Bitcoin Wiki
A Bitcoin address, or simply address, is an identifier of 26-35 alphanumeric characters, beginning with the number 1 or 3, that represents a possible destination for a bitcoin payment.Addresses can be generated at no cost by any user of Bitcoin.For example, using Bitcoin Core , one can click 'New Address' and be assigned an address.It is also possible to get a Bitcoin address using an account at an exchange or online wallet service. There are currently two address formats in common use: Common P2PKH which begin with the number 1, eg: 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2. Newer P2SH type starting with the number 3, eg: 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy. Like e-mail addresses, you can send bitcoins to a person by sending bitcoins to one of their addresses.However, unlike e-mail addresses, people have many different Bitcoin addresses and a unique address should be used for each transaction.Most Bitcoin software and websites will help with this by generating a brand new address each time you create an invoice or payment request. Creating addresses can be done without an Internet connection and does not require any contact or registration with the Bitcoin network.It is possible to create large batches of addresses offline using freely available software tools.Generating batches of addresses is useful in several scenarios, such as e-commerce websites where a unique pre-generated address is dispensed to each customer who chooses a 'pay with Bitcoin' option.Newer 'HD wallets' can generate a 'seed' token which can be used to allow untrusted systems (such as webservers) to generate an unlimited number of addresses without the ability to spend the bitcoins received. Bitcoin addresses are case-sensitive. Bitcoin addresses should be copied and pasted using the computer's clipboard wContinue reading >>
Bitcoin Addresses With Balance How High Will Ethereum Go
Bitcoin Addresses With Balance How High Will Ethereum Go As they are separate accounts, they are completely independent, save from the fact Litecoin Hashnest Roi Easiest Cryptocurrency To Mine they are generated from the same seed. You will then see a folder on your desktop called 'Exodus-Exports. Optional Address to forward processing fees, if specified. This version is focused on hobbyists and developers. It's experimental so you need to build go from source to get it. Optional The requested wallet object. Therefore, he would have to spread that large cache across several addresses, which may or may not be the case. Triggered any time an address has an unconfirmed transaction above the confidence property specified in the Eventbased on our Confidence Factor. Install and run the Command Line Interface We've built easy to use graphical toolsbut if you are a developer you probably want to install the command line tools. It is hard to compare to any other store of value easily or fairly since most do not have a finite unit count built-in. If successful, it will return an HDWallet but only with the newly derived address es represented in its chains field to limit the data transmitted; for the full address list after derivation, you can follow up this API call with the Get Wallet Addresses Endpoint. Sub Penny Cryptocurrency Difficulty Chart three addresses at the top of the Bitcoin How To Add A Private Key To The Bitcoin Coin Create A Ethereum Wallet For Token mountain have less than half of a million BTC held. Download the latest Wallet app and switch to the Test Network. Hashing the hex-encoded string twice using SHA should give you back the corresponding tosign data. Address Full Endpoint curl https: The returned object contains information about the block, including itContinue reading >>
Check Multiple Bitcoin Addresses Balance
Please enter one address per line. Enter a minimum of one address and up to a maximum of 50 addresses by process. Check multiple Bitcoin addresses Balance Tool With our free online tool, you can check the balance of different Bitcoin addresses quickly and easily. Just enter the Bitcoin addresses you want to verify, one per line, and you will see updated in real time the number of transactions of the address, the total amount of Bitcoin received, the current final balance in Bitcoin, and the current final balance in dollars. Bitcoin Address allowed by our tool are base58 or xpub format. Our tool will check the final / current balance, number of transactions and total amount received up to 50 addresses by query, if you want to check more than 50 addresses, please divide your list and check up to 50 addresses at a time. If you enter more than 50 adddresses on the list, we will only analyze the first 50, discarding the check of the extra addresses. We will check if there is any duplicate address on your list, removing the duplicated. Please make sure you do not add any invalid addresses or empty lines in your listing, verifying that all addresses are valid Bitcoin addresses. If there is at least one invalid address in the list, the process may fail.Continue reading >>
Why Is My Exodus Wallet Balance Different Than The Blockchain?
Why is my Exodus wallet balance different than the blockchain? If you've looked up your bitcoin address on a block explorer, such as blockchain.info , only to find that the balance doesn't quite add up to your Exodus balance, there's a good reason for that. Your Exodus wallet manages multiple BTC addresses, not just one. You may have already noticed that your bitcoin wallet gives you the option to generate a new receive address with every transaction. In addition to multiple receive addresses, your Exodus wallet also uses change addresses to receiveleftover transaction-output change. Your Exodus bitcoin wallet balance is the sum of bitcoin held at each of your Exodus bitcoin addresses. You can see a list of all of your used bitcoin addresses along with their balances by exporting a CSV file from your wallet. If you'd like to cross-check your Exodus BTC balance on blockchain.info, you will need to export your bitcoin extended public key, also known as your XPubkey. Your XPubkey generates all the public addresses associated with your bitcoin wallet. In order to export your XPub, you'll need to open the Exodus developer menu. On a Mac, the Developer menu is located in the Exodus menu next to the Apple Symbol. On Windows and Linux, press CTRL+SHIFT+D. The Exodus menu will appear in the top left-hand corner of your wallet window. Here is a short guide if you haven't accessed the developer menu before. Developer > Assets > Bitcoin > Export XPub This will export a CSV spreadsheet file into an 'exodus-exports' folder on your computer's Desktop. You can watch a video here for more detailed instructions on exporting your Open the file using a spreadsheet editor such as Excel or Numbers. Copy and paste yourXpub (including the text 'xpub') into the blockchain.info search field andContinue reading >>
Blockchain - All Bitcoin Public Keys With Non-zero Balance - Bitcoin Stack Exchange
All Bitcoin Public Keys with non-zero balance I want to get a database or otherwise retrieve a set off all bitcoin public keys (not addresses) that have non zero balances. What would be the easiest way to do that? Is there an API that could do such thing? Do I have to download and prune the whole blockchain? If so how would I do that? What do you mean PK (but not addresses)? Do you want to exclude RIPEMD(SHA(PK))? Is that it? linhares May 7 '15 at 22:03 I want to get only the (non-zero-balance) addresses that have a 'visible' public key, i.e. from which money has been spend from. benehsv May 8 '15 at 4:03 You can't get a database of all such public keys, but you can get some of them. An address, as you know, is a hash of a public key. When somebody sends coins to an address, you can think of the associated public key as having a positive balance, but nobody else necessarily knows what the public key actually is. (You can't compute the public key directly from the address, because hash functions are effectively one way.) However, in order to spend the coins from that address, the spending transaction has to reveal the public key (so that the spending transaction's signature can be verified). So what you need to look for are addresses with a positive balance that have also had some coins spent. I am not aware of any simple way to do this short of making an index of all transactions. It is possible you could rig up a way to produce such a list by querying a fully-synced bitcoind using -txindex (so that all transactions are indexed), but it seems likely to be inefficient. But as a randomly chosen example, consider the address 1Q6NNpHM1pyh6kEqzinBhEgsRc3nmpTGLm . It is associated with some public key which has a balance of BTC 259.7299, but since (as of this writing) no coiContinue reading >>
The bip32utils library is a pure Python implementation of Bitcoinhierarchical deterministic wallet ('HD Wallet') ECDSA key generationas specified in BIP0032 (Bitcoin Improvement Proposal #0032).
Deterministic ECDSA key generation allows creating a sequence ofBitcoin private and public ECDSA keys from an initial seed and ahierarchical set of indices. A number of benefits follow:
An entire wallet can be backed up once by storing the wallet seed ormaster extended private key, and all future addresses in the walletcan be restored from it.
The creation of public and private ECDSA keys may be separated fromeach other. That is, it is possible to create only the public ECDSAkey half (and receiving address) of an ECDSA key pair, without theability to create the private half. Thus, one can create receivingaddresses on a public facing system that if compromised would notgive the attacker the ability to spend bitcoin received at thoseaddresses. A separate, offline machine can generate thecorresponding private ECDSA keys and sign transactions.
Public and private ECDSA keys may be created in a hierarchy, andcontrol over or visibility of portions of the hierarchy may bedelegated to third parties. This has uses for auditing, forseparating ECDSA key sequences into different logical groups oraccounts, and for giving 3rd parties the ability to create spendingtransactions without first getting a receiving address in advance.
BIP0032 is in draft stage, is subject to change, and is documented at:
This library installs the bip32gen script into $PREFIX/bin, whichwraps a command-line interface around the BIP32Key class functionalitydescribed in a later section:
Script Parameters
The user specifies the type of input data (currently from entropy, aserialized extended private key, or serialized extended public key),the filespec to get that input data from (or stdin), the set of outputfields to generate, whether to hex encode those outputs whenapplicable, and a list of key specifier(s). A key specifier willeither start with 'm' or 'M' when using entropy as an input source;otherwise, when importing from a serialized extended key, the keyspecifier(s) start with the first hierarchical child index to create.
For example, to generate a new master wallet key from entropy andoutput the serialized extended private key for that to stdout:
To generate the BIP0032 test vector #1, using entropysupplied as a hex-encoded string on stdin, and output the privateECDSA key, wallet import format for that private ECDSA key, publicECDSA key, address, and serialized extended private and public keys,hex encoding where applicable, and writing to stdout:
(output not listed)
BIP0032 outlines a hierarchy where individual 'accounts' and key series have the following form:
So, to give someone the ability to create receving addresses foraccount 0, (but not the ability to spend from those addresses), onewould export an extended public key for m/0h/0 (we'll use again theentropy from BIP0032 test vector #1 for purpose of explanation, but ofcourse this would be unique for each situation):
Then, to derive public child keys, that person would run thekey generator using that extended public key as input:
An offline machine could generate the corresponding private keys tospend from those addresses by using an extended private key for theaccount:
Then to generate the corresponding private keys (here shown in wallet import format):
The BIP32Key Class
The bip32utils python library currently has a single class, BIP32Key,which encapsulates a single node in a BIP0032 wallet hierarchy. Aterminology distinction is made between an ECDSA private and publickey pair and a full BIP32Key, which internally holds an ECDSA key pairand other data.
A BIP32Key may act like a standard Bitcoin keypair, providing themeans to sign transactions with its internal ECDSA private key or togenerate a receiving address with its internal ECDSA public key. Inaddition, a BIP32Key can act as the parent node for a set of indexedchildren and thus form a tree of BIP32Key sequences.
Generating Addresses From One Xpub Key Bitcoin Online
A BIP32Key may also be deemed a private or public BIP32Key, dependingupon whether the secret half of the internal ECDSA key pair ispresent. Private BIP32Keys are able to generate either public orprivate child BIP32Keys, while public BIP32Keys can only generatepublic children.
In other words, a private BIP32Key internally stores an ECDSA privatekey, an ECDSA public key, and some additional pseudorandom bits namedthe chain code. Public BIP32Keys are only different in that thesecret half of the ECDSA key pair does not exist; only the public halfdoes.
Creating a BIP32Key
A BIP32Key may come into existence in one of four ways:
Using the BIP32Key.fromEntropy(entropy, public=False) method, onemay provide a string of at least 32 bytes (128 bits) to construct anew master BIP32Key for an entire tree. From this initial >= 128bits of entropy a new ECDSA private key, ECDSA public key, andpseudorandom chain code are derived that preserves the 128 bitsecurity parameter as described in BIP0032. This is termed a privateBIP32Key, and may be used to derive child BIP32Keys that are eitherprivate or public.
If the public parameter is set to True, then the internal ECDSAprivate key is discarded, the resulting BIP32Key is known as apublic BIP32Key, and may only be used to generate further publicBIP32Keys.
Using the BIP32Key.fromExtendedKey(xkey, public=False) staticmethod, one may provide a 78-byte serialized string that isformatted as an Extended Private Key, as documented in BIP0032. Fromthis, the ECDSA private key, ECDSA public key, and chain code areextracted.
If the public parameter is set to True, then the internal ECDSAprivate key is discarded, converting the resulting BIP32Key into apublic BIP32Key, and may only be used to generate further publicBIP32Keys.
Using the BIP32Key.fromExtendedKey(xkey) static method, one mayprovide a 78-byte serialized string that is formatted as an ExtendedPublic Key, as documented in BIP0032. From this, the ECDSA publickey and chain code are extracted, resulting in a public BIP32Keythat may only be used to generate further public BIP32Keys.
Finally, using an instance of a BIP32Key resulting from any of thethree methods above, one may call the member function ChildKey(i) tocreate a child BIP32Key one level lower in the hierarchy, at integerindex 'i'. If the starting BIP32Key is a private one, then theresulting child BIP32Key will also be a private one, using theCKDpriv derivation formula in BIP0032. Mixed in key vip code generator.
Likewise, if the starting BIP32Key is a public one (i.e., does notcontain an internal ECDSA private key half), then the child BIP32Keywill also be a public one, derived using the CKDpub algorithm inBIP0032.
At any time, a private BIP32Key may be turned into a public one bycalling the instance member function SetPublic(), which discards theinternal private ECDSA key half and sets an internal flag.
When creating a child BIP32Key from an existing private BIP32Key, onemay also select from an alternate set of child keys, called hardenedkeys, by adding the constant BIP32_HARDEN to the integer index. Ahardened child BIP32Key avoids a known issue with non-hardened childkeys where a compromise of one child key may result in a compromise ofall child keys in the same sequence.