Skip to content

server.features

server.features

Return a list of features and services supported by the server.

Signature

Function: server.features()

Version changed: 1.4.2 hosts key is no longer required, but recommended.

Result

A dictionary of keys and values. Each key represents a feature or service of the server, and the value gives additional information.

The following features MUST be reported by the server. Additional key-value pairs may be returned.

  • genesis_hash

    The hash of the genesis block. This is used to detect if a peer is connected to one serving a different network.

  • hash_function

    The hash function the server uses for script hashing. The client must use this function to hash pay-to-scripts to produce script hashes to send to the server. The default is "sha256". "sha256" is currently the only acceptable value.

  • server_version

    A string that identifies the server software. Should be the same as the result to the server.version RPC call.

  • protocol_max

  • protocol_min

    Strings that are the minimum and maximum Electrum protocol versions this server speaks. Example: "1.1".

  • pruning

    An integer, the pruning limit. Omit or set to null if there is no pruning limit. Should be the same as what would suffix the letter p in the IRC real name.

The following features are RECOMMENDED that be reported by the servers.

  • hosts

    A dictionary, keyed by host name, that this server can be reached at. If this dictionary is missing, then this is a way to signal to other servers that while this host is reachable, it does not wish to peer with other servers. A server SHOULD stop peering with a peer if it sees the hosts dictionary for its peer is empty and/or no longer contains the expected route (e.g. hostname). Normally this dictionary will only contain a single entry; other entries can be used in case there are other connection routes (e.g. Tor).

    The value for a host is itself a dictionary, with the following optional keys:

    • ssl_port

      An integer. Omit or set to null if SSL connectivity is not provided.

    • tcp_port

      An integer. Omit or set to null if TCP connectivity is not provided.

    • ws_port

      An integer. Omit or set to null if Web Socket () connectivity is not provided.

    • wss_port

      An integer. Omit or set to null if Web Socket Secure () connectivity is not provided.

    A server should ignore information provided about any host other than the one it connected to.

Example Result

{
    "genesis_hash": "000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943",
    "hosts": {"14.3.140.101": {"tcp_port": 51001, "ssl_port": 51002}},
    "protocol_max": "1.0",
    "protocol_min": "1.0",
    "pruning": null,
    "server_version": "ElectrumX 1.0.17",
    "hash_function": "sha256"
}