# 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](https://blog.ceramic.network/ceramic-improvement-proposals/)

#### 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

#### &#x20;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](https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-10.md) 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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://nft-standards.gitbook.io/nft-standards-wiki/non-eth-nft-standards/ceramics.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
