IPFS

This guide is for teams who specifically need to manage IPFS hosting themselves. Most creators should use the Scatter Uploader instead.

IPFS Self-hosting

When to Use IPFS

Use manual IPFS hosting only if you already run an IPFS pipeline, need custom pinning behavior, or require a specific gateway setup. For Scatter-managed hosting, use the Scatter Uploader.

File Prep (Quick Check)

  • Media files must be numbered 1 to N with no prefixes.
  • JSON files must be named 1, 2, 3 with no .json extension.
  • See Metadata for fields and structure.

Pinata (Advanced)

Create a Pinata account.

Upload images and get the images CID:

  • Click Add and select folder upload. If you use the Pinata mobile app, the folder upload feature is not available, so you should use the desktop or try Filebase.
  • Select the folder with your images in it.
  • Once uploaded you will receive a unique CID for the images folder. Save it.

Generate or edit metadata:

  • Once you've uploaded your images, you will have the images CID needed to create JSON files. Each JSON file must point to the correct image, for example "image": "ipfs://CID/1.png".
  • If you already have metadata, update the image links with the new CID. You can use https://webtools.scatter.art/update-image-fields/.

Upload metadata and get the metadata CID:

  • Click Add again and select folder upload.
  • Select the folder with your completed JSON files.
  • Once uploaded you will receive a unique CID for the metadata folder. Save it.
  • This second CID is used as your base URI.

Set Your Base URI

After pinning metadata, set your base URI in the Contract tab using the metadata CID. The correct format is ipfs://CID/.

Unrevealed Metadata

If you want a delayed reveal (not reveal-on-mint), see Generate Unrevealed.

Remove JSON Extensions

It is necessary to remove the .json file extensions of your JSON files before using them with your collection's contract baseURI.

Scatter contracts work by adding your baseURI with the ID of a token to know how to look up that token's metadata. This is why you cannot have .json file extensions on your JSON files.

For example: ipfs://JSONCID/ + 1 = ipfs://JSONCID/1 and not ipfs://JSONCID/1.json

Windows

Press Windows Key + R together to open the run prompt.

Type cmd and press enter to open the command prompt.

Type cd followed by a space in the command prompt and then drag the folder where your JSON files are in into the command prompt window and then press enter.

Copy and paste the following command into the command prompt and press enter.

for %i in (*.json) do ren "%i" "%~ni"

All JSON files in the current folder should have their .json file extensions removed.

macOS

Press Command + Space Bar on your Mac keyboard (alternatively, press F4) Type in “Terminal” When you see Terminal in the Spotlight search list, click it to open the app.

Type cd followed by a space in Terminal. Then drag the folder where your JSON files are in into the Terminal window and press enter.

Copy and paste the following command into the Terminal window and press enter.

for file in *.json; do mv "$file" "${file%.json}"; done

All JSON files in the current folder should have their .json file extensions removed.

Linux

Press Ctrl + Alt + T to open Terminal on Linux.

Type cd followed by a space in Terminal. Then drag the folder where your JSON files are in into the Terminal window and press enter.

Copy and paste the following command into the Terminal window and press enter.

for file in *.json; do mv "$file" "${file%.json}"; done

All JSON files in the current folder should have their .json file extensions removed.

Scatter's Webtools

Put your files into a .zip (just files, don't zip the folder containing files).

Drag and drop your .zip to this tool.

Get a new .zip back, all JSON files in the .zip should have their .json file extensions removed.

Filebase for IPFS

This guide is for teams who need to manage IPFS hosting themselves. Most creators should use the Scatter Uploader instead.

More in-depth product information can be obtained at https://filebase.com/.

Before You Start

Make sure your files are prepared correctly:

  • Media files must be numbered 1 to N with no prefixes.
  • JSON files must be named 1, 2, 3 with no .json extension.
  • See Uploader for file prep and Metadata for metadata fields.

Step 1 - Deploy Your Collection

Follow the steps in Deploying Your Collection.

Step 2 - Content Pinning Using Filebase

Create a Filebase account.

Upload images and get images CID:

  • Click on the top right highlighted Upload button and select folder upload
  • Select the folder with your images in it
  • Once uploaded you will receive a unique CID of the images folder, highlighted at the bottom left. Copy and paste this CID and make sure you save it.
filebase1

Generate or edit metadata:

  • Once you've uploaded your images, you will have the images CID necessary for creating the JSON files. Each JSON file must have an image link that points to an actual image stored on IPFS (it looks like "image": "ipfs://CID/1.png"). For more about metadata please read Metadata. You can also use https://webtools.scatter.art/.
  • If you already have your metadata generated before, you should edit it with the given images CID, so image links are correct. To update image links use https://webtools.scatter.art/update-image-fields/.

Upload metadata and get metadata CID:

  • Click again on the top right highlighted Upload button and select folder upload
  • Select the folder with your completed JSON files in it
  • Once uploaded you will receive a unique CID of the metadata folder, highlighted at the bottom left. Copy and paste this CID and make sure you save it.
  • This second CID will be used to set your base URI in your contract.
filebase2

Please note - if you have a large collection, uploading it all as a folder can time out depending on the size. I.e. if you're attempting to upload a 20Gb folder, your internet connection can drop for a second and sever that upload connection. Filebase uploads in parallel to help with that via multi part uploads, but in certain cases it can still time out. Most normal-sized collections should be able to upload as a folder with no issue, but if you run into something like a 20k-item collection, bucket CIDs may be a better route:

  • Make sure you choose the IPFS option when creating a bucket
  • Users can upload files individually one at a time into a Filebase bucket. There's no need to batch-upload all files simultaneously.
  • Once all desired files are uploaded, users can select the Generate Bucket CID option. This action instantly generates an IPFS folder CID that mirrors the file structure and layout of the Filebase bucket.
  • You can also easily modify files - if you need to change or remove files, simply delete the unwanted files from the bucket and select Generate Bucket CID again. A new folder CID is created instantly, without the need to re-upload the remaining files.

Step 3 - Set Your Base URI

Set your base URI in the Contract tab using the metadata CID. The correct format is ipfs://CID/. For more detail, see IPFS Self-hosting.

Step 4 - Set Up Your Collection Profile

Continue with Setting Up Your Collection Profile.

Step 5 - Set Up Mint Lists

Continue with Mint Lists.