ADR-278: VRM Export Control for Wearables

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

Context and Problem Statement

The Explorer's VRM export feature allows users to export their avatars for use in other platforms. However, this creates potential issues:

Proposed Solution

Add a blockVrmExport boolean field to the wearable configuration metadata to explicitly indicate whether a wearable can be exported as VRM.

The wearable configuration schema will be extended as follows:

type WearableConfiguration = {
  // ... existing fields ...
  data: {
    // ... existing data fields ...
    /** Indicates if VRM export should be blocked for this wearable */
    blockVrmExport: boolean
  }
}

Example wearable configuration with the new field:

{
  "name": "Special Hat",
  "category": "hat",
  "data": {
    "replaces": [],
    "hides": ["hair"],
    "tags": ["special", "hat"],
    "blockVrmExport": false,
    "representations": [
      // ... representations ...
    ]
  }
}

Implementation Details

Technical Details

Alternatives Considered

  1. Smart Contract Storage: Storing the flag in item metadata on-chain. Rejected due to:

  2. Collection-Level Control: Setting export permission at collection level. Rejected because:

  3. Whitelist System: Explicit allowlist for VRM export. Rejected due to:

Trade-offs

Advantages

Disadvantages

Implementation Plan

  1. Update wearable metadata schema
  2. Add UI controls in Builder wearable submission
  3. Modify Explorer VRM export to check permissions
  4. Add user feedback for blocked exports
  5. Update documentation for creators

Future Considerations

License

Copyright and related rights waived via CC0-1.0. Draft