Exosphere.ATProto.Identity.DID.PLC (Exosphere v0.4.0)

Copy Markdown View Source

DID:PLC resolution.

DID:PLC is Bluesky's novel DID method with key rotation and recovery support. DIDs are resolved via the PLC directory at https://plc.directory.

Examples

iex> Exosphere.ATProto.Identity.DID.PLC.resolve("did:plc:z72i7hdynmk6r22z27h6tvur")
{:ok, %Document{...}}

Summary

Functions

Get the audit log for a did:plc.

Get the current PLC data (internal representation) for a did:plc.

Resolve a did:plc to its DID Document.

Types

resolve_opts()

@type resolve_opts() :: [
  timeout: pos_integer(),
  plc_directory: String.t(),
  http_client: module()
]

Functions

get_audit_log(did, opts \\ [])

@spec get_audit_log(String.t(), resolve_opts()) :: {:ok, [map()]} | {:error, term()}

Get the audit log for a did:plc.

Returns the full history of operations for the DID.

get_data(did, opts \\ [])

@spec get_data(String.t(), resolve_opts()) :: {:ok, map()} | {:error, term()}

Get the current PLC data (internal representation) for a did:plc.

This returns the PLC-specific data format, not the DID Document.

resolve(did, opts \\ [])

@spec resolve(String.t(), resolve_opts()) ::
  {:ok, Exosphere.ATProto.Identity.Document.t()} | {:error, term()}

Resolve a did:plc to its DID Document.

Options

  • :timeout - HTTP request timeout in milliseconds (default: 10_000)
  • :plc_directory - PLC directory URL (default: "https://plc.directory")
  • :http_client - HTTP client module implementing HTTP.Behaviour (default: Exosphere.ATProto.HTTP; useful for testing)