# jsonId

MOE NFT distinguishes various types of NFTs using JSON. Each NFT has a different JSON format depending on its form, and the JSON type is hashed to record it as a jsonId for each NFT.

This is similar to how Ethereum converts the function of a transaction into a hash and uses it in the form of a methodId.

The jsonId is of type bytes4, and if the same jsonId is used, it can be considered as the same type of NFT.

MOE provides several jsonId with JSON sets those are commonly used on onnano.co, which is recommended as a reference service. However, developers can create their own JSON structures and align the jsonId to use them in different services.

Of course, we cannot enforce the creation of jsonId in the manner we propose. However, in MOE NFT where various forms of NFT are issued, voluntarily adhering to this convention would be highly beneficial.

jsonId utilizes the first 4 bytes of the keccak256 hash of the JSON structure string, excluding whitespace.

```javascript
web3.sha3({JSON_STRUCTURE_STRING}).substring(0, 10);
```


---

# 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://docs.onnano.co/moe-trading-card/jsonid.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.
