Uploading Media Files
Our web app has unique capabilities that allow you to upload your NFT files independently or in bulk and set up your metadata so they're ready to be minted

Main Image File: Supported File Types

The main file types permitted for the Main Image File (thumbnail) are: JPG, GIF and PNG

Subfiles

You can all upload additional subfiles for ***, such as:
Application: Zip; PDF; Json; GITF+Json, Octet-Stream
Audio: Mpeg; Ogg; WAV.
Image: Bmp; SVG+XML.
Text: HTML; Javascript; Plain Text; CSS.
Video: Mpeg; Mp4; Ogg; Quicktime; Webm.

Single NFT Upload

You have the option to upload and pin individual NFTs via the API, by clicking the button as demonstrated in the image below. NMKR Studio uses its own servers to upload and pin the files to IFPS. This is most likely to be used with very small volume projects (10's of NFT's) whereby it may be slightly faster to manually type the information than to set up the bulk methods mentioned below.
You can follow the steps below or watch the short video clip:
How to upload a single NFT

Example

Step 1 - Click to start uploading
Step 2 - Name and give descriptions to your NFT(s)
Step 3 - Select Mimetype and upload file
Step 4 - Yo

SFTP Bulk Upload

The upload via SFTP to upload your files(incl. metadata), there is a button beside the regular upload button now, this is our new feature and very simple to use (the UI feels similar to moving files to another folder).
You can watch this 3 minute video or read the documentation below based on your preference.
Full video tutorial

Connection Setup

