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
@type resolve_opts() :: [ timeout: pos_integer(), plc_directory: String.t(), http_client: module() ]
Functions
@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.
@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.
@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 implementingHTTP.Behaviour(default:Exosphere.ATProto.HTTP; useful for testing)