Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: ADR-202 for linked wearables v2 #267

Merged
merged 6 commits into from
Aug 21, 2024
Merged

docs: ADR-202 for linked wearables v2 #267

merged 6 commits into from
Aug 21, 2024

Conversation

pentreathm
Copy link
Member

No description provided.

@pentreathm pentreathm requested a review from a team as a code owner August 21, 2024 18:56
Copy link

cloudflare-workers-and-pages bot commented Aug 21, 2024

Deploying adr with  Cloudflare Pages  Cloudflare Pages

Latest commit: 6258744
Status: ✅  Deploy successful!
Preview URL: https://6ddcd45d.adr-cvq.pages.dev
Branch Preview URL: https://linked-wearables.adr-cvq.pages.dev

View logs

content/ADR-202-linked-wearables.md Outdated Show resolved Hide resolved
content/ADR-202-linked-wearables.md Outdated Show resolved Hide resolved
content/ADR-202-linked-wearables.md Outdated Show resolved Hide resolved
pentreathm and others added 4 commits August 21, 2024 18:26
Co-authored-by: Mariano Goldman <[email protected]>
Signed-off-by: pentreathm <[email protected]>
Co-authored-by: Mariano Goldman <[email protected]>
Signed-off-by: pentreathm <[email protected]>
Co-authored-by: Mariano Goldman <[email protected]>
Signed-off-by: pentreathm <[email protected]>
@pentreathm pentreathm merged commit 54be398 into main Aug 21, 2024
2 checks passed
@pentreathm pentreathm deleted the linked-wearables branch August 21, 2024 21:40

## Decision

LinkedWearables in Decentraland are wearables exclusively granted to owners of specific NFTs. While the wearables themselves cannot be traded, the underlying NFTs can. Verifying ownership of these wearables necessitated a third-party API. To streamline this process, a new system of URNs for LinkedWearables and wearable metadata will be introduced. These URNs and metadata will comprehensively describe both the Decentraland wearable and its corresponding NFT, enabling on-chain verification of NFT ownership, thereby eliminating the reliance on third party APIs.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verifying ownership of these wearables necessitated a third-party API. -> Verifying ownership of these wearables necessitated a service to provide the owner of the represented NFTs.

The examples below are mapping configurations within a wearable entity that represent various use cases. This information is sent to the Catalyst during the deployment of the wearable entity.

- **Owns a specific NFT collection item**: the user owning the item with id `1` in the NFT collection `0x1234567890abcdef1234567890abcdef12345678` on `matic` will be granted with this wearable
```code:json
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove code:json cause this block is hidden here


### Third Party Registry

When a third party is registered, a record is added to the third party's smart contract. This record must now include the list of NFT collection contracts and their corresponding chains for which the third party will create wearables. This information is essential for the Catalyst nodes to create a backpack endpoint, retrieve all NFTs owned by a wallet across those collections, and identify any corresponding linked wearables for those NFT items.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add an example?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should be

tp:version:lw-name:lw-description:lw-collections

E.g: tp:1:third-party-test:this-is-a-description:sepolia-0x74c78f5A4ab22F01d5fd08455cf0Ff5C3367535C;amoy-0x31c78f3A4ac21F41e5ad28345df1Fa5A3367213A


## Consequences

- Third parties will no longer need to pay for the development and maintenance of an API to verify NFT ownership and the associated wearables.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Third parties will no longer need to pay for the development and maintenance of an API to verify NFT ownership and the associated wearables.

to

Third parties will no longer need to develop and maintain an API to verify NFT ownership and the associated Decentraland wearables.

- Third parties will no longer need to pay for the development and maintenance of an API to verify NFT ownership and the associated wearables.
- Retrieving a profile or batch of profiles from the Catalyst node will no longer be affected by slow third-party resolvers.
- Old third-party wearables need to be updated by the third parties to include the mapping information, or after the deadline, they will stop working, and their NFT holders won't be able to retrieve their wearables.
- There is a dependency on the Alchemy API or similar third-party services to query which NFT items a user owns from a collection. - Only the chains supported by these services can be used. This dependency could be replaced or expanded to add support for more chains as they become available in the market.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a dependency on the Alchemy API or similar third-party services to query which NFT items a user owns from a collection. - Only the chains supported by these services can be used. This dependency could be replaced or expanded to add support for more chains as they become available in the market.

to

For this iteration, the service to validate NFT ownership will be a thirdparty API. Only the chains supported by these services can be used. This service can be replaced or expanded to support more chains as they become available in the market.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants