El protocolo AT es una forma innovadora de estructurar y acceder a datos en la web moderna.
A diferencia de HTTP tradicional, AT pone al usuario como autoridad de sus propios datos y separa la identidad de su hosting. Esto permite que el contenido sea portátil, verificable y duradero.
En esta guía aprenderás paso a paso cómo resolver un at:// URI y acceder al JSON correspondiente.
Qué es un at:// URI
Un at:// URI apunta a un registro de datos en la “atmósfera”, que es la red de servidores que hablan el protocolo AT.
Cada URI tiene esta estructura básica:
at:////
Donde:
La diferencia clave con HTTP es que el usuario es la autoridad sobre los datos, mientras que el hosting físico puede cambiar sin afectar la URI.
De handles a identidades (DID)
Los handles como ruuuuu.de o danabra.mov son humanamente legibles pero frágiles, porque los usuarios pueden cambiarlos. Por eso, el protocolo AT recomienda convertir los handles en DIDs (identidades permanentes).
Existen dos formas de resolver un handle a un DID:
- DNS TXT record: consultando
_atproto.en el DNS. - HTTPS: usando
https://./.well-known/atproto-did
Por ejemplo, para ruuuuu.de:
$ nslookup -type=TXT _atproto.ruuuuu.de
_atproto.ruuuuu.de text = "did=did:web:iam.ruuuuu.de"
Esto confirma que el handle corresponde al DID did:web:iam.ruuuuu.de.
De identidades a hosting
Una vez tienes el DID, necesitas localizar dónde se encuentra el servidor que aloja los datos. Esto se hace consultando el DID Document, que actúa como un “pasaporte” digital de la identidad.
El DID Document incluye:
- alsoKnownAs: los handles asociados.
- publicKeyMultibase: clave pública para verificar los datos.
- serviceEndpoint: URL del servidor donde se aloja el JSON.
Ejemplo de DID Document para did:web:iam.ruuuuu.de:
"service": [
{
"type": "AtprotoPersonalDataServer",
"serviceEndpoint": "https://blacksky.app"
}
]
De hosting a JSON
Finalmente, para obtener el JSON asociado a un at:// URI, se consulta el endpoint del servidor indicado en el DID Document. Por ejemplo:
$ curl "https://blacksky.app/xrpc/com.atproto.repo.getRecord?repo=ruuuuu.de&collection=app.bsky.feed.post&rkey=3lzy2ji4nms2z"
Esto devuelve un JSON como:
{
"uri": "at://did:web:iam.ruuuuu.de/app.bsky.feed.post/3lzy2ji4nms2z",
"value": {
"text": "posting from did:web, like a boss",
"$type": "app.bsky.feed.post",
"langs": ["en"],
"createdAt": "2025-09-29T12:53:23.048Z"
}
}
at:// permalinks
Los DIDs garantizan la permanencia del enlace. Mientras los handles pueden cambiar, los enlaces basados en DIDs funcionan como permalinks, asegurando que los registros de JSON no se rompan aunque el usuario cambie de handle o servidor.
Ejemplo de permalinks:
at://did:web:iam.ruuuuu.de/app.bsky.feed.post/3lzy2ji4nms2z
at://did:plc:fpruhuo22xkm5o7ttr2ktxdo/sh.tangled.feed.star/3m23ddgjpgn22
Resumen del proceso de resolución
Para resolver cualquier at:// URI, debes seguir tres pasos principales:
- Resolver el handle a un DID (identidad permanente).
- Consultar el DID Document para encontrar el servidor hosting.
- Solicitar el JSON del registro desde ese servidor.
Conclusión
El protocolo AT transforma la web tradicional, permitiendo que los usuarios controlen sus datos, separando identidad de hosting y asegurando la portabilidad y persistencia del contenido. Conocer cómo resolver un at:// URI te permite acceder directamente a los registros JSON, construir aplicaciones confiables y entender la arquitectura de esta nueva red distribuida.
