[Atp] Re: Potential 'at' URI Solution
Meredith Espinosa <b0undarybreaker@icloud.com> Wed, 28 October 2026 23:59 UTC
Received: from outbound.ms.icloud.com (ms-2006a-snip6-2.eps.apple.com [IPv6:2a01:b747:3002:206::c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by mx.ietf.org (Postfix) with ESMTPS id 29E5046 for <atp@ietf.org>; Wed, 28 Oct 2026 23:59:32 +0000 (UTC)
Authentication-Results: mx.ietf.org; dkim=pass header.d=icloud.com header.s=1a1hai header.b=FICLkwcW; spf=pass (mx.ietf.org: domain of b0undarybreaker@icloud.com designates 2a01:b747:3002:206::c as permitted sender) smtp.mailfrom=b0undarybreaker@icloud.com; dmarc=pass (policy=quarantine) header.from=icloud.com
Received: from outbound.ms.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-west-3a-60-percent-2 (Postfix) with ESMTPS id 86F8618000BE; Wed, 28 Oct 2026 23:59:23 +0000 (UTC)
X-ICL-RepId: 01a184f4-4558-7c07-a537-6d60ec76ce81
X-ICL-Out-Info: HUtFAUMEWwJACUgATUQeDx5WFlZNRAJCTQBAHV8EWRxGClYBXgdLVxQEGgMYWQ9TAkAaQQhWAFcCeRFQAVgeVl5aF15NUQ8PGVoUXBhTRVEfVFhBDgpYEhhcFFxQWB5GElYNXQkZBkFeUBtfAkIPHBNWFRMdQxkPKwhKBEMHRQJeCyUTCVNWWxNVF0YJGQhdHRkVWgkKVwNHeEBwVA5aHzEPPABAAyoKNhQ6BFtxRnMyD0sKVA9fAUV8SnMEVAddBV1WUAJaVRIEQAhWUF4IXh9MHA==
Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=icloud.com; s=1a1hai; t=1793231965; x=1824767965; bh=zZBcKyJHWRuwsU1Tn+UFmHfuInIJL4uJHM2J2FkNdV4=; h=From:Message-Id:Content-Type:Mime-Version:Subject:Date:To:x-icloud-hme; b=FICLkwcWHdhsY18JRRiRS94A5czq3OQRBxiQsD6KAghAK7na6zLb3i6gDiqGiAEHh5QPKoI4GIk4MelsDYRABDLKRYbQIhPKBLMa/cV/gPO7umKsaN4jTh35nTWynI02eeBxcmbrRqB+2vQnZt1ve998y51m01fZCyb+s1Mk/9d5REKNtWsRp52msJ5CCYzgNxn4ETWp4U1wQz+vIBHuSCkXIpbH1UHQ0Cv2b/f0qYhBxvhbIlDvNU94PDlhVRCZnucXQAZ4K4eSJjYcp9iwLTLTRMMBYXYfrZKCCxV7hLMJCFeySG5D9vRwzgZKKSggqPcsT7PUHRMpccOpbc3UjA==
Received: from smtpclient.apple (unknown [17.156.208.39]) by p00-icloudmta-asmtp-us-west-3a-60-percent-2 (Postfix) with ESMTPSA id 916761800127; Wed, 28 Oct 2026 23:59:22 +0000 (UTC)
From: Meredith Espinosa <b0undarybreaker@icloud.com>
Message-Id: <17A8C991-A6D3-4A8F-B76F-AB63998435E2@icloud.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_AF94B1AA-585F-4936-9289-30AD4A96F9E1"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3776.700.51.11.4\))
Date: Wed, 28 Oct 2026 16:59:11 -0700
In-Reply-To: <DE086792-FE8B-4DB5-8956-7E217E78307C@nstarsoftware.com>
To: Scott Handley <scott@nstarsoftware.com>
References: <CABFYohhOuK3cXXdmRtTO=RKXRrrkHWUc33LikGUWajiE6J8g+g@mail.gmail.com> <CABFYohhoMeMC+MVC=1VQVy=gZkBvDG1j7ejnL=bPbOfz4_gNqQ@mail.gmail.com> <B7B8F054-A3B6-4D76-9276-88B7F65617EB@nstarsoftware.com> <D8B01638-8D0C-416F-B5D6-721B9C1C06E3@icloud.com> <DE086792-FE8B-4DB5-8956-7E217E78307C@nstarsoftware.com>
X-Mailer: Apple Mail (2.3776.700.51.11.4)
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMDI4MDA5NSBTYWx0ZWRfX4m3FURmncnNR yqwsIhpq6MZViDe6SM2MZ135E/m55y0cXxC4kAsb+WoTLuv4HJCnKC/KG6ev+wrYrE3UOZrA/ht FAyX2r0Em8nF5HLfjcs4tP+LF5tzrLh/UGhJ/SYRqR8JyaWDeRPw2T/V2ml2Vg8/gxuBzrjS09q 5v+i7qDWdtpmIeHu3Tr0kaKnWGVwJIfSp4biB8mAEDaVUwrki9lKZ5vP/sMcxhsTrTmGOxTv68j ER1REsataa5PnkQwMnwbh7NZ4tBuRNpipeEFCUH6ETffgEIqUO1mi7pF4z0L2QP+9wlRK1le2rZ SpEEtCaEMLaVibDLpjuFaSUKB0i12Gyh7oIAyqvr5bXD8OHbb4B600za2shgHk=
X-Proofpoint-ORIG-GUID: EvV2PxFNZ2PdRINo8MboQXSfmcau8dNt
X-Authority-Info-Out: v=2.4 cv=FbU6BZ+6 c=1 sm=1 tr=0 ts=6ae28c5b cx=c_apl:c_pps:t_out a=kRaGL2Q7qLiahLf3O6OaIA==:117 a=kRaGL2Q7qLiahLf3O6OaIA==:17 a=660iZSQnnn4A:10 a=x7bEGLp0ZPQA:10 a=JRQFYCDo0VMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=A1X0JdhQAAAA:8 a=SJyzPg9aAAAA:8 a=-lg8Gk5mAAAA:8 a=MJ3l_hPHAAAA:8 a=EEgifLftAAAA:8 a=48vgC7mUAAAA:8 a=v3ZZPjhaAAAA:8 a=2R1ibXmhOyolDOflJngA:9 a=lqcHg5cX4UMA:10 a=QEXdDO2ut3YA:10 a=HQIWd-AnfFhrZy5mP1cA:9 a=69eVw5qC3VgUaWM3:21 a=_W_S_7VecoQA:10 a=BI9X57e3IriwkXds9hL8:22 a=8E6PM57X71RkDQ5SQ058:22 a=HuwkBlGyFtjSqM8fOqc8:22 a=W0EjD6LayqwdsNBTTu7t:22
X-Proofpoint-GUID: EvV2PxFNZ2PdRINo8MboQXSfmcau8dNt
X-JNJ: AAAAAAABP1QUlG453W39mecOvy6oPcn4PVc7dQi72cxzG7XOtKYUlaQ2yMGNWXcNXeWP+/ YGoturJp79ko9Wxi0Ccn7tkdAueuPmgyQA1DsghhcoIt7RMLdK2ueiDJeFglg3m1FB1ts/ 65A0Zt3L+1FS3I4RF8SynplNSu7tQDB4dSayuDAWh7Rx07o1EtDAPZfuSEo8zIkAmARSZt 3k31o9I6DpuGmY+bi+O0Kx1jKgcbOvSHlnRwdmR+xJVRcwlCdfV84TYL3Va2estyTzur3q emuYORV7YTnNsffIgUCSI3PqOD94pG2I7SQW31Ui7DzlqbjI0J4skEpL2jXuWsbspSYP+d x8W5Af/kFvsg7MomPE1rsf7QL2Ic9TTTxHwOHmBoiHngPAAKaIVQqJyzHpNKII8zbRFzpT BYRYdayVj3+VMecl+UzkrXjT+BwtrwDZNpa/FZcLiKBwl/llHB+W8B+vnk9zru/GS0uT1a uUa3o3hHb5l4+EvcB7lFkNiqykG/7SMsJ5w9w/b8dCFUhqGUTNH9FkHjvC7/fZrgMSFa4n 37nlUj9OrltAQ78fEnCCVwbA+xKLGUcdTEaVOoXrJMN6eRy03TIFMJuaAfQYV+Eh2YGjZj CzfYdypytWH27XXvZtupePy37knNT02xN9pTnSJyjYS2AmkazkUt253bxsZTe8ZwC5o1Gq xFu5riEmzkcD862q5hnsQSECsti3umLIKuNQeAsIGwGQFkUBAq4GPM/aMbdG7CsbnL3kE/ JI6PjgLQjry2l3wYDDMvNwBZX0z6mHka2IAjoXGxGiH26MjxUFtXP8iqqwmHPn6jy6YlJb Ue+FiHaOvcJxNwdFsC5c/Pw72j8RAzt3zds/62VuZz7IgEGH+2OaPZcrBxXRpy+nLaNVjY NrDCGQrCE2ov59eOmUKrQyRMOpc201GZV87K4ExY9IaFxQ8sQQ/5xH7qf5aD2aX/ac5xk/ FIOh7rJntCJKYYcjIErm6n5MYgpz6SpBcuzqbnkIOso4TyEMBW04dCI6K/Xk7AYzyT3Q8/ lbzA/ZADLgLWkXyfEfOdLOsM5A67f9STwMI60umXh7rYIG50ZkSlWZdkCJE2l2fSBlPQ+I lCKE7PbCpO48t/M9EtgzPM1O3ZTcakNrE3RrHyDslLkJqhiO5ff2Oz/zMFILq954k/26WZ s5iNtT3NTE66vWoVL2JR3xVVTi5rj5rC3lm4VydCy6oQUnbQ8Z1a19yLMrDVapQzdNydYz RQaw
X-Spamd-Bar: ------------------------
Message-ID-Hash: QYRTKNXYA4XX7FBNIPXJEFT2A56UMJSU
X-Message-ID-Hash: QYRTKNXYA4XX7FBNIPXJEFT2A56UMJSU
X-MailFrom: b0undarybreaker@icloud.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Bryan Newbold <bryan@blueskyweb.xyz>, ATP IETF Mailing List <atp@ietf.org>
X-Mailman-Version: 3.3.10
Precedence: list
Subject: [Atp] Re: Potential 'at' URI Solution
List-Id: Authenticated Transfer <atp.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/atp/H2U3r_7SSFcd3xLFOxHbM8opK8o>
List-Archive: <https://mailarchive.ietf.org/arch/browse/atp>
List-Help: <mailto:atp-request@ietf.org?subject=help>
List-Owner: <mailto:atp-owner@ietf.org>
List-Post: <mailto:atp@ietf.org>
List-Subscribe: <mailto:atp-join@ietf.org>
List-Unsubscribe: <mailto:atp-leave@ietf.org>
I'm mostly worried that `https://pds.example/xrpc/com.atproto.repo.getRecord?uri=at:///did:web:example.com/app.bsky.feed.post/whatever?service=atproto` or the like would cause issues for URL parsing, since AT URIs are passed through XRPC queries fairly often.
> On Oct 28, 2026, at 4:26 PM, Scott Handley <scott@nstarsoftware.com> wrote:
>
> Hi Meredith,
>
> As AT-URIs aren't hyperlinks but are programmatically parsed for DID, NSID, and RKEY in order to form an appropriate XRPC service URL over HTTP, I don't think this is an issue?
>
> Have the service as part of the AT-URI would help this programmatic process by identifying the target service in the user's DID document that is responsible for the resource. Today, the public service lookup is hardcoded to "atproto_pds". Presumably, the spaces context would also be hardcoded for lookup. Is there an alternative that could be more open and flexible?
>
> -Scott
>
>> On Oct 28, 2026, at 4:12 PM, Meredith Espinosa <b0undarybreaker@icloud.com> wrote:
>>
>> Queries are already used by XRPC queries over HTTP, so I don't think they can be feasibly included in URIs as they are right now.
>>
>>> On Oct 28, 2026, at 3:52 PM, Scott Handley <scott@nstarsoftware.com> wrote:
>>>
>>> Hi,
>>>
>>> I understand there's little will for improving the current (and aging) URI specification and parsers to adopt a DID in the authority. Nonetheless, I still hold hope that the AT-URI can achieve the same and greater success for innovation that the URI specification has with its flexible path/query/fragment design.
>>>
>>> As it stands, the AT-URI specification defines a complementary URI structure with "at://authority [path] [?query] [#fragment]" but the query and fragment are documented as yet to be supported. The allure of the AT-URI has been this intention to conform with the URI specification while delivering its single greatest innovation -- a portable identity (DID) as the “authority”.
>>>
>>> My concern is that the “at:public” or “at:space” segmentation implies that AT-URI’s can only be one or the other.
>>>
>>> (1) What about content that is local or private or hosted by some current or yet-to-be-invented custom service? Can it have an AT-URI? If no, why not?
>>>
>>> (2) Would additional prefixes be under some form of protocol governance committee? How would such a process expedite/hinder innovation?
>>>
>>> (3) Can the content be referenced such that it starts off in one domain (eg. space) but through its lifecyle ends up in another domain (eg. public)?
>>>
>>> Why further restrict, as opposed to expand, the AT-URI specification with the affordances of the URI specification? What is the hesitation for using the "query" to identify the "service" responsible for "hosting" a resource?
>>>
>>> Public content => at:///did/nsid/rkey?service=atproto
>>>
>>> Space content => at:///did/…?service=atproto_space
>>>
>>> Other service content => at:///did/…?service=acme
>>>
>>> Either one ("/") or three ("///") slashes after "at:" I believe would conform to the URI specification. Here, the query "service” would refer to a service supported by a user’s DID document (either did:plc or did:web)--thereby eliminating the need to hard-code "at:public ==> service=atproto" and "at:space ==> service=atproto_space". It's also is extensible for future services.
>>>
>>> Just a few thoughts to ponder. I've enjoyed following these conversations in the AT Protocol community...they've been inspirational.
>>>
>>> Best regards,
>>>
>>> Scott Handley
>>> NorthStar Software LLC
>>> scott@nstarsoftware.com <mailto:scott@nstarsoftware.com> | www.nstarsoftware.com <https://www.nstarsoftware.com/>
>>>
>>>
>>>
>>>> On Oct 28, 2026, at 10:12 AM, Bryan Newbold <bryan=40blueskyweb.xyz@dmarc.ietf.org> wrote:
>>>>
>>>> The 'at:space' example had a typo (the '/space/' was accidentally included in the example). It should read:
>>>>
>>>> at:space/did:plc:735r43lcgemuv2woqpvx3lso/my.bulletin.board/self/did:plc:735r43lcgemuv2woqpvx3lso/my.bulletin.post/3mtiiz6ci6c2j <http://my.bulletin.post/3mtiiz6ci6c2j>
>>>>
>>>> Thanks to Nick Gerakines for the sharp eyes.
>>>>
>>>> --bryan
>>>>
>>>> On Wed, Oct 28, 2026 at 9:47 AM Bryan Newbold <bryan@blueskyweb.xyz <mailto:bryan@blueskyweb.xyz>> wrote:
>>>>> I have a new 'at' URI scheme syntax/structure proposal that could be a way forward:
>>>>>
>>>>> at:public/<account>/<collection>/<rkey>
>>>>> at:public/did:plc:vwzwgnygau7ed7b7wt5ux7y2/app.bsky.feed.post/3k5nobkf2w72g <http://app.bsky.feed.post/3k5nobkf2w72g>
>>>>>
>>>>> As a reminder, the current 'at://<account>/...' syntax with double slashes is not a valid IETF URI, nor a valid WHATWG URL. In this proposal we lose the nice idiomatic prefix ('at://'), but keep the account identifiers vebatim, and don't need any escaping or encoding. The general shape is unchanged: a three-tuple of {account, type, key}.
>>>>>
>>>>> This prefix structure would generalize well to other URIs in the broader atproto ecosystem. For example, design work is wrapping up on "atproto spaces", a protocol extension for non-public data[0]. This is outside the scope of this group's current charter, but assuming all goes well with the current charter we expect to propose it in a future re-charter. Spaces have a dual namespace structure, with two separate three-tuples, and need distinguishable URIs. With feedback from the developer ecosystem we have iterated on a couple different syntaxes (including a new 'ats:' URI scheme), and currently settled on a '/space/' as the first path prefix:
>>>>>
>>>>> at://<space-account>/space/<space-type>/<skey>/<repo-account>/<collection>/<rkey>
>>>>> at://did:plc:735r43lcgemuv2woqpvx3lso/space/my.bulletin.board/self/did:plc:735r43lcgemuv2woqpvx3lso/my.bulletin.post/3mtiiz6ci6c2j <http://my.bulletin.post/3mtiiz6ci6c2j>
>>>>>
>>>>> This reuses the 'at:' scheme (which we like), but has all the same syntax problems as the current public protocol references (aka, the double-slash), and also has the '/space/' in the middle. Under the new proposed syntax, these could be:
>>>>>
>>>>> at:space/<space-account>/<space-type>/<skey>/<repo-account>/<collection>/<rkey>
>>>>> at:space/did:plc:735r43lcgemuv2woqpvx3lso/space/my.bulletin.board/self/did:plc:735r43lcgemuv2woqpvx3lso/my.bulletin.post/3mtiiz6ci6c2j <http://my.bulletin.post/3mtiiz6ci6c2j>
>>>>>
>>>>> The use of 'public' for the prefix for regular atproto records could be debated; maybe 'at:repo' would make sense. We would still expect the 'at://' syntax to be supported as a mandatory "legacy" format for all the billions of existing records containing strings in that format, but we would be careful not to call them "URIs".
>>>>>
>>>>> We have a short time window in which we could adopt the 'at:space' syntax for the atproto spaces beta deployment, which we expect to go live soon after IETF 127 ("by the end of November"). That would sort of hinge on expecting the general pattern to work out as the public data URI syntax as well. It is impossible to come to a formal consensus on this timeframe, but there is time to get feedback on this list and have a discussion at IETF 127. If there is broad support this format, we will likely use it in the spaces beta deployment. If not, we will likely go ahead with the syntactically-invalid 'at://' format, and resolve that problem at the same time as the public data references.
>>>>>
>>>>> Some questions for the list:
>>>>>
>>>>> - are there any concerns about this new proposed syntax being a valid and well-formed IETF URI?
>>>>> - how likely is this new syntax likely to be pass scrutiny at the IESG and/or uri-review@ietf.org <mailto:uri-review@ietf.org> phase?
>>>>> - are folks willing to let go of the nice 'at://' prefix?
>>>>> - is it worth the disruption and friction of supporting two syntaxes ("valid URI" and "legacy non-URI") indefinitely?
>>>>> - are there any firm counter-proposals waiting in the wings?
>>>>> - any strong aesthetic or conceptual objections to this new syntax?
>>>>>
>>>>> --bryan
>>>> _______________________________________________
>>>> Atp mailing list -- atp@ietf.org
>>>> To unsubscribe send an email to atp-leave@ietf.org
>>>
>>> _______________________________________________
>>> Atp mailing list -- atp@ietf.org
>>> To unsubscribe send an email to atp-leave@ietf.org
>>
>
- [Atp] Potential 'at' URI Solution Bryan Newbold
- [Atp] Re: Potential 'at' URI Solution Bryan Newbold
- [Atp] Re: Potential 'at' URI Solution Emelia S.
- [Atp] Re: Potential 'at' URI Solution Daniel Holmgren
- [Atp] Re: Potential 'at' URI Solution Rudy Fraser
- [Atp] Re: Potential 'at' URI Solution Emelia S.
- [Atp] Re: Potential 'at' URI Solution Bryan Newbold
- [Atp] Re: Potential 'at' URI Solution Scott Handley
- [Atp] Re: Potential 'at' URI Solution Meredith Espinosa
- [Atp] Re: Potential 'at' URI Solution Scott Handley
- [Atp] Re: Potential 'at' URI Solution Meredith Espinosa
- [Atp] Re: Potential 'at' URI Solution Scott Handley
- [Atp] Re: Potential 'at' URI Solution Martin J. Dürst
- [Atp] Re: Potential 'at' URI Solution Meredith Espinosa
- [Atp] Re: Potential 'at' URI Solution Bumblefudge
- [Atp] Re: Potential 'at' URI Solution Scott Handley
- [Atp] Re: Potential 'at' URI Solution Meredith Espinosa
- [Atp] Re: Potential 'at' URI Solution Erin Shepherd
- [Atp] Re: Potential 'at' URI Solution Robin Berjon