Ceramics

Intro

Ceramics is building Decentralised Identity (DID) open-source solution which can be used across various blockchain solutions for creating, hosting and sharing streams of data https://ceramic.network/

Ceramics uses CIPs - Ceramic Improvement Proposals which are standards for the Ceramic platform, including core protocol specifications…

Learn more about CIPs

Why CIPs?

As every network, Ceramics wants to decentralise its power to the community. CIPs are step towards decentralisation of the platform and giving power to the hands of community.

NFT DID method

"NFT is a DID method that uses the Ceramic network to resolve DID documents for NFTs"

"A DID method for any NFT on any blockchain. The DID document is statically generated from on-chain data. The DID associated to the blockchain account of the asset's current owner (using CAIP-10 Links) is the only entity authorized to act on behalf of the NFT DID, authenticate in DID-based systems, and make updates to streams or other data owned by the NFT DID. When ownership of the NFT changes, so does the controller permissions" - author of intro article https://blog.ceramic.network/what-is-ceramic/

NFT DID Method Spec

"The NFT DID Method converts any non-fungible token on any blockchain into a decentralized identifier where the owner of the NFT is the controller of the DID. This is achieved by using the Chain Agnostic Improvement Proposals to describe NFT assets and blockchain accounts, as well as the Ceramic network to find the DID associated with the owner of the NFT."- CIP author

NFT DID Functions - CIP-94

Read / Verify

"Extract the Asset ID from the method specific identifier. From it you can learn which asset on which blockchain to look up the owner of the NFT. Once you have the owner account convert it to a CAIP-10 Account ID by combining it with the Chain ID from the Asset ID. Using the Ceramic caip10-link doctype we can now look up the DID which this account points to."- CIP author

DID Document Metadata

  • create - populate using the blockchain timestamp from the block when the NFT was created

  • updated - populate using the blockchain timestamp from the block of the most recent owner change

ERC721 API does not provide any way to query this data, you may want to use The Graph protocol to create subgraphs for NFTs that are supported

The following metadata properties MAY be populated (if possible).

  • create - populate using the blockchain timestamp from the block when the NFT was created

  • updated - populate using the blockchain timestamp from the block when the given version owner became owner

  • versionId - integer, should equal the number of owners until the looked up version starts at 0

  • nextUpdate - populate using the blockchain timestamp from the block when the next owner became the owner

Update

Transfer the NFT to another account

Deactivate

Burn it

Further reading

  • Full implementation of CIP-94 : https://github.com/ceramicnetwork/CIP/blob/main/CIPs/CIP-94/CIP-94.md

  • NFT DID Resolver: https://github.com/ceramicnetwork/nft-did-resolver/blob/main/README.md

  • A project that is using NFT DID Resolver: https://github.com/nama-finance/meta-manager

  • Asset Reference for the ERC721 Asset Namespace - CAIP-22: https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-22.md

Last updated