Protocol Changes¶
This documents lists changes made by protocol version.
Version 1.0¶
Deprecated methods¶
Version 1.1¶
Changes¶
improved semantics of
server.version()
to aid protocol negotiation, and a changed return value.
blockchain.transaction.get()
no longer takes the height argument that was ignored anyway.
blockchain.transaction.broadcast()
returns errors like any other JSON RPC call. A transaction hash result is only returned on success.
New methods¶
Removed methods¶
Version 1.2¶
Changes¶
blockchain.transaction.get()
now has an optional parameter verbose.
blockchain.headers.subscribe()
now has an optional parameter raw.
server.version()
should not be used for “ping” functionality; use the newserver.ping()
method instead.
New methods¶
Deprecated methods¶
blockchain.block.get_chunk()
. Switch toblockchain.block.headers()
blockchain.address.get_balance()
. Switch toblockchain.scripthash.get_balance()
.
blockchain.address.get_history()
. Switch toblockchain.scripthash.get_history()
.
blockchain.address.get_mempool()
. Switch toblockchain.scripthash.get_mempool()
.
blockchain.address.listunspent()
. Switch toblockchain.scripthash.listunspent()
.
blockchain.address.subscribe()
. Switch toblockchain.scripthash.subscribe()
.
blockchain.headers.subscribe()
with raw other thanTrue
.
Version 1.3¶
Changes¶
blockchain.headers.subscribe()
argument raw switches default toTrue
New methods¶
Removed methods¶
Deprecated methods¶
Version 1.4¶
This version removes all support for deserialized headers.
Changes¶
Deserialized headers are no longer available, so removed argument raw from
blockchain.headers.subscribe()
.Only the first
server.version()
message is accepted.Optional cp_height argument added to
blockchain.block.header()
andblockchain.block.headers()
to return merkle proofs of the header to a given checkpoint.
New methods¶
blockchain.transaction.id_from_pos()
to return a transaction hash, and optionally a merkle proof, given a block height and position in the block.
Removed methods¶
Version 1.4.1¶
Changes¶
blockchain.block.header()
andblockchain.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.
Version 1.4.1¶
New methods¶
blockchain.scipthash.unsubscribe()
to unsubscribe from a script hash.
Version 1.4.2¶
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.
Version 1.4.3¶
New methods¶
blockchain.address.get_balance()
was brought back after having been removed in 1.3.
blockchain.address.get_history()
was brought back after having been removed in 1.3.
blockchain.address.get_mempool()
was brought back after having been removed in 1.3.
blockchain.address.get_scripthash()
to translate an address into a script hash.
blockchain.address.listunspent()
was brought back after having been removed in 1.3.
blockchain.address.subscribe()
was brought back after having been removed in 1.3.
blockchain.address.unsubscribe()
to unsubscribe from an address.
Version 1.4.4¶
New methods¶
blockchain.utxo.get_info()
gets information for an unspent transaction output.
Version 1.4.5¶
Changes¶
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.
server.features()
added a new optional key,"dsproof"
.
New methods¶
blockchain.transaction.get_height()
to retrieve the height of a transaction.
blockchain.transaction.subscribe()
to be notified of transaction confirmation status changes.
blockchain.transaction.unsubscribe()
to unsubscribe from a previously subscribed-to transaction.
blockchain.transaction.dsproof.get()
to retrieve information about a double-spend proof associated with a tx_hash.
blockchain.transaction.dsproof.list()
to list the double-spend proofs currently being tracked in the bitcoin daemon’s mempool.
blockchain.transaction.dsproof.subscribe()
to receive notifications on whether a particular transaction is known by the network to have been double-spent.
blockchain.transaction.dsproof.unsubscribe()
to unsubscribe from receiving dsproof notifications for a particular transaction.
Version 1.5.0¶
Changes¶
blockchain.address.get_balance()
now takes an optional second argument, token_filter.
blockchain.address.listunspent()
now takes an optional second argument, token_filter. It may also now return an additional key, token_data, in its results.
blockchain.scripthash.get_balance()
now takes an optional second argument, token_filter.
blockchain.scripthash.listunspent()
now takes an optional second argument, token_filter. It may also now return an additional key, token_data, in its results.
blockchain.utxo.get_info()
may return an additional key, token_data, in its results.
New methods¶
blockchain.headers.get_tip()
to retrieve the latest height and header known to the server.
blockchain.headers.unsubscribe()
to unsubscribe from header notifications.
Version 1.5.1¶
Changes¶
blockchain.scripthash.get_history()
andblockchain.address.get_history()
changed to allow pagination of long histories.
Version 1.5.2¶
New methods¶
blockchain.header.get()
to retrieve a block header by its hash.blockchain.scripthash.get_first_use()
andblockchain.address.get_first_use()
to retrieve the first occurrence of a script hash or address on the block chain.blockchain.transaction.get_confirmed_blockhash()
to retrieve the block hash of the block that contains a particular transaction.daemon.passthrough()
to forward RPC requests directly through to the bitcoin daemon (disabled by default).
Version 1.5.3¶
New methods¶
blockchain.rpa.get_history()
andblockchain.rpa.get_mempool()
to retrieve transactions matching a certain RPA (reusable payment address) prefix.blockchain.reusable.get_history()
andblockchain.reusable.get_mempool()
which are compatibility-versions of the above for legacy clients.server.features()
added a new optional key,"rpa"
.