{"handle":"jay.bsky.team","hops":[{"number":1,"name":"Handle Resolution","description":"Resolve the handle \"jay.bsky.team\" to a DID. First tries HTTPS well-known, then falls back to DNS TXT record. Method used: DNS TXT _atproto.","request":{"method":"GET","url":"DNS TXT _atproto.jay.bsky.team"},"response":{"status":200,"key_data":{"did":"did:plc:oky5czdrnfjpqslsw2a5iclo","method":"DNS TXT _atproto"},"raw_snippet":"{\n  \"Status\": 0,\n  \"TC\": false,\n  \"RD\": true,\n  \"RA\": true,\n  \"AD\": true,\n  \"CD\": false,\n  \"Question\": [\n    {\n      \"name\": \"_atproto.jay.bsky.team\",\n      \"type\": 16\n    }\n  ],\n  \"Answer\": [\n    {\n      \"name\": \"_atproto.jay.bsky.team\",\n      \"type\": 16,\n      \"TTL\": 14400,\n      \"data\": \"\\\"did=did:plc:oky5czdrnfjpqslsw2a5iclo\\\"\"\n    }\n  ]\n}"},"timing_ms":250,"trust_note":"You're trusting DNS and the domain operator to return the correct DID.","status":"success"},{"number":2,"name":"DID Document Fetch","description":"Fetch the DID document for did:plc:oky5czdrnfjpqslsw2a5iclo. Using plc.directory (centralized DID registry).","request":{"method":"GET","url":"https://plc.directory/did:plc:oky5czdrnfjpqslsw2a5iclo"},"response":{"status":200,"key_data":{"id":"did:plc:oky5czdrnfjpqslsw2a5iclo","alsoKnownAs":["at://jay.bsky.team"],"verification_methods_count":1,"services_count":1},"raw_snippet":"{\n  \"@context\": [\n    \"https://www.w3.org/ns/did/v1\",\n    \"https://w3id.org/security/multikey/v1\",\n    \"https://w3id.org/security/suites/secp256k1-2019/v1\"\n  ],\n  \"id\": \"did:plc:oky5czdrnfjpqslsw2a5iclo\",\n  \"alsoKnownAs\": [\n    \"at://jay.bsky.team\"\n  ],\n  \"verificationMethod\": [\n    {\n      \"id\": \"did:plc:oky5czdrnfjpqslsw2a5iclo#atproto\",\n      \"type\": \"Multikey\",\n      \"controller\": \"did:plc:oky5czdrnfjpqslsw2a5iclo\",\n      \"publicKeyMultibase\": \"zQ3shtJpFGgEG3tv3ERKvjo7VHbjDPVyvjYvW7gpie49rtN\n..."},"timing_ms":54,"trust_note":"For did:plc, you're trusting plc.directory. The DID document is signed but the directory is centralized.","status":"success"},{"number":3,"name":"Handle Verification (Bidirectional)","description":"Check that the DID document's alsoKnownAs field contains \"at://jay.bsky.team\". Handle resolved to DID (hop 1) and DID document lists handle (hop 2) must agree.","request":{"method":"VERIFY","url":"DID document alsoKnownAs field"},"response":{"status":200,"key_data":{"expected_handle":"jay.bsky.team","did_document_handles":["jay.bsky.team"],"bidirectional_match":true}},"timing_ms":0,"trust_note":"Bidirectional verification prevents handle hijacking — both sides must agree.","status":"success"},{"number":4,"name":"PDS Discovery","description":"Found PDS at https://morel.us-east.host.bsky.network. Verified it's reachable by calling describeServer.","request":{"method":"GET","url":"https://morel.us-east.host.bsky.network/xrpc/com.atproto.server.describeServer"},"response":{"status":200,"key_data":{"pds_endpoint":"https://morel.us-east.host.bsky.network","available_user_domains":[".morel.us-east.host.bsky.network"],"invite_code_required":true,"links":{"privacyPolicy":"https://bsky.social/about/support/privacy-policy","termsOfService":"https://bsky.social/about/support/tos"},"did":"did:web:morel.us-east.host.bsky.network"},"raw_snippet":"{\n  \"did\": \"did:web:morel.us-east.host.bsky.network\",\n  \"availableUserDomains\": [\n    \".morel.us-east.host.bsky.network\"\n  ],\n  \"inviteCodeRequired\": true,\n  \"links\": {\n    \"privacyPolicy\": \"https://bsky.social/about/support/privacy-policy\",\n    \"termsOfService\": \"https://bsky.social/about/support/tos\"\n  },\n  \"contact\": {}\n}"},"timing_ms":127,"trust_note":"The PDS hosts this identity's data. The PDS operator can see and serve all repository content.","status":"success"},{"number":5,"name":"Repository Exploration","description":"Query the PDS for repository metadata. This shows which collections (post types) exist in the user's repo.","request":{"method":"GET","url":"https://morel.us-east.host.bsky.network/xrpc/com.atproto.repo.describeRepo?repo=did%3Aplc%3Aoky5czdrnfjpqslsw2a5iclo"},"response":{"status":200,"key_data":{"handle":"jay.bsky.team","did":"did:plc:oky5czdrnfjpqslsw2a5iclo","did_matches":true,"collections":["app.bsky.actor.profile","app.bsky.feed.like","app.bsky.feed.post","app.bsky.feed.postgate","app.bsky.feed.repost","app.bsky.feed.threadgate","app.bsky.graph.block","app.bsky.graph.follow","at.youandme.connection","blue.flashes.actor.profile","chat.bsky.actor.declaration","club.feeed.submission","site.standard.document","site.standard.publication"],"handle_is_correct":true},"raw_snippet":"{\n  \"handle\": \"jay.bsky.team\",\n  \"did\": \"did:plc:oky5czdrnfjpqslsw2a5iclo\",\n  \"didDoc\": {\n    \"@context\": [\n      \"https://www.w3.org/ns/did/v1\",\n      \"https://w3id.org/security/multikey/v1\",\n      \"https://w3id.org/security/suites/secp256k1-2019/v1\"\n    ],\n    \"id\": \"did:plc:oky5czdrnfjpqslsw2a5iclo\",\n    \"alsoKnownAs\": [\n      \"at://jay.bsky.team\"\n    ],\n    \"verificationMethod\": [\n      {\n        \"id\": \"did:plc:oky5czdrnfjpqslsw2a5iclo#atproto\",\n        \"type\": \"Multikey\",\n        \"controlle\n..."},"timing_ms":26,"trust_note":"The repository is a Merkle tree — content-addressed, tamper-evident, but the PDS chooses what to serve.","status":"success"},{"number":6,"name":"Signing Key Verification","description":"Extract the atproto signing key from the DID document. This key signs every record in the repository, allowing anyone to verify data authenticity without trusting the PDS.","request":{"method":"EXTRACT","url":"DID document verificationMethod field"},"response":{"status":200,"key_data":{"id":"did:plc:oky5czdrnfjpqslsw2a5iclo#atproto","type":"Multikey","controller":"did:plc:oky5czdrnfjpqslsw2a5iclo","publicKeyMultibase":"zQ3shtJpFGgEG3tv3ERKvjo7VHbjDPVyvjYvW7gpie49rtNtc"},"raw_snippet":"{\n  \"id\": \"did:plc:oky5czdrnfjpqslsw2a5iclo#atproto\",\n  \"type\": \"Multikey\",\n  \"controller\": \"did:plc:oky5czdrnfjpqslsw2a5iclo\",\n  \"publicKeyMultibase\": \"zQ3shtJpFGgEG3tv3ERKvjo7VHbjDPVyvjYvW7gpie49rtNtc\"\n}"},"timing_ms":0,"trust_note":"Every record in the repository is signed with this key. Anyone can verify — you don't need to trust the PDS.","status":"success"}],"total_ms":457}