Identity (DID and Handle resolvers)

Check out what is a DID Document in the DID Document.

AT Protocol uses two identifiers: DID and Handle. Handles are DNS names while DIDs are an emerging W3C standard which act as secure & stable IDs.

The AT Protocol Identity module provides a way to resolve DIDs and Handles. It also provides a way to cache the results of these resolutions.

Under the hood, the Identity module resolves Handlers using DNS and HTTP. It resolves DIDs using PLC directory and HTTP.

Typically, you don’t need to care about the details of how the Identity module works. You can simply use the IdResolver class to resolve DIDs and Handles:

from atproto import IdResolver  # for async use AsyncIdResolver

resolver = IdResolver()
did = resolver.handle.resolve('test.marshal.dev')
did_doc = resolver.did.resolve(did)

print(did)
print(did_doc)

Learn how to use cache to speed up the resolution process in the Cache section.

class atproto_identity.resolver.AsyncIdResolver(plc_url: str | None = None, timeout: float | None = None, cache: AsyncDidBaseCache | None = None, backup_nameservers: List[str] | None = None)

Asynchronous Identity Resolver.

This resolver is used to resolve identities. DID and Handle identifies are supported.

Note

Default PLC directory URL is https://plc.directory. Default request timeout is 3 seconds.

Parameters:
  • plc_url – PLC directory URL.

  • timeout – Request timeout.

  • cache – DID cache.

property did: AsyncDidResolver

DID Resolver.

This resolver is used to resolve DIDs. PLC and Web DID methods are supported.

property handle: AsyncHandleResolver

Handle Resolver.

This resolver is used to resolve handles.

class atproto_identity.resolver.IdResolver(plc_url: str | None = None, timeout: float | None = None, cache: DidBaseCache | None = None, backup_nameservers: List[str] | None = None)

Identity Resolver.

This resolver is used to resolve identities. DID and Handle identifies are supported.

Note

Default PLC directory URL is https://plc.directory. Default request timeout is 3 seconds.

Parameters:
  • plc_url – PLC directory URL.

  • timeout – Request timeout.

  • cache – DID cache.

property did: DidResolver

DID Resolver.

This resolver is used to resolve DIDs. PLC and Web DID methods are supported.

property handle: HandleResolver

Handle Resolver.

This resolver is used to resolve handles.

Submodules