Package-level declarations

The functionality exposed in this package is in fact a combination of the bdk_wallet, bdk_core, bdk_electrum, bdk_esplora, bitcoin, and miniscript crates.

Types

Link copied to clipboard

A bitcoin address

Link copied to clipboard
sealed class AddressData

The type of address.

Link copied to clipboard
data class AddressInfo(var index: UInt, var address: Address, var keychain: KeychainKind) : Disposable

A derived address and the index it was found at.

Link copied to clipboard

A bitcoin address

Link copied to clipboard
Link copied to clipboard

The Amount type can be used to express Bitcoin amounts that support arithmetic and conversion to various denominations. The operations that Amount implements will panic when overflow or underflow occurs. Also note that since the internal representation of amounts is unsigned, subtracting below zero is considered an underflow and will cause a panic.

Link copied to clipboard
interface AmountInterface

The Amount type can be used to express Bitcoin amounts that support arithmetic and conversion to various denominations. The operations that Amount implements will panic when overflow or underflow occurs. Also note that since the internal representation of amounts is unsigned, subtracting below zero is considered an underflow and will cause a panic.

Link copied to clipboard
data class Balance(    var immature: Amount,     var trustedPending: Amount,     var untrustedPending: Amount,     var confirmed: Amount,     var trustedSpendable: Amount,     var total: Amount) : Disposable

Balance, differentiated into various categories.

Link copied to clipboard
sealed class Bip32Exception : Exception
Link copied to clipboard
sealed class Bip39Exception : Exception
Link copied to clipboard
data class BlockId(var height: UInt, var hash: String)
Link copied to clipboard

A BumpFeeTxBuilder is created by calling build_fee_bump on a wallet. After assigning it, you set options on it until finally calling finish to consume the builder and generate the transaction.

Link copied to clipboard

A BumpFeeTxBuilder is created by calling build_fee_bump on a wallet. After assigning it, you set options on it until finally calling finish to consume the builder and generate the transaction.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
data class CanonicalTx(var transaction: Transaction, var chainPosition: ChainPosition) : Disposable
Link copied to clipboard

Build a BIP 157/158 light client to fetch transactions for a Wallet.

Link copied to clipboard
Link copied to clipboard

Build a BIP 157/158 light client to fetch transactions for a Wallet.

Link copied to clipboard

A `CbfClient` handles wallet updates from a `CbfNode`.

Link copied to clipboard

A `CbfClient` handles wallet updates from a `CbfNode`.

Link copied to clipboard
data class CbfComponents(var client: CbfClient, var node: CbfNode) : Disposable

Receive a `CbfClient` and `CbfNode`.

Link copied to clipboard
sealed class CbfException : Exception
Link copied to clipboard

A `CbfNode` gathers transactions for a `Wallet`. To receive `Update` for `Wallet`, refer to the `CbfClient`. The `CbfNode` will run until instructed to stop.

Link copied to clipboard

A `CbfNode` gathers transactions for a `Wallet`. To receive `Update` for `Wallet`, refer to the `CbfClient`. The `CbfNode` will run until instructed to stop.

Link copied to clipboard
sealed class ChainPosition

Represents the observed position of some chain data.

Link copied to clipboard

A changeset for `Wallet`.

Link copied to clipboard

A changeset for `Wallet`.

Link copied to clipboard

Policy regarding the use of change outputs when creating a transaction.

Link copied to clipboard
data class Condition(var csv: UInt?, var timelock: LockTime?)
Link copied to clipboard
data class ConfirmationBlockTime(var blockId: BlockId, var confirmationTime: ULong)
Link copied to clipboard

A connection to a SQLite database.

Link copied to clipboard

A connection to a SQLite database.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
interface Disposable
Link copied to clipboard

Wrapper around an electrum_client::ElectrumApi which includes an internal in-memory transaction cache to avoid re-fetching already downloaded transactions.

Link copied to clipboard

Wrapper around an electrum_client::ElectrumApi which includes an internal in-memory transaction cache to avoid re-fetching already downloaded transactions.

Link copied to clipboard
Link copied to clipboard

Wrapper around an esplora_client::BlockingClient which includes an internal in-memory transaction cache to avoid re-fetching already downloaded transactions.

Link copied to clipboard

Wrapper around an esplora_client::BlockingClient which includes an internal in-memory transaction cache to avoid re-fetching already downloaded transactions.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Represents fee rate.

Link copied to clipboard
Link copied to clipboard

Represents fee rate.

Link copied to clipboard
data class FinalizedPsbtResult(var psbt: Psbt, var couldFinalize: Boolean, var errors: List<PsbtFinalizeException>?) : Disposable
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Builds a `FullScanRequest`.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
data class Header(var version: Int, var prevBlockhash: String, var merkleRoot: String, var time: UInt, var bits: UInt, var nonce: UInt)

Bitcoin block header. Contains all the block’s information except the actual transactions, but including a root of a merkle tree committing to all transactions in the block.

