Skip to main content

Uploading Juno Assets to IPFS or Arweave

By default, assets used in a Juno recipe (images, video, audio, fonts, etc.) are uploaded to Transient Labs’ centralized CDN. If you prefer to store your assets on decentralized storage, you can easily replace those URLs with IPFS or Arweave links.

Ben Strauss avatar
Written by Ben Strauss
Updated over a week ago

Where Juno Assets Live by Default

When you upload assets inside a Juno recipe, they appear in the Code tab and are hosted on:

You can swap any of these URLs with IPFS or Arweave links at any time.

Option 1: Uploading Assets to IPFS (Using Pinata)

IPFS is a content-addressed storage network. Pinata makes IPFS uploads simple and provides a public gateway.

Step 1: Create or Log Into Pinata

  1. Go to Pinata and sign in.

  2. Once logged in, you’ll land on your dashboard.

Step 2: Upload Your Assets

  1. Click Add in the top navigation.

  2. Choose Folder or File.

    1. Folder is recommended if multiple assets are used in the same recipe.

  3. Select your local folder or file.

  4. Confirm the upload.

Step 3: Configure Advanced Settings

  1. Open Advanced Settings during upload.

  2. Set the CID version to v0.

    1. This keeps CIDs consistent and familiar for most workflows.

  3. Complete the upload.

Step 4: Build Your IPFS URLs

After upload, Pinata will display a CID.

Use the public IPFS gateway format:

https://ipfs.io/ipfs/<CID>

If You Uploaded a Folder

Append the file name after the CID:

https://ipfs.io/ipfs/<CID>/filename.filetype
https://ipfs.io/ipfs/<CID>/filename.filetype
https://ipfs.io/ipfs/<CID>/filename.filetype

If You Uploaded a Single File

No file name is required:

https://ipfs.io/ipfs/<CID>

Step 5: Replace URLs in Your Juno Recipe

  1. Replace the transientusercontent.xyz urls with the IPFS URLs into your recipe code.

  2. Run the recipe.

  3. The artwork will reload using IPFS-hosted assets.

Option 2: Uploading Assets to Arweave (Using ArDrive)

Arweave offers permanent storage with a one-time payment per upload. ArDrive provides a simple interface and supports credit card payments via Stripe.

Step 1: Create an ArDrive Account

  1. Go to ArDrive.

  2. Sign up and create a wallet.

  3. Purchase upload credits if needed.

Step 2: Create a Public Drive

  1. Click NewNew Drive.

  2. Make sure the drive is set to Public.

  3. Name the drive anything you want.

  4. Create the drive.

Step 3: Upload Files or Folders

  1. Inside your drive, upload your assets.

  2. You can upload individual files or a folder.

  3. ArDrive will show:

    1. File sizes

    2. Estimated cost

    3. Remaining balance

After upload, files will show a yellow dot, indicating they are pending.

Wait a few minutes until processing completes.

Step 4: Get the Data Transaction ID

  1. Click on an uploaded file.

  2. Open Details.

  3. Copy the Data Transaction ID.

This ID functions like a CID in IPFS.

Step 5: Build Your Arweave URLs

Use the following format:

https://arweave.net/<DATA_TRANSACTION_ID>

Each file has its own transaction ID, so each asset will have its own URL.

Step 6: Replace URLs in Your Juno Recipe

  1. Replace the transientusercontent.xyz urls with the Arweave URLs into your recipe code.

  2. Run the recipe.

  3. Your artwork will now load assets directly from Arweave.

Summary

  • IPFS (via Pinata) is great for flexible, folder-based workflows and free public gateways (with the option to upgrade to paid services).

  • Arweave (via ArDrive) offers permanent storage with a one-time payment.

  • Juno recipes can use either option by simply swapping asset URLs in the code.

Once the links are replaced, no other changes are required. Just make sure you test your recipe in the Juno workspace to make sure it is still functioning.

Happy creating!

Did this answer your question?