Classes that support the
Wallet, which knows how to find and save transactions relevant to a set of keys or scripts, calculate balances, and spend money: the wallet has many features and can be extended in various ways, please refer to the website for documentation on how to use it.
Interface Summary Interface Description CoinSelectorA CoinSelector is responsible for picking some outputs to spend, from the list of all possible outputs. EncryptableKeyChainAn encryptable key chain is a key-chain that can be encrypted with a user-provided password or AES key. KeyBagA KeyBag is simply an object that can map public keys, their 160-bit hashes and script hashes to ECKey and
KeyChainA KeyChain is a class that stores a collection of keys for a
KeyChainFactoryFactory interface for creation keychains while de-serializing a wallet. KeyChainGroupStructureDefines a structure for hierarchical deterministic wallets. Protos.DeterministicKeyOrBuilder Protos.EncryptedDataOrBuilder Protos.ExchangeRateOrBuilder Protos.ExtensionOrBuilder Protos.KeyOrBuilder Protos.PeerAddressOrBuilder Protos.ScriptOrBuilder Protos.ScriptWitnessOrBuilder Protos.ScryptParametersOrBuilder Protos.TagOrBuilder Protos.TransactionConfidenceOrBuilder Protos.TransactionInputOrBuilder Protos.TransactionOrBuilder Protos.TransactionOutputOrBuilder Protos.WalletOrBuilder RiskAnalysisA RiskAnalysis represents an analysis of how likely it is that a transaction (and its dependencies) represents a possible double spending attack. RiskAnalysis.Analyzer WalletExtensionAn object implementing this interface can be added to a
Walletand provide arbitrary byte arrays that will be serialized alongside the wallet.
WalletFiles.ListenerImplementors can do pre/post treatment of the wallet file. WalletProtobufSerializer.WalletFactory
Class Summary Class Description AllowUnconfirmedCoinSelectorThis coin selector will select any transaction at all, regardless of where it came from or whether it was confirmed yet. BasicKeyChainA
KeyChainthat implements the simplest model possible: it can have keys imported into it, and just acts as a dumb bag of keys.
CoinSelectionRepresents the results of a
DecryptingKeyBagA DecryptingKeyBag filters a pre-existing key bag, decrypting keys as they are requested using the provided AES key. DefaultCoinSelectorThis class implements a
CoinSelectorwhich attempts to get the highest priority possible.
DefaultKeyChainFactoryDefault factory for creating keychains while de-serializing. DefaultRiskAnalysisThe default risk analysis. DefaultRiskAnalysis.Analyzer DeterministicKeyChain DeterministicKeyChain.Builder<T extends DeterministicKeyChain.Builder<T>> DeterministicSeedHolds the seed bytes for the BIP32 deterministic wallet algorithm, inside a
FilteringCoinSelectorA filtering coin selector delegates to another coin selector, but won't select outputs spent by the given transactions. KeyChainGroup KeyChainGroup.BuilderBuilder for
KeyTimeCoinSelectorA coin selector that takes all coins assigned to keys created before the given timestamp. MarriedKeyChainA multi-signature keychain using synchronized HD keys (a.k.a HDM) MarriedKeyChain.Builder<T extends MarriedKeyChain.Builder<T>>Builds a
Protos Protos.DeterministicKeyData attached to a Key message that defines the data needed by the BIP32 deterministic key hierarchy algorithm. Protos.DeterministicKey.BuilderData attached to a Key message that defines the data needed by the BIP32 deterministic key hierarchy algorithm. Protos.EncryptedDataProtobuf type
Protos.ExchangeRateAn exchange rate between Bitcoin and some fiat currency. Protos.ExchangeRate.BuilderAn exchange rate between Bitcoin and some fiat currency. Protos.ExtensionAn extension to the wallet Protos.Extension.BuilderAn extension to the wallet Protos.KeyA key used to control Bitcoin spending. Protos.Key.BuilderA key used to control Bitcoin spending. Protos.PeerAddressProtobuf type
Protos.ScryptParametersThe parameters used in the scrypt key derivation function. Protos.ScryptParameters.BuilderThe parameters used in the scrypt key derivation function. Protos.TagA simple key->value mapping that has no interpreted content at all. Protos.Tag.BuilderA simple key->value mapping that has no interpreted content at all. Protos.TransactionProtobuf type
Protos.TransactionConfidenceA description of the confidence we have that a transaction cannot be reversed in the future. Protos.TransactionConfidence.BuilderA description of the confidence we have that a transaction cannot be reversed in the future. Protos.TransactionInputProtobuf type
Protos.WalletA bitcoin wallet Protos.Wallet.BuilderA bitcoin wallet RedeemDataThis class aggregates data required to spend transaction output. SendRequestA SendRequest gives the wallet information about precisely how to send money to a recipient or set of recipients. WalletA Wallet stores keys and a record of transactions that send and receive value from those keys. Wallet.SendResultA SendResult is returned to you as part of sending coins to a recipient. WalletFilesA class that handles atomic and optionally delayed writing of the wallet file to disk. WalletProtobufSerializerSerialize and de-serialize a wallet to a byte stream containing a protocol buffer. WalletTransactionStores data about a transaction that is only relevant to the
Enum Summary Enum Description BasicKeyChain.StateWhether this basic key chain is empty, full of regular (usable for signing) keys, or full of watching keys. DefaultRiskAnalysis.RuleViolationThe reason a transaction is considered non-standard, returned by
KeyChain.KeyPurpose Protos.Key.OutputScriptTypeProtobuf enum
Protos.Transaction.PoolThis is a bitfield oriented enum, with the following bits: bit 0 - spent bit 1 - appears in alt chain bit 2 - appears in best chain bit 3 - double-spent bit 4 - pending (we would like the tx to go into the best chain) Not all combinations are interesting, just the ones actually used in the enum. Protos.Transaction.PurposeFor what purpose the transaction was created. Protos.TransactionConfidence.SourceWhere did we get this transaction from? Knowing the source may help us to risk analyze pending transactions. Protos.TransactionConfidence.TypeProtobuf enum
Protos.Wallet.EncryptionTypeThe encryption type of the wallet. RiskAnalysis.Result Wallet.BalanceTypeIt's possible to calculate a wallets balance from multiple points of view. Wallet.MissingSigsModeEnumerates possible resolutions for missing signatures. WalletTransaction.Pool
Exception Summary Exception Description AllRandomKeysRotatingIndicates that an attempt was made to upgrade a random wallet to deterministic, but there were no non-rotating random keys to use as source material for the seed. DeterministicUpgradeRequiredExceptionIndicates that an attempt was made to use HD wallet features on a wallet that was deserialized from an old, pre-HD random wallet without calling upgradeToDeterministic() beforehand. DeterministicUpgradeRequiresPasswordIndicates that the pre-HD random wallet is encrypted, so you should try the upgrade again after getting the users password. UnreadableWalletExceptionThrown by the
WalletProtobufSerializerwhen the serialized protocol buffer is either corrupted, internally inconsistent or appears to be from the future.
UnreadableWalletException.BadPassword UnreadableWalletException.FutureVersion UnreadableWalletException.WrongNetwork Wallet.BadWalletEncryptionKeyExceptionThrown if the private keys and seed of this wallet cannot be decrypted due to the supplied encryption key or password being wrong. Wallet.CompletionExceptionClass of exceptions thrown in
Wallet.CouldNotAdjustDownwardsThrown when we were trying to empty the wallet, and the total amount of money we were trying to empty after being reduced for the fee was smaller than the min payment. Wallet.DustySendRequestedThrown if the resultant transaction would violate the dust rules (an output that's too small to be worthwhile). Wallet.ExceededMaxTransactionSizeThrown if the resultant transaction is too big for Bitcoin to process. Wallet.MultipleOpReturnRequestedThrown if there is more than one OP_RETURN output for the resultant transaction.