Link copied to clipboard
data class HeaderNotification(var height: ULong, var header: Header)

Notification of a new block header.

Link copied to clipboard
Link copied to clipboard

An IP address to connect to over TCP.

Link copied to clipboard

An IP address to connect to over TCP.

Link copied to clipboard
data class KeychainAndIndex(var keychain: KeychainKind, var index: UInt)
Link copied to clipboard

Types of keychains

Link copied to clipboard
Link copied to clipboard
data class LocalOutput(    var outpoint: OutPoint,     var txout: TxOut,     var keychain: KeychainKind,     var isSpent: Boolean,     var derivationIndex: UInt,     var chainPosition: ChainPosition) : Disposable

An unspent output owned by a `Wallet`.

Link copied to clipboard
sealed class LockTime
Link copied to clipboard
sealed class Log

A log message from the node.

Link copied to clipboard

Select the category of messages for the node to emit.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

The state of the node with respect to connected peers.

Link copied to clipboard
data class OutPoint(var txid: String, var vout: UInt)
Link copied to clipboard
Link copied to clipboard
data class Peer(var address: IpAddress, var port: UShort?, var v2Transport: Boolean) : Disposable

A peer to connect to over the Bitcoin peer-to-peer network.

Link copied to clipboard
Link copied to clipboard
sealed class PkOrF
Link copied to clipboard
Link copied to clipboard
interface PolicyInterface
Link copied to clipboard

A Partially Signed Transaction.

Link copied to clipboard
sealed class PsbtException : Exception
Link copied to clipboard
Link copied to clipboard
interface PsbtInterface

A Partially Signed Transaction.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
sealed class Satisfaction
Link copied to clipboard
Link copied to clipboard
sealed class ScanType

Sync a wallet from the last known block hash, recover a wallet from a specified height, or perform an expedited block header download for a new wallet.

Link copied to clipboard

A bitcoin script: https://en.bitcoin.it/wiki/Script

Link copied to clipboard
data class ScriptAmount(var script: Script, var amount: Amount) : Disposable
Link copied to clipboard
interface ScriptInterface

A bitcoin script: https://en.bitcoin.it/wiki/Script

Link copied to clipboard
data class SentAndReceivedValues(var sent: Amount, var received: Amount) : Disposable
Link copied to clipboard
data class ServerFeaturesRes(    var serverVersion: String,     var genesisHash: String,     var protocolMin: String,     var protocolMax: String,     var hashFunction: String?,     var pruning: Long?)

Response to an ElectrumClient.server_features request.

Link copied to clipboard
sealed class SignerException : Exception
Link copied to clipboard
data class SignOptions(    var trustWitnessUtxo: Boolean,     var assumeHeight: UInt?,     var allowAllSighashes: Boolean,     var tryFinalize: Boolean,     var signWithTapInternalKey: Boolean,     var allowGrinding: Boolean)

Options for a software signer.

Link copied to clipboard
sealed class SqliteException : Exception
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Builds a `SyncRequest`.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Bitcoin transaction. An authenticated movement of coins.

Link copied to clipboard
Link copied to clipboard

Bitcoin transaction. An authenticated movement of coins.

Link copied to clipboard
data class Tx(var txid: String, var version: Int, var locktime: UInt, var size: ULong, var weight: ULong, var fee: ULong, var status: TxStatus)
Link copied to clipboard

A TxBuilder is created by calling build_tx on a wallet. After assigning it, you set options on it until finally calling finish to consume the builder and generate the transaction.

Link copied to clipboard

A TxBuilder is created by calling build_tx on a wallet. After assigning it, you set options on it until finally calling finish to consume the builder and generate the transaction.

Link copied to clipboard
Link copied to clipboard
data class TxIn(var previousOutput: OutPoint, var scriptSig: Script, var sequence: UInt, var witness: List<List<UByte>>) : Disposable
Link copied to clipboard
data class TxOut(var value: ULong, var scriptPubkey: Script) : Disposable

Bitcoin transaction output.

Link copied to clipboard
data class TxStatus(var confirmed: Boolean, var blockHeight: UInt?, var blockHash: String?, var blockTime: ULong?)
Link copied to clipboard
data class UnconfirmedTx(var tx: Transaction, var lastSeen: ULong) : Disposable

This type replaces the Rust tuple (tx, last_seen) used in the Wallet::apply_unconfirmed_txsmethod, where last_seenis the timestamp of when the transaction tx` was last seen in the mempool.

Link copied to clipboard

An update for a wallet containing chain, descriptor index, and transaction data.

Link copied to clipboard
interface UpdateInterface

An update for a wallet containing chain, descriptor index, and transaction data.

Link copied to clipboard

A Bitcoin wallet.

Link copied to clipboard
interface WalletInterface

A Bitcoin wallet.

Link copied to clipboard
sealed class Warning

Warnings a node may issue while running.

Link copied to clipboard
data class WitnessProgram(var version: UByte, var program: ByteArray)

The version and program of a Segwit address.

Link copied to clipboard