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.
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:
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:
urn: The URN scheme identifier, as defined by RFC 8141.
decentraland: The Namespace Identifier (NID) representing the Decentraland ecosystem.
entity: The Namespace Specific String (NSS) denoting the type of content being addressed. In this case, it represents an entity within Decentraland.
<IPFS_CIDv1>: The unique content identifier, using the CIDv1 format from the InterPlanetary File System (IPFS).
q-componentof the RFC 8141, used to enable query parameters in strict URN parsing mode. It MUST be present if any other query parameter is present. If none are, it can be omitted.
&baseUrl=https://content.server/content: An optional query component specifying the base URL of the content server hosting the asset. If none is provided, the implementation will fall-back to a content server of the Catalyst network.
The adoption of this URN format offers the following advantages:
baseUrlpart of the query parameters, the entity ID becomes decoupled from the server. Enabling resolution or retries in multiple servers.
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
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
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.