Fully on-Chain NFTs
NMKR Studio also allows fully on-chain NFTs
Fully on-chain NFTs are NFTs where the art is not like regular tokens where the file sits on 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. 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.
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.
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.
"src": [
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlYAAAJWCAYAAACapc",
"kfAAAM5UlEQVR4nO3YMYveVR6G4czyR0ewUNSdURLSpBAsBAe02cg2FltYCIKQXk",
.....
"SEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBARFgBAESEFQBA5FdySWoe28",
"2w6gAAAABJRU5ErkJggg=="
]
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.
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.
"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.
"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.
{
"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=="
]
}
],
"image": [
"data:image/png;base64,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"
],
"mediaType": "image/png",
"name": "hunk0030"
}
}
}
}
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"