ADR-207: Content Addressable URNs for Decentraland

More details about this document
Latest published version:
https://adr.decentraland.org/adr/ADR-207
Authors:
ChatGPT
menduz
robtfm
Feedback:
GitHub decentraland/adr (pull requests, new issue, open issues)
Edit this documentation:
GitHub View commits View commits on githistory.xyz

Abstract

This ADR proposes a content-addressable URN format for the Decentraland ecosystem, adhering to RFC 8141 standards. By adopting this format, Decentraland ensures a uniform, extensible, and decentralized method for addressing content, paving the way for enhanced interoperability and integration with other systems.

Context, Reach & Prioritization

Decentraland requires a standard way to address content hosted on distributed systems, such as the Catalyst network or IPFS. This ADR proposes the use of URNs (Uniform Resource Names) in the following format:

urn:decentraland:entity:<IPFS_CIDv1>?=&baseUrl=https://content.server/content

This format complies with RFC 8141 and allows the Decentraland ecosystem to reference content in a uniform, flexible, and extensible manner.

According to the proposed format, a content-addressable URN for Decentraland would have the following structure:

The adoption of this URN format offers the following advantages:

How to generate the URN

The dynamic part of the URN is the <IPFS_CIDv1>, that is the CID of the entity uploaded to the content server. The process is thoroughly described at ADR-208

Usage in the platform

The scenesUrn of the realm definition (ADR-110) use this urn schema to instruct the explorers how to resolve the deployment.

This schema is also used by worlds, to describe the URN of the deployed scenes, and by the sdk-commands export-static command to create static realms like for sdk7-goerli-plaza pull requests.

RFC 2119 and RFC 8174

The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", " SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174.

License

Copyright and related rights waived via CC0-1.0. Living