Expand description
AT Protocol identity resolution for handles and DIDs.
Resolves AT Protocol identities via DNS TXT records and HTTPS well-known endpoints, with automatic input detection for handles, did:plc, and did:web identifiers.
- Validation: Ensures DNS and HTTP resolution methods agree on the resolved DID
- Custom DNS: Supports custom DNS nameservers for resolution
§Resolution Flow
- Parse input to determine identifier type (handle vs DID)
- For handles: perform parallel DNS and HTTP resolution
- Validate that both methods return the same DID
- For DIDs: return the identifier directly
Structs§
- Hickory
DnsResolver - Hickory DNS implementation of the DnsResolver trait. Wraps hickory_resolver::TokioResolver for TXT record resolution.
- Inner
Identity Resolver - Core identity resolution components for AT Protocol subjects.
- Shared
Identity Resolver - Shared identity resolver for AT Protocol subjects.
Enums§
- Input
Type - Type of input identifier for resolution. Distinguishes between handles and different DID methods.
Traits§
- DnsResolver
- Trait for DNS resolution operations. Provides async DNS TXT record lookups for handle resolution.
- Identity
Resolver - Trait for AT Protocol identity resolution.
Functions§
- parse_
input - Parses input string into appropriate identifier type. Handles prefixes like “at://”, “@”, and DID formats.
- resolve_
handle - Resolves a handle to DID using both DNS and HTTP methods. Returns DID if both methods agree, or error if conflicting.
- resolve_
handle_ dns - Resolves a handle to DID using DNS TXT records. Looks up _atproto.{handle} TXT record for DID value.
- resolve_
handle_ http - Resolves a handle to DID using HTTPS well-known endpoint. Fetches DID from https://{handle}/.well-known/atproto-did
- resolve_
subject - Resolves any subject (handle or DID) to a canonical DID. Handles all supported identifier formats automatically.