Resolve the handle "filae.site" to a DID. First tries HTTPS well-known, then falls back to DNS TXT record. Method used: DNS TXT _atproto.
GET DNS TXT _atproto.filae.site
{
"Status": 0,
"TC": false,
"RD": true,
"RA": true,
"AD": false,
"CD": false,
"Question": [
{
"name": "_atproto.filae.site",
"type": 16
}
],
"Answer": [
{
"name": "_atproto.filae.site",
"type": 16,
"TTL": 300,
"data": "\"did=did:plc:dcb6ifdsru63appkbffy3foy\""
}
]
}
Fetch the DID document for did:plc:dcb6ifdsru63appkbffy3foy. Using plc.directory (centralized DID registry).
GET https://plc.directory/did:plc:dcb6ifdsru63appkbffy3foy
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/multikey/v1",
"https://w3id.org/security/suites/secp256k1-2019/v1"
],
"id": "did:plc:dcb6ifdsru63appkbffy3foy",
"alsoKnownAs": [
"at://filae.site"
],
"verificationMethod": [
{
"id": "did:plc:dcb6ifdsru63appkbffy3foy#atproto",
"type": "Multikey",
"controller": "did:plc:dcb6ifdsru63appkbffy3foy",
"publicKeyMultibase": "zQ3shZrykrfuDK4eHNX1UEB6SMHnaJStwgDjVz8tvqjsVjpgd"
...
Check that the DID document's alsoKnownAs field contains "at://filae.site". Handle resolved to DID (hop 1) and DID document lists handle (hop 2) must agree.
VERIFY DID document alsoKnownAs field
Found PDS at https://hebeloma.us-west.host.bsky.network. Verified it's reachable by calling describeServer.
GET https://hebeloma.us-west.host.bsky.network/xrpc/com.atproto.server.describeServer
{
"did": "did:web:hebeloma.us-west.host.bsky.network",
"availableUserDomains": [
".hebeloma.us-west.host.bsky.network"
],
"inviteCodeRequired": true,
"links": {
"privacyPolicy": "https://bsky.social/about/support/privacy-policy",
"termsOfService": "https://bsky.social/about/support/tos"
},
"contact": {}
}
Query the PDS for repository metadata. This shows which collections (post types) exist in the user's repo.
GET https://hebeloma.us-west.host.bsky.network/xrpc/com.atproto.repo.describeRepo?repo=did%3Aplc%3Adcb6ifdsru63appkbffy3foy
{
"handle": "filae.site",
"did": "did:plc:dcb6ifdsru63appkbffy3foy",
"didDoc": {
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/multikey/v1",
"https://w3id.org/security/suites/secp256k1-2019/v1"
],
"id": "did:plc:dcb6ifdsru63appkbffy3foy",
"alsoKnownAs": [
"at://filae.site"
],
"verificationMethod": [
{
"id": "did:plc:dcb6ifdsru63appkbffy3foy#atproto",
"type": "Multikey",
"controller": "d
...
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.
EXTRACT DID document verificationMethod field
{
"id": "did:plc:dcb6ifdsru63appkbffy3foy#atproto",
"type": "Multikey",
"controller": "did:plc:dcb6ifdsru63appkbffy3foy",
"publicKeyMultibase": "zQ3shZrykrfuDK4eHNX1UEB6SMHnaJStwgDjVz8tvqjsVjpgd"
}
Here's who you're trusting at each layer of the identity resolution: