NMKR Docs
ProductsContact
English
English
  • Welcome to NMKR Docs
  • Introduction
    • About NMKR
    • Powered by NMKR
    • What is an NFT?
      • What is IPFS?
    • Why Cardano?
  • NMKR Studio
    • Introduction - NMKR Studio
    • Features Overview
    • 🖥️Learn NMKR Studio in 3 minutes
      • Basic Workflow
    • How to - Quick Start Tutorials
      • Quickstart Full Video Tutorial
      • Guidelines Planning a Project
      • How To Add Tokens
      • How to set up Metadata
      • How To Sell Tokens
      • How To Set Up Sales Conditions
      • How To Do a Reveal
      • How To Burn Tokens
      • How To Enable Royalties
      • How To Enable DIDs
      • How To Set up Whitelisting
      • How to Airdrop Tokens
    • Pricing
    • Account
      • Registration & KYC
      • Security
      • Wallets
      • Mint Coupons
      • Dashboard
      • Transactions
      • Invoices
      • API Keys
    • Project
      • Policy
        • Managing policies
      • Create
      • Edit
      • Metadata Template
      • Statistics
      • DID - Decentralized Identifier
      • Notifications
      • Royalties
      • Additional Payout Wallets
      • Affiliate links
      • Export Metadata as Zip
      • Export NFT as csv
      • Mint and Send Jobs
      • Export placeholder.csv
    • Token
      • Manage Tokens Tab
      • Upload
        • Upload single tokens
        • Bulk Upload Files and Metadata
          • Bulk Upload via Drag and Drop
          • Bulk upload via SFTP
      • Edit
      • Metadata
        • Add Token-specific Metadata
        • Fingerprint (Metadata preview)
        • Metadata Check
        • Metadata Standard for fungible Tokens
        • Fully on-Chain NFTs
          • Partial URL-Encoding
        • CIP-68
      • Duplicate
      • Delete
      • Burn
      • Update (Edit after Mint / Reveal)
    • Set up Sales
      • Manage prices / Pricelist
        • Create new Prices
        • Free Drops
        • Custom Token payment
        • Discounts
      • Sales Conditions & Whitelisting
        • Sales conditions depending on policy ID or stake pool
        • Whitelist with Count
        • Blacklist
        • Test Sales Condition
      • Block Tokens
      • NMKR Pay
        • Set up NMKR Pay
        • MultiSig Payment
        • Website Integration
        • Specific Payment Links
        • Manual sending in NMKR Pay
        • FIAT ETH and SOL Payment
      • Pay-In Address
      • Auction
    • Minting
      • Minting on Demand
      • Manual Minting
      • Airdropper
        • Airdrop with random distribution
        • Airdrop with specific distribution
    • Tools
      • Managed Wallets
      • Split Addresses
      • Direct Sales
      • Policy Snapshot
      • Integrations & Plugins
        • NFT Pal
        • Zapier
    • Testnet
      • Create Testnet Account
      • Testnet Wallet & tADA
      • Testnet API Swagger
  • NMKR Studio API
    • Introduction - NMKR Studio API
    • API Features
    • Swagger API Endpoints
    • Get started with the API
    • API Swagger
      • Get Started with the Swagger
      • Swagger Responses and Error Codes
    • API Examples
      • Users
        • Payout Wallets
        • Subcustomers
      • Project
        • Create Project
        • Upload File and Metadata
      • Payment
        • Create unique NMKR Pay Link for random Token sales
        • Create NMKR Pay Link for specific Token sales
        • Get Payment Address for single NFT sales with native Tokens
        • Create NMKR Pay Link for a multi-specific Tokens sale
      • Minting
        • Manual Minting
      • Smart Contract
        • Secondary Sales via NMKR Pay
    • API Open Source Contributions
  • NMKR Mint
    • Introduction - NMKR Mint
    • Mint single NFTs
    • Mint Collection
  • NMKR Playground
    • Introduction - NMKR Playground
    • ADA Payment Link
    • Paperwallet
  • NMKR Pool
    • What is Staking?
    • Stake with NMKR Pool
  • Helpful Links
    • Cardano NFT Ressources
    • Cardano Resources
    • Cardano Wallets
    • Open Source Repositories
    • Security Practices
    • Deal with Bots
Powered by GitBook
On this page
  1. NMKR Studio
  2. Token
  3. Metadata

Fully on-Chain NFTs

NMKR Studio also allows fully on-chain NFTs

PreviousMetadata Standard for fungible TokensNextPartial URL-Encoding

Fully on-chain NFTs are NFTs where the art is not like regular tokens where the file sits on and is linked in the metadata to the NFT. You can also mint these fully on-chain NFTs with NMKR Studio by . 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"

IPFS
adding the file as Base64 to your metadata
Preview of the NFT with bas64 encoded images on pool.pm