atproto-identity-resolution

Resolve AT Protocol handles to DIDs and validate DID documents.

46|3|Updated Apr 21, 2026
One-click install
npx skills add https://github.com/ngerakines/atproto-skills --skill atproto-identity-resolution
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: atproto-identity-resolution
Source: https://github.com/ngerakines/atproto-skills/tree/main/skills/atproto-identity-resolution
Command: npx skills add https://github.com/ngerakines/atproto-skills --skill atproto-identity-resolution

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill helps users resolve AT Protocol identities by converting human-friendly handles to DIDs and retrieving the corresponding DID documents across the Plc (did:plc:), Web (did:web:), and WebVH (did:webvh: ) methods. It also supports parsing, validating, and debugging identity relationships between handles and DIDs.

Core Features & Use Cases

  • Resolve a handle to a DID using DNS TXT records and HTTPS well-known endpoints concurrently.
  • Fetch and validate the associated DID document against the AT Protocol requirements (handle binding, atproto Multikey, and PDS service).
  • Perform bidirectional verification to ensure the DID document back-links to the input handle and surface handle.invalid in failure scenarios.
  • Language-aware guides: Rust, TypeScript, and Go implementations with per-language caveats and interoperability notes.

Quick Start

Call the identity resolver with a handle to obtain the corresponding DID and its DID document.

Frequently Asked Questions about atproto-identity-resolution

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I resolve an AT Protocol handle to a DID?

AT Protocol handle resolution involves converting handles to DIDs by concurrently querying DNS TXT records and HTTPS well-known endpoints. This fetches the target DID and retrieves its associated DID document.

How does DID document validation work in the AT Protocol?

DID document validation verifies handle binding, the atproto Multikey, and the PDS service endpoint against AT Protocol requirements. It enforces bidirectional checks ensuring the DID document back-links to the original input handle.

Can I use this for did:plc, did:web, and did:webvh identity resolution?

Yes, this resolves identities across the Plc, Web, and WebVH methods, covering did:plc:, did:web:, and did:webvh:. It enforces DNS TXT and HTTPS resolution rules to fetch and validate the associated documents.

Does AT Protocol identity resolution support Rust, TypeScript, and Go?

Yes, identity resolution supports Rust, TypeScript, and Go contexts. It provides language-aware guides with per-language caveats, enforces cross-language behavior, and maintains interoperability notes.

Why does my AT Protocol handle resolution return handle.invalid?

Handle resolution returns handle.invalid in failure scenarios when bidirectional verification fails. This happens when the resolved DID document does not back-link to the original input handle, breaking the identity binding.