This documents lists changes made by protocol version.
- improved semantics of :func:`server.version` to aid protocol negotiation, and a changed return value.
- :func:`blockchain.transaction.get` no longer takes the height argument that was ignored anyway.
- :func:`blockchain.transaction.broadcast` returns errors like any other JSON RPC call. A transaction hash result is only returned on success.
- :func:`blockchain.transaction.get` now has an optional parameter verbose.
- :func:`blockchain.headers.subscribe` now has an optional parameter raw.
- :func:`server.version` should not be used for "ping" functionality; use the new :func:`server.ping` method instead.
- :func:`blockchain.block.get_chunk`. Switch to :func:`blockchain.block.headers`
- :func:`blockchain.address.get_balance`. Switch to :func:`blockchain.scripthash.get_balance`.
- :func:`blockchain.address.get_history`. Switch to :func:`blockchain.scripthash.get_history`.
- :func:`blockchain.address.get_mempool`. Switch to :func:`blockchain.scripthash.get_mempool`.
- :func:`blockchain.address.listunspent`. Switch to :func:`blockchain.scripthash.listunspent`.
- :func:`blockchain.address.subscribe`. Switch to :func:`blockchain.scripthash.subscribe`.
- :func:`blockchain.headers.subscribe` with raw other than :const:`True`.
- :func:`blockchain.headers.subscribe` argument raw switches default to :const:`True`
This version removes all support for :ref:`deserialized headers <deserialized header>`.
- Deserialized headers are no longer available, so removed argument raw from :func:`blockchain.headers.subscribe`.
- Only the first :func:`server.version` message is accepted.
- Optional cp_height argument added to :func:`blockchain.block.header` and :func:`blockchain.block.headers` to return merkle proofs of the header to a given checkpoint.
- :func:`blockchain.transaction.id_from_pos` to return a transaction hash, and optionally a merkle proof, given a block height and position in the block.
- :func:`blockchain.block.header` and :func:`blockchain.block.headers` now truncate AuxPoW data (if using an AuxPoW chain) when cp_height is nonzero. AuxPoW data is still present when cp_height is zero. Non-AuxPoW chains are unaffected.
- :func:`blockchain.scipthash.unsubscribe` to unsubscribe from a script hash.
- :func:`server.features` changed the requirement of key hosts from being MUST be present to RECOMMENDED. Note that Fulcrum and ElectrumX will not peer with your server without this key.
- :func:`blockchain.address.get_balance` was brought back after having been removed in 1.3.
- :func:`blockchain.address.get_history` was brought back after having been removed in 1.3.
- :func:`blockchain.address.get_mempool` was brought back after having been removed in 1.3.
- :func:`blockchain.address.get_scripthash` to translate an address into a script hash.
- :func:`blockchain.address.listunspent` was brought back after having been removed in 1.3.
- :func:`blockchain.address.subscribe` was brought back after having been removed in 1.3.
- :func:`blockchain.address.unsubscribe` to unsubscribe from an address.
- :func:`blockchain.utxo.get_info` gets information for an unspent transaction output.
- :func:`blockchain.transaction.get_merkle` now no longer requires the second argument height. This argument is now optional but still recommended, in order to save the server from having to look it up.
- :func:`server.features` added a new optional key, :const:`"dsproof"`.
- :func:`blockchain.transaction.get_height` to retrieve the height of a transaction.
- :func:`blockchain.transaction.subscribe` to be notified of transaction confirmation status changes.
- :func:`blockchain.transaction.unsubscribe` to unsubscribe from a previously subscribed-to transaction.
- :func:`blockchain.transaction.dsproof.get` to retrieve information about a double-spend proof associated with a tx_hash.
- :func:`blockchain.transaction.dsproof.list` to list the double-spend proofs currently being tracked in the bitcoin daemon's mempool.
- :func:`blockchain.transaction.dsproof.subscribe` to receive notifications on whether a particular transaction is known by the network to have been double-spent.
- :func:`blockchain.transaction.dsproof.unsubscribe` to unsubscribe from receiving dsproof notifications for a particular transaction.
- :func:`blockchain.address.get_balance` now takes an optional second argument, token_filter.
- :func:`blockchain.address.listunspent` now takes an optional second argument, token_filter. It may also now return an additional key, :ref:`token_data <token_data>`, in its results.
- :func:`blockchain.scripthash.get_balance` now takes an optional second argument, token_filter.
- :func:`blockchain.scripthash.listunspent` now takes an optional second argument, token_filter. It may also now return an additional key, :ref:`token_data <token_data>`, in its results.
- :func:`blockchain.utxo.get_info` may return an additional key, :ref:`token_data <token_data>`, in its results.
- :func:`blockchain.headers.get_tip` to retrieve the latest height and header known to the server.
- :func:`blockchain.headers.unsubscribe` to unsubscribe from header notifications.
- :func:`blockchain.scripthash.get_history` and :func:`blockchain.address.get_history` changed to allow pagination of long histories.
- :func:`blockchain.header.get` to retrieve a block header by its hash.
- :func:`blockchain.scripthash.get_first_use` and :func:`blockchain.address.get_first_use` to retrieve the first occurrence of a script hash or address on the block chain.
- :func:`blockchain.transaction.get_confirmed_blockhash` to retrieve the block hash of the block that contains a particular transaction.
- :func:`daemon.passthrough` to forward RPC requests directly through to the bitcoin daemon (disabled by default).
- :func:`blockchain.rpa.get_history` and :func:`blockchain.rpa.get_mempool` to retrieve transactions matching a certain RPA (reusable payment address) prefix.
- :func:`blockchain.reusable.get_history` and :func:`blockchain.reusable.get_mempool` which are compatibility-versions of the above for legacy clients.
- :func:`server.features` added a new optional key, :const:`"rpa"`.