# Fully on-Chain NFTs

Fully on-chain NFTs are NFTs where the art is not like regular tokens where the file sits on [IPFS](https://docs.nmkr.io/introduction/what-is-ipfs) and  is linked in the metadata to the NFT. You can also mint these fully on-chain NFTs with NMKR Studio by [adding the file as Base64 to your metadata](https://docs.nmkr.io/nmkr-studio/token/metadata/add-token-specific-metadata). The Base64 encoding method is used to encode binary data in ASCII text. It is primarily used to store or transfer images, audio files, and other forms of media.

{% hint style="warning" %}
Please keep in mind Cardano's current metadata file size limit of 16kb when minting these types of assets. Because each character, including whitespaces, counts as one byte, you will usually only be able to sell only one NFT per transaction.
{% endhint %}

As there are images typically linked to the metadata of your token with an IPFS link ("ipfs\://qmudas..."),  you would add an image or other media file to your NFT base64 encoded for a fully on-chain NFT.

```json
            "src": [
              "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlYAAAJWCAYAAACapc",
              "kfAAAM5UlEQVR4nO3YMYveVR6G4czyR0ewUNSdURLSpBAsBAe02cg2FltYCIKQXk",
              .....
              "SEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBA5FdySWoe28",
              "2w6gAAAABJRU5ErkJggg=="
            ]
```

{% hint style="warning" %}
Please note that your string has to be converted in an array that only contains 63 Characters in each line to make it Cardano conform.
{% endhint %}

#### Base64 in the filesection:

You can add a base64 encoded media file in the filesection of your metadata to set the main file in base64.

```json
"files": [
          {
            "mediaType": "image/png",
            "name": "tokenname",
            "src": [
              "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlYAAAJWCAYAAACapc",
              "kfAAAM5UlEQVR4nO3YMYveVR6G4czyR0ewUNSdURLSpBAsBAe02cg2FltYCIKQXk",
              ....
              "SEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBA5FdySWoe28",
              "2w6gAAAABJRU5ErkJggg=="
            ]
```

#### Base64 as image:

You can also add a downscaled version of your base64 encoded image as thumbnail.

```json

        "image": [
          "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAATgAAAE4CAYAAADPf+",
          "9qAAAGFUlEQVR4nO3dvauWdRjAcU9IGTQUvZihtDQEDkFBLSktDg0NQRC4R52iGq",.....          "1bn3uI/9vut6JTHd51ee4RNjj00oNzj7DQvvvg9NwjXJdlu3W1wQFZAgdkCRyQJX",
          "BAlsABWQIHZAkckCVwQJbAAVkCB2QJHJD1L4cNZ+LMYCADAAAAAElFTkSuQmCC"
        ],
        "mediaType": "image/png",
        "name": "tokenname"
```

#### Fully on-chain NFT example metadata

The following code shows an example of a fully on-chain NFT that uses base64 encoded images as thumbnail and also mainfile in the filesection.

<pre class="language-json"><code class="lang-json">{
  "721": {
    "684ffa75d83ccd4dfe179bd37fe679e74d33cce181a6f473337df098": {
      "hunk0030": {
        "Base": "Tan",
        "Cigarette": "None",
        "Earring": "None",
        "Eyes": "Shades (yellow)",
        "Facial Hair": "None",
        "Hair": "Swirl (black)",
        "Headwear": "None",
        "Mouth": "Lips",
        "Top": "Turtleneck (rust)",
        "Top Secondary": "Chain",
        "files": [
          {
            "mediaType": "image/png",
            "name": "hunk0030",
            "src": [
              "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlYAAAJWCAYAAACapc",
              "kfAAAM5UlEQVR4nO3YMYveVR6G4czyR0ewUNSdURLSpBAsBAe02cg2FltYCIKQXk",
              "yUaCHaCIILFrtWWdlVV2zCNopgIwjRIjhWagJ+hBAxBlMIWmghsVeLMHufnHnzXt",
              "cH+PEUp7g5GydOn7l6AACA/9ufZg8AALhRCCsAgIiwAgCICCsAgIiwAgCICCsAgI",
              "iwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAg",
              "CICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICC",
              "sAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgI",
              "iwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAg",
              "CICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICC",
              "sAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgI",
              "iwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAg",
              "CICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICC",
              "sAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgI",
              "iwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAg",
              "CICCsAgMgyewCMdPbVp2dP2JODm1dmT4Bhjjz/3uwJMIwfKwCAiLACAIgIKwCAiL",
              "ACAIgIKwCAiLACAIgIKwCAiLACAIgIKwCAiLACAIgIKwCAiLACAIgIKwCAiLACAI",
              "gIKwCAiLACAIgIKwCAiLACAIgIKwCAiLACAIgIKwCAiLACAIhsnDh95ursEay3s6",
              "8+PXvCWjm4eWX2BBjmyPPvzZ7AmvNjBQAQEVYAABFhBQAQEVYAABFhBQAQEVYAAB",
              "FhBQAQEVYAABFhBQAQEVYAABFhBQAQEVYAABFhBQAQEVYAABFhBQAQEVYAABFhBQ",
              "AQEVYAABFhBQAQEVYAABFhBQAQEVYAABFhBQAQEVYAABFhBQAQEVYAABFhBQAQEV",
              "YAABFhBQAQEVYAABFhBQAQEVYAABFhBQAQEVYAABFhBQAQEVYAABFhBQAQEVYAAB",
              "FhBQAQEVYAABFhBQAQEVYAABFhBQAQEVYAABFhBQAQWWYPAK6vr3+6c9jtg5tXht",
              "0GWAV+rAAAIsIKACAirAAAIsIKACAirAAAIsIKACAirAAAIsIKACAirAAAIsIKAC",
              "AirAAAIsIKACAirAAAIsIKACAirAAAIsIKACAirAAAIsIKACAirAAAIsIKACAirA",
              "AAIsIKACCyzB4A3DhOPnjX7Al78vrn382esFZGvpOPhl2Ga+PHCgAgIqwAACLCCg",
              "AgIqwAACLCCgAgIqwAACLCCgAgIqwAACLCCgAgIqwAACLCCgAgIqwAACLCCgAgIq",
              "wAACLCCgAgIqwAACLCCgAgIqwAACLCCgAgIqwAACLCCgAgIqwAACLL7AHA9fWPhz",
              "dmT9h3Tj5417Dbr3/+3bDbwP7jxwoAICKsAAAiwgoAICKsAAAiwgoAICKsAAAiwg",
              "oAICKsAAAiwgoAICKsAAAiwgoAICKsAAAiwgoAICKsAAAiwgoAICKsAAAiwgoAIC",
              "KsAAAiwgoAICKsAAAiwgoAICKsAAAiy+wBwO/tbG8Nu/3GV1eH3b7vzz8Mu72q7j",
              "90aPaEfefTS7MXwDh+rAAAIsIKACAirAAAIsIKACAirAAAIsIKACAirAAAIsIKAC",
              "AirAAAIsIKACAirAAAIsIKACAirAAAIsIKACAirAAAIsIKACAirAAAIsIKACAirA",
              "AAIsIKACAirAAAIsIKACCyzB4Aq2pne2v2hH3nkUfvG3f73tuH3V5VL7722bDb/3",
              "zhL8Nuj/XBsMvPXHhs2G1uHH6sAAAiwgoAICKsAAAiwgoAICKsAAAiwgoAICKsAA",
              "AiwgoAICKsAAAiwgoAICKsAAAiwgoAICKsAAAiwgoAICKsAAAiwgoAICKsAAAiwg",
              "oAICKsAAAiwgoAICKsAAAiwgoAILLMHgAj7WxvzZ6w79xxy8bsCUQevvun2ROA3/",
              "BjBQAQEVYAABFhBQAQEVYAABFhBQAQEVYAABFhBQAQEVYAABFhBQAQEVYAABFhBQ",
              "AQEVYAABFhBQAQEVYAABFhBQAQEVYAABFhBQAQEVYAABFhBQAQEVYAABFhBQAQEV",
              "YAAJFl9gBYVee+vTzs9s721rDbAIzjxwoAICKsAAAiwgoAICKsAAAiwgoAICKsAA",
              "AiwgoAICKsAAAiwgoAICKsAAAiwgoAICKsAAAiwgoAICKsAAAiwgoAICKsAAAiwg",
              "oAICKsAAAiwgoAICKsAAAiwgoAICKsAAAiy+wBMNK5by/PnrBWfv7y3LDbH3457D",
              "R/4MP/fTJ7wp58dPTfsyew5vxYAQBEhBUAQERYAQBEhBUAQERYAQBEhBUAQERYAQ",
              "BEhBUAQERYAQBEhBUAQERYAQBEhBUAQERYAQBEhBUAQERYAQBEhBUAQERYAQBEhB",
              "UAQERYAQBEhBUAQERYAQBEhBUAQGSZPQBW1c721uwJAOwzfqwAACLCCgAgIqwAAC",
              "LCCgAgIqwAACLCCgAgIqwAACLCCgAgIqwAACLCCgAgIqwAACLCCgAgIqwAACLCCg",
              "AgIqwAACLCCgAgIqwAACLCCgAgIqwAACLCCgAgIqwAACLCCgAgssweAH996T+zJ+",
              "zJD++8MnsCa+7yu9/MnrAnW0/cM3sCDOPHCgAgIqwAACLCCgAgIqwAACLCCgAgIq",
              "wAACLCCgAgIqwAACLCCgAgIqwAACLCCgAgIqwAACLCCgAgIqwAACLCCgAgIqwAAC",
              "LCCgAgIqwAACLCCgAgIqwAACLCCgAgIqwAACLL7AEA7M3WE/fMngD8hh8rAICIsA",
              "IAiAgrAICIsAIAiAgrAICIsAIAiAgrAICIsAIAiAgrAICIsAIAiAgrAICIsAIAiA",
              "grAICIsAIAiAgrAICIsAIAiAgrAICIsAIAiAgrAICIsAIAiAgrAICIsAIAiAgrAI",
              "CIsAIAiAgrAICIsAIAiAgrAICIsAIAiAgrAICIsAIAiAgrAICIsAIAiAgrAICIsA",
              "IAiAgrAICIsAIAiAgrAICIsAIAiAgrAICIsAIAiAgrAICIsAIAiAgrAICIsAIAiA",
              "grAIDIMnsArKrvf7w0e8Ke3Hbr3bMnANyw/FgBAESEFQBARFgBAESEFQBARFgBAE",
              "SEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESEFQ",
              "BARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBAZJk9ALi+vv/x0rDb/z0/7DTX2a",
              "Hn3pw9AVaSHysAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgI",
              "iwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAgCICCsAgIiwAg",
              "CICCsAgIiwAgCILLMHwEgPnf/bsNsXDxwedntVHdv8ZfYEIruzB8CK8mMFABARVg",
              "AAEWEFABARVgAAEWEFABARVgAAEWEFABARVgAAEWEFABARVgAAEWEFABARVgAAEW",
              "EFABARVgAAEWEFABARVgAAEWEFABARVgAAEWEFABARVgAAEWEFABARVgAAkWX2AL",
              "h46vi42wcOD7v9+NELw26/vztuN1yLv9/8xrDbL/98YthtmM2PFQBARFgBAESEFQ",
              "BARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBARF",
              "gBAESEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESW2QPoXDx1fP",
              "aEtfL+7uFhtx8/emHY7Zu+ODjsNlyLo289Oez27lNvD7sN18KPFQBARFgBAESEFQ",
              "BARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBARF",
              "gBAESEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBARFgBAEQ2Tpw+c3X2iP",
              "3m4qnjsycQObb5y+wJ+84jzz4wewIr4ON/nZ89Ya3sPvX27AlE/FgBAESEFQBARF",
              "gBAESEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBARFgBAE",
              "SEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBA5FdySWoe28",
              "2w6gAAAABJRU5ErkJggg=="
            ]
          }
        ],
<strong>        "image": [
</strong>          "data:image/png;base64,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"
        ],
        "mediaType": "image/png",
        "name": "hunk0030"
      }
    }
  }
}
</code></pre>

And here is how it would be displayed on-chain. You can see under Storage that it says "On-Chain immutable". An NFT that uses IPFS for the thumbnail would show "IPFS, On-Chain immutable"

<figure><img src="/files/hDANU3ri1tRYp7DxNJYy" alt=""><figcaption><p>Preview of the NFT with bas64 encoded images on pool.pm</p></figcaption></figure>


---

# 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.nmkr.io/nmkr-studio/token/metadata/fully-on-chain-nfts.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.
