Getting started using the Inscriptions CLI

Set up your workspace

Clone the mpl-inscription repo.

git clone https://github.com/metaplex-foundation/mpl-inscription.git

The CLI lives in the repo in the clients/cli subdirectory. The dependencies must first be installed before it can be run.

pnpm install

After that bulk Inscribing can be invoked using the following commands. Commands that are optional are indicated

Download the NFTs

This command is used for initializing the assets that will be inscribed. The Download process will create a cache folder in the running directory and store the JSON (.json) and Media (.png, .jpg, .jpeg) files associated with the NFT there, along with a .metadata file which stores data for other CLI commands. The name of each file will be the mint address of the NFT being inscribed.

If you wish to manually override any of the JSON or media files being inscribed, replace the relevant file in the cache directory with the file you'd like to inscribe instead.

Download your NFT assets.

pnpm cli download hashlist -r <RPC_URL> -k <KEYPAIR_FILE> -h <HASHLIST_FILE>

Estimate cost (Optional)

The total cost of inscribing an NFT can be determined using this command. It calculates the SOL rent costs for inscribing NFTs based on the account overhead and the file sizes in the cache directory.

Estimate total NFT Inscription cost.

pnpm cli cost hashlist -h <HASHLIST_FILE>

Trim JSON fields (Optional)

This command can be used to trim JSON fields from the .json file associated with an NFT. Oftentimes NFT JSON data includes deprecated fields that can be removed for cost savings during the Inscription process. For example the 'seller_fee_basis_points', 'creators', and 'collection' fields are all deprecated in the JSON data and can be removed to save on rent cost. Additionally, the description field is often long and creators may want to remove this for cost savings. The default fields to be removed if the --remove option isn't provided are 'symbol', 'description', 'seller_fee_basis_points', and 'collection'.

Trim JSON fields.

pnpm cli compress json --fields symbol

Compress Images (Optional)

The CLI also offers the ability to compress images before inscribing, to further save on rent cost. They can be compressed on three metrics:

  • Quality (number 1-100, default: 80) (only applicable for jpegs) which reduces the overall clarity and colors available in the image.
  • Size (number 1-100, default: 100) - Reducing the total image size with lower numbers being smaller images.
  • Extension (png or jpg, default: jpg) - Change the image to the specified file type, with jpegs typically being smaller (but lossier) than pngs.

Compress Images.

pnpm cli compress images -q <QUALITY> -s <SIZE> -e <EXTENSION>

Inscribe!

Download your NFT assets.

pnpm cli inscribe hashlist -r <RPC_URL> -k <KEYPAIR_FILE> -h <HASHLIST_FILE>