-
Notifications
You must be signed in to change notification settings - Fork 22
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
NFT DID Method specification #95
Comments
This is awesome. What other components are needed to enable an NFT to own and control a Ceramic doc? A DID provider? |
There needs to be an implementation of a DID Resolver. This is the first need. Then possibly a separate provider. Although it would be nice if you could just use the provider of the DID that is the controller of the NFT DID. I think this should be possible. |
Ah ok. I've been trying to figure out the difference between a provider and resolver. Is this right? DID Resolver -> General DID standard for resolving a DID document from a DID So if a NFT DID resolver existed we could go from a |
Yes exactly @codynhat 👍 |
Cool. Thanks for helping me understand! This is definitely something we are interested in and may be an area we can contribute. |
@codynhat Hacked together a quick prototype of the resolver. Feel free to contribute! Will likely pick it back up when I have more free time, but don't think I'll get much longer today :) |
Awesome! I'll take a look. |
Is this proposal still active? I was wondering if the DID should not include the chain-id to identify on which chain the NFT resides. |
@RobertOttSWITCH it does include the caip-2 chain_id! |
Oh, perfect, I didn't get that in the first place, thanks. |
Is there any plan for the specification and implementations to support Polkadot/Kusama + parachains NFTs? |
Can smart contracts that currently own NFTs also update the data stream or does it only work with user wallets? |
how would this support solana. get owner of solana NFT seems more straightforward and doesn't require a offchain indexer like subgraph Solana Mainnetsolana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ/spl-token:{the-token-mint-address}/{the-token-account-address} Solana Devnetsolana:8E9rvCKLFQia2Y35HXjjpWzj8weVo44K/spl-token:{the-token-mint-address}/{the-token-account-address} import { Connection, PublicKey } from "@solana/web3.js";
(async () => {
const connection = new Connection("https://api.mainnet-beta.solana.com");
const tokenMint = "9ARngHhVaCtH5JFieRdSS5Y8cdZk2TMF4tfGSWFB9iSK";
const largestAccounts = await connection.getTokenLargestAccounts(
new PublicKey(tokenMint)
);
const largestAccountInfo = await connection.getParsedAccountInfo(
largestAccounts.value[0].address
);
console.log(largestAccountInfo.value.data.parsed.info.owner);
/*
PublicKey {
_bn: <BN: 6ddf6e1d765a193d9cbe146ceeb79ac1cb485ed5f5b37913a8cf5857eff00a9>
}
*/
})(); |
@qbig is it possible to get the owner of an NFT at a past moment in time? e.g. given a timestamp? |
@oed I think you can.
|
@oed could you share why " owner of an NFT at a past moment in time" is important? |
@qbig In order to validate historical commits that are signed by previous owners of the NFT we need to be able to resolve this owner. Otherwise the event log would be invalidated every time the NFT changes owner, meaning that all data would be lost. |
@oed argh I see. So it's not just the current owner, but past owners of every commits in the past that are required. |
Big update to reduce complexity of the NFT DID implementation: #126 |
Discussion for CIP-94
The text was updated successfully, but these errors were encountered: