Which BIPs are supported by bitcoinj

Introduction

Bitcoin improvement proposals are the communities way of standardising new extensions and protocols that build on top of Bitcoin. Bitcoinj either implements or provides API’s to help you implement many of these standards; below you can see which BIP’s are supported:

Number Name Relevant API
BIP 11 m-of-n multisig transactions ScriptBuilder
BIP 14 Protocol version and user agent PeerGroup.setUserAgent()
BIP 16 Pay to script hash (P2SH) LegacyAddress
BIP 21 Bitcoin URI scheme BitcoinURI
BIP 31 Ping/pong messages Peer.ping()
BIP 32 HD wallets DeterministicKeyChain
BIP 35 mempool message used automatically
BIP 37 Bloom filtering PeerFilterProvider (used automatically)
BIP 39 Mnemonic codes for representing private keys MnemonicCode
BIPs 70, 71, 72 Payment protocol PaymentSession
BIP 38 Encrypted private key serialization BIP38PrivateKey
BIP 111 NODE_BLOOM service bit VersionMessage.NODE_BLOOM
BIP 130 sendheaders message SendHeadersMessage
BIP 133 feefilter message FeeFilterMessage
BIP 141 Segregated Witness (Consensus layer) TransactionWitness, Transaction
BIP 143 Transaction Signature Verification for Version 0 Witness Program Transaction.hashForWitnessSignature()
BIP 144 Segregated Witness (Peer Services) Peer
BIP 155 addrv2 message AddressV2Message
BIP 159 NODE_NETWORK_LIMITED service bit VersionMessage.NODE_NETWORK_LIMITED
BIP 173 Base32 address format for native v0-16 witness outputs Bech32, SegwitAddress
BIP 350 Bech32m format for v1+ witness addresses Bech32, SegwitAddress
RFC 6979 Deterministic usage of ECDSA ECKey