Introducing ai: an AI URI

I started a new blog and kicked it off with an idea I had for an AI URI. Basically, it’s a way to turn an AI prompt into a link that can be rendered in any context that supports URIs. It could be used, for example, wherever a data URI could be used, as a source for an image or audio file, link to a document, web app, etc. I can imagine it being particularly useful for embedding in emails or text messages.

It would also be useful to use as part of an existing standard, for example, NFTs, wherein the metadata field of NFTs could simply be set as an AI URI, allowing for client-side generated AI NFTs using the existing NFT standards.

It would also be possible to set the content hash field of an ENS name to an AI URI, allowing for AI-generated websites with all on-chain prompts. The avatar record could also be set to an AI URI for a client-side rendered avatar image. Because AI is a semantic URI, where the meaning of the prompt needs to be interpreted in order to resolve the URI, it is also reverse compatible. For example,;; would be interpreted semantically within the context of the linked content, and therefore would be rendered as a link to the website, while a URI of an image ai:;; would be interpreted in context to mean, render the image.

It would also be possible to add text prompts and URIs into a AI URI prompt; for example, ai: a link using a new window to;; would create a link using the HTML attribute, target=“_blank”.

I originally had the idea for the AI URI when imagining what might be possible for resolving ENS names using AI. The CCIP-Read specification states that “URLs returned by a contract may be of any schema,” and therefore, it would be possible to use the AI URI scheme, which might look like ai:Arbitrum One, Chain ID: 42161, registry address: 0x0D9954DE8B7D9B802dBAE75FCb4bf0e90f37e795;; The AI agent would know exactly what to do in this case, as all that is needed are the chain ID and contract address, because these are user-specified values. The rest of the knowledge needed to resolve a name with a proof can be gained from the context.

One thing I think is clear is that we are moving from a world where everything online is explicitly specified and encoded to a world where the intent of the user is semantically understood and actions are executed by AI.