Introduction
Arweave Manifests unlock new and unique experiences that can only be made possible on the Permaweb.
An Arweave Manifest is a mapping of Arweave Transaction IDs and friendly names. This map is put into a standardized, JSON structure and permanently stored on Arweave, and it allows users to create logical groupings of content. Arweave Gateways can interpret this structure, so users can then reference individual transactions by their file name and/or path.
This makes it easier for web masters, NFT creators or any other user to reference their transactions by a single “master” manifest transaction and the individual file path and name. They allow you to use friendlier URLs like...
https://arweave.net/Bgw5-GwpymUoe5VMeb-No9WWXpjWsq_8g4oeiGP5RnA/0.png
https://arweave.net/Bgw5-GwpymUoe5VMeb-No9WWXpjWsq_8g4oeiGP5RnA/333.png
...rather than opaque Arweave transaction IDs that ordinarily reference your data:
https://arweave.net/ISvPQyG8qWzJ1Pv5em5xK8Ht38HZ3ub1fPHbFEqDPK0
https://arweave.net/nHuFsR2Y-e_qtnsmj0avn37CTWxlZ4zvG_CKwtldK3I
This standard was originally created by the Arweave Team. More details on its motivation, schema and path resolution details can be found in their wiki.
https://github.com/ArweaveTeam/arweave/wiki/Path-Manifests
With ArDrive, any Drive or Folder can be turned into a Manifest. The file names and paths would each be represented within the Arweave Manifest, making it easier for developers and users to reference their content by the names used on their local file systems.
Arweave Manifests must be public, non-encrypted data for the Arweave Gateways to interpret them.
Want more details? Check out this deep dive into Arweave Manifests and demonstration on how to create them with ArDrive Web, CLI and Core-Js
Use Cases
With Arweave Manifests, you do not need to remember the unique and non-changing Arweave Transaction IDs since they can have a corresponding friendly name. This opens a variety of use cases
Host your personal or business static website
Host your web application using familiar frameworks like JavaScript, React and Angular
Aggregating your permanent NFT data into a single Arweave transaction ID for easier Smart Contract publication.
Examples
NFT Publication
Digital creators, whether music, art or video (or anything in between) can leverage an Arweave Manifest in order to reference their permanently stored data within their NFT Smart Contracts using a predefined set of friendly names.
Here is an example manifest that groups 1,111 images that were part of an NFT drop. The artist did not want to sacrifice the simple naming scheme used to programmatically generate the artwork. An Arweave Manifest was an easy way to reference all 1,111 images with a single Arweave Transaction ID within their ERC721 contract:
The root manifest transaction has a default index
that corresponds to the Arweave Transaction ID for image number 0
This image can also be reached using the manifest transaction plus its friendly name 0.png
0.png
could also be reached directly by its own unique Arweave Transaction ID
Any other file in the manifest can be seen by adding the corresponding filename, from 0.png
to 1110.png
https://arweave.net/Bgw5-GwpymUoe5VMeb-No9WWXpjWsq_8g4oeiGP5RnA/1.png
https://arweave.net/Bgw5-GwpymUoe5VMeb-No9WWXpjWsq_8g4oeiGP5RnA/333.png
https://arweave.net/Bgw5-GwpymUoe5VMeb-No9WWXpjWsq_8g4oeiGP5RnA/1110.png
Static Site Hosting
Static, HTML based web sites are an easy fit with Arweave Manifests. Whether it is custom developed site, leverages an easy to use template, or taken from an existing portal like WordPress, they can easily be uploaded to ArDrive and converted into an Arweave Manifest.
One such example is the ArDrive.io Public Site, which is is currently hosted in Word Press.
The plugin https://www.simplystatic.co/ was installed and leveraged to package up and download all site assets, like pages, images, CSS etc. The assets and their folder structures were then uploaded to ArDrive. Once the files were all mined and validated, an Arweave Manifest was created at the root of the Drive. The manifest ties all of the site’s files and their transactions into a single Arweave transaction that users can navigate to in order to load the full site.
The site’s assets can be seen by browsing to the public Drive
The site itself can be seen by browsing to the Arweave Manifest
With ArDrive, web masters and developers can easily view, rename, move or update any of their site’s assets and then regenerate a new manifest that contains the latest snapshot of their permanent Static Site.
React App Hosting
React apps could also leverage manifests and be permanently served from the Permaweb.
The ArDrive Price Calculator https://prices.ardrive.io is an example React app, that is hosted both centrally and on the decentralized PermaWeb.
The root manifest transaction has a default index
that corresponds to index.html
which has all of the references to the assets needed to load the ArDrive Price Calculator.
Assets can be loaded individually by adding their file name and path. For example
https://arweave.net/QMbW2XMKGvr7UgzV3tUxxnXTsCgRJRnCaEZC9Vxh9Yo/font.css
https://arweave.net/QMbW2XMKGvr7UgzV3tUxxnXTsCgRJRnCaEZC9Vxh9Yo/dist/index.js
https://arweave.net/QMbW2XMKGvr7UgzV3tUxxnXTsCgRJRnCaEZC9Vxh9Yo/dist/utils/index.js
All of the React assets are hosted out of a public drive, in a single folder called build
.
Need to change a file? Items in a manifest can be modified, like changing the name, uploading a new version or moving to a new folder. A new Arweave Manifest can be generated with the updated references.
Each version of the manifest is stored permanently, allowing web site and web app version control back to the first iteration ever published.
Want to create one?
The ArDrive Web App provides an easy to use interface for quickly creating an Arweave Manifest out of a Drive or Folder from the NEW button. Check out how to create an Arweave Manifest with ArDrive Web.
For a more advanced Manifest creation experience, like creating manifests out of Private ArDrive Data or totally customizing a manifest to use any Arweave Transaction ID or friendly name, use our Command Line App
https://github.com/ardriveapp/ardrive-cli#uploading-manifests
Comments
0 comments
Please sign in to leave a comment.