# Stem Docs

## Hidden Service Descriptor

Parsing for Tor hidden service descriptors as described in Tor’s version 2 and version 3 rend-spec.

Unlike other descriptor types these describe a hidden service rather than a relay. They’re created by the service, and can only be fetched via relays with the HSDir flag.

These are only available through the Controller’s `get_hidden_service_descriptor()` method.

Module Overview:

    BaseHiddenServiceDescriptor - Common parent for hidden service descriptors
      |- HiddenServiceDescriptorV2 - Version 2 hidden service descriptor
      +- HiddenServiceDescriptorV3 - Version 3 hidden service descriptor
           |- address_from_identity_key - convert an identity key to address
           |- identity_key_from_address - convert an address to identity key
           +- decrypt - decrypt and parse encrypted layers

    OuterLayer - First encrypted layer of a hidden service v3 descriptor
    InnerLayer - Second encrypted layer of a hidden service v3 descriptor

New in version 1.4.0.