Download a SFTP-Client like Cyberduck (https://cyberduck.io/) or Filezilla (https://filezilla-project.org/) (both are free). For the rest of this guide, we will be using Cyberduck.
Once you have Cyberduck installed, you then need to navigate to the project that you want to upload the files for and select the 'Bulk upload of multiple NFT' option.
You will now be in the SFTP information screen, we want to be looking at the second dropdown menu, which shows the Server Information details.
Note - keep this information safe
The next action is to move back to our Cyberduck window and select 'Open Connection', then enter the details above into the popup window. You should have something that looks similar to the below but you will have a unique username and password combo. Hit connect once the details are correctly added.
Note - ensure you have selected 'SFTP' (default FTP will not work)
You may also be prompted to 'Allow Fingerprint'
Well done - you should now see a screen like this, that looks like a set of folders, one for each project in your account.

Uploading

The upload process via SFTP should be done in 3 clear stages:
  1. 1.
    Upload Media
  2. 2.
  3. 3.
    Upload Metadata
This system works by using the main media file as an 'Anchor', onto-which you then upload the matching metadata with the matching file name and the system then associates these together.
Note - you will need your metadata in individual files for each NFT
You must upload the NFT media first, before adding Metadata or Subfiles.
Because of this, File Naming is very important and we would advise testing with small numbers of NFTs in your collection before doing the full bulk upload to ensure any errors are caught quickly. See the bottom section of this page for more detail.
The SFTP Server accept all files with the correct mimetypes and valid filenames.
If you upload a file named "Image #0001.jpeg", the Tokenname of the File will be "Image0001" and the Displayname (the Name of the NFT) will be "Image #0001". The Extension ".jpeg" defines the Mimetype.
If you upload a file named "Image #0001.subfile.1.jpeg", the previous uploaded File "Image #0001" gets a subfile. This file will be added to the NFT as the subfile Number 1.
If you upload a file named "Image #0001.metadata", the previous uploaded NFT will takes this file as metadata (in the metadata override).

NFT Images

The rest of this guide will be conducted using the following metadata template as an example:
{
"721": {
"<policy_id>": {
"<asset_name>": {
"name": "<asset_name>",
"image": "<ipfs_link>",
"SerialNumber": "<serial_num>",
"mediaType": "<mime_type>",
"description": "<description>",
"Website": "<website>",
"Twitter": "<twitter>"
}
},
"version": "1.0"
}
}
We can test the upload by performing a drag-and-drop of a small number of your NFT media files into the correct project folder:
In this example, I have uploaded 4 images called BoocrewA1 ,2 ,3 and 4
Note - open the metadata for one of the newly uploaded files and notice how it looks:
{
"721": {
"525b7670d1dbcdb40ca0392b20b625ba021a1414310f564bf3b6664e": {
"BoocrewA1": {
"name": "BoocrewA1",
"image": "ipfs://QmPBYo5jrm5nsQZZP2w7tLoh1iiwg8QNA4oaxdSL7rqSEJ",
"SerialNumber": "",
"mediaType": "image/png",
"description": "BoocrewA1",
"Website": "",
"Twitter": ""
}
},
"version": "1.0"
}
}
Do you see how some fields are filled in, and others are not:
  • Policy ID matches the project policy ID
  • Assetname, name and description have all used the filename
  • Image is now showing correctly as the IPFS link where it is stored
  • MediaType has correctly identified it as a PNG image
  • Our custom fields (SerialNumber, Website and Twitter) are all empty
    • Let's get this sorted!

Metadata

You can upload a file with the extension ".metadata" to override the metadata of the NFT and we can use this to update those fields that are currently empty. This file must be a valid JSON File and must contain the Policy ID (or the policy_id placeholder) and the 721 Section.
Note - The easiest way to ensure this all matches, is to use your metadata template as a template!
Here is what the metadata override file for BoocrewA1.png will look like, this file is BoocrewA1.metadata
{
"721": {
"525b7670d1dbcdb40ca0392b20b625ba021a1414310f564bf3b6664e": {
"BoocrewA1": {
"name": "BoocrewA1",
"image": "<ipfs_link>",
"SerialNumber": "1",
"mediaType": "image/png",
"description": "BoocrewA1",
"Website": "https://pro.nft-maker.io/",
"Twitter": "https://twitter.com/nftmakerio"
}
},
"version": "1.0"
}
}
Note - See line 6, it is important that we do not overwrite the IPFS link, hence make sure it looks like this.
Remember, you always need to upload your corresponding images/media first, before the metadata. For example: If your NFT has the Name "Image0001", you have to upload the Image file "Image0001.jpg" first. Then you can upload the Metadata File "Image0001.metadata".
If you try to upload the metadata first, you will receive an error.
As before - you now just need to drop this metadata file into the project folder and then check your NFT metadata in the NFT Maker Console!
After Image Upload
After Metadata Upload
And thats it! The key thing here is to ensure you have all of your image/media files + metadata files ready, after that its very simply just about uploading in the correct order.

File Delete/Re-naming

You can delete files from the SFTP-Server (and from your project) as long as they are in "Free" State. If you have sold them or if they are reserved, deleting is not possible.
It is not possible to rename a file. If you want to rename a file, you have to delete it first and upload it again.

Projects

It is not possible to create a new project via the SFTP-Service. You have to create the project either from the website or by the API. It is also not possible to upload files without a valid project or to rename or move projects.

SFTP Subfiles

As mentioned above, it is possible to add subfiles to your project.
To use subfiles, you will first need to set up your metadata template so it is ready to handle them, a good example is given below (see lines 9-20 in particular).
Note - this example will accommodate 2 Subfiles
{
"721": {
"<policy_id>": {
"<asset_name>": {
"name": "<display_name>",
"image": "<ipfs_link>",
"mediaType": "<mime_type>",
"description": "<description>",
"files": [
{
"name": "<display_name>",
"mediaType": "<mime_type_subfile_1>",
"src": "<ipfs_link_subfile_1>"
},
{
"name": "<display_name>",
"mediaType": "<mime_type_subfile_2>",
"src": "<ipfs_link_subfile_2>"
}
]
}
},
"version": "1.0"
}
}
And just like in the main example, you will need to follow the steps for uploading your main image file(s) first - in this example we are only showing one NFT but you will of course need to upload all of your main files first, then subfiles, then metadata (in that order).
1 Main file loaded
Now, before uploading your subfiles, make sure you have your subfiles named exactly the same as their corresponding main image, with the additional of ".subfile.X.FileExtention"
For example, our main image here is called "boo.png" so its 2 subfiles are called "boo.subfile.1.png" and "boo.subfile.2.png"
File Naming Convention
You can then upload the subfiles, and they will appear in your SFTP window like so:
Both subfiles loaded
You can now check everything is working correctly by visiting the NFT-MAKER console and clicking the row to expand it. You should see your subfiles listed like so:
Note - make sure to check that the files are there and they are correct, especially when you do this in bulk. You should see that they have all have different IPFS Hashes. If they don't, it means that you have used the same file somewhere else already.
Once you are happy, you can bulk upload all of your subfiles. Once this is complete, bulk upload the metadata as explained above.

API Bulk Upload (This guide is incomplete)

Overview

Before we get into the step by step guide, lets cover a general overview of the approach, from here, we are making the assumption that you have the image/video/3D files already created and the metadata is stored in a format that you already know how to interact with. This then reduces our challenge to:
  • Create a method than can upload one NFT to NFT-MAKER
    • Construct the API Call
    • Convert the source media into Base64 (unless you have already uploaded to IPFS
    • Build the JSON object
    • Make the API Call, with the JSON appended
  • Iterate through all media and metadata to upload the whole collection
This really needs a full guide, so we have moved it to the NMKR Studio API section.

Pre-Launch Checks

Having now uploaded some of your files, we would recommend performing some checks to ensure everything has been completed as you expect. Continuing with the motto - 'Measure twice - cut once'.

Visual Checks

Open your NFT Project and check to see that some have now been uploaded. Once in this page, you can navigate through the collection and spot-check the metadata by viewing it.
Select the 'Manage NFT' option on your project
On a specific NFT, select the 'Show Metadata' button
You will now be presented with this window, where you can visually compare the metadata with the image to ensure that they match as you desire.
Perform your checks as required
Doing so gives you confidence that your metadata matches up correctly, but for additional peace of mind, it is best to test out the full metadata on Pool.pm

On-Chain Simulation

Using the above window, you can then select the 'Copy Metadata to Clipboard' option. Doing so will copy the entire JSON object which we can use to test how major off-chain websites will display your NFT. The most popular of these is Pool.pm, which fortunately has a test feature.
After following the link, you can then paste your JSON object into the box on the left and wait for the page to render the results IF you were to mint that NFT, with the current metadata. This is a great feature that serves as a really useful final check and we recommend creators use it to avoid mistakes before minting.
Review this and check that it displays in the way that you desire