Update

Warning: These commands modify your NFT and are for advanced users. Use with caution.

Update various aspects of an NFT.

See also Set commands for updatable values that cannot be reversed (e.g. set immutable).

Update Data

Update the Data struct on a NFT from a JSON file.

Usage

metaboss update data --keypair <PATH_TO_KEYPAIR> --account <MINT_ACCOUNT> --new-data-file <PATH_TO_NEW_DATA_FILE>

The JSON file should include all the fields of the metadata Data struct and should match creator verified bools for existing creators. E.g. if your NFT was minted by the Metaplex Candy Machine program, and you wish to keep your candy machine as a verified creator you must add the candy machine to your creators array with verified set to true.

Note: The on-chain Data struct is different than the external metadata stored at the link in the uri field so make you understand the difference before running this command.

Make sure you understand how the Metaplex Metadata Data struct works and how this command will affect your NFT. Always test on devnet before running on mainnet.

{
    "name": "FerrisCrab #4",
    "symbol": "FERRIS",
    "uri": "https://arweave.net/N36gZYJ6PEH8OE11i0MppIbPG4VXKV4iuQw1zaq3rls",
    "seller_fee_basis_points": 100,
    "creators": [
        {
            "address": "<YOUR_CANDY_MACHINE_ID>",
            "verified": true,
            "share": 0
        },
        {
            "address": "<KEYPAIR_CREATOR>",
            "verified": true,
            "share": 50
        },
        {
            "address": "42NevAWA6A8m9prDvZRUYReQmhNC3NtSZQNFUppPJDRB",
            "verified": false,
            "share": 50
        }
    ]
}

Outputs a TxId to the command line so you can check the result.

Update Data All

Update the Data struct on a list of NFTs from JSON files.

Usage

metaboss update data-all --keypair <PATH_TO_KEYPAIR> --data-dir <PATH_TO_DATA_DIR>

Each JSON file in the data directory should include the mint account and all the fields of the metadata Data struct and should match creator verified bools for existing creators. E.g. if your NFT was minted by the Metaplex Candy Machine program, and you wish to keep your candy machine as a verified creator you must add the candy machine to your creators array with verified set to true.

Note: The on-chain Data struct is different than the external metadata stored at the link in the uri field so make you understand the difference before running this command.

Make sure you understand how the Metaplex Metadata Data struct works and how this command will affect your NFT. Always test on devnet before running on mainnet.

{
    "mint": "CQNKXw1rw2eWwi812Exk4cKUjKuomZ2156STGRyXd2Mp",
    "name": "FerrisCrab #4",
    "symbol": "FERRIS",
    "uri": "https://arweave.net/N36gZYJ6PEH8OE11i0MppIbPG4VXKV4iuQw1zaq3rls",
    "seller_fee_basis_points": 100,
    "creators": [
        {
            "address": "<YOUR_CANDY_MACHINE_ID>",
            "verified": true,
            "share": 0
        },
        {
            "address": "<KEYPAIR_CREATOR>",
            "verified": true,
            "share": 50
        },
        {
            "address": "42NevAWA6A8m9prDvZRUYReQmhNC3NtSZQNFUppPJDRB",
            "verified": false,
            "share": 50
        }
    ]}

One approach to using update data-all is you can get all the JSON files using the metaboss decode mint -L <mint_list> --full command, and then write a script to modify the specific fields you want to change. The file output from decode mint when using the --full option provides the correct format that metaboss expects because it uses the same field names as what update data-all expects. The extra fields will be ignored.

Outputs a TxId to the command line so you can check the result.

Update Name

Update the on-chain name of a NFT, keeping the rest of the Data struct the same.

Usage

 metaboss update name --keypair <PATH_TO_KEYPAIR> --account <MINT_ACCOUNT> --new-name <NEW_NAME>

Update Symbol

Update the on-chain symbol of a NFT, keeping the rest of the Data struct the same.

Usage

 metaboss update symbol --keypair <PATH_TO_KEYPAIR> --account <MINT_ACCOUNT> --new-symbol <NEW_SYMBOL>

Update Symbol All

Update the on-chain symbol of a list of NFTs, keeping the rest of the Data struct the same.

Usage

 metaboss update symbol-all --keypair <PATH_TO_KEYPAIR> -L <PATH_TO_LIST_MINT_ADDRESSES> --new-symbol <NEW_SYMBOL>

Update Creators

Update the creators of a NFT, keeping the rest of the Data struct the same.

Usage

metaboss update creators -k <PATH_TO_KEYPAIR> -a <MINT_ACCOUNT> -n <CREATOR1:SHARE:VERIFIED,CREATOR2:SHARE:VERIFIED>

Creators should be a comma-delimited list of creator:share:verified. E.g.

Example:

metaboss update creators -k ~/.config/solana/devnet.json -a 4rxTT8pKeYFrFgNBgTspBWVEnMnsAZGwChkjRUtP4Xpi -n 42NevAWA6A8m9prDvZRUYReQmhNC3NtSZQNFUppPJDRB:70:false,AVdBTNhDqYgXGaaVkqiaUJ1Yqa61hMiFFaVRtqwzs5GZ:30:false

Using the --append flag will set the shares to 0 and append to the existing creators list, otherwise the creators are overwritten with the list you pass in.

Update Creators All

Same as update creators but takes a mint list instead of a single account.

metaboss update creators-all  -k ~/.config/solana/devnet.json -L mints.json -n 42NevAWA6A8m9prDvZRUYReQmhNC3NtSZQNFUppPJDRB:70:false,AVdBTNhDqYgXGaaVkqiaUJ1Yqa61hMiFFaVRtqwzs5GZ:30:false

Update URI

Update the metadata URI, keeping the rest of the Data struct the same.

Usage

metaboss update uri --keypair <PATH_TO_KEYPAIR> --account <MINT_ACCOUNT> --new-uri <NEW_URI>

Update URI All

Update the metadata URI for a list of mint accounts, keeping the rest of the Data struct the same.

Usage

metaboss update uri-all --keypair <PATH_TO_KEYPAIR> --new-uris-file <PATH_TO_JSON_FILE>
[
    {
        "mint_account": "xZ43...",
        "new_uri": "https://arweave.net/N36gZYJ6PEH8OE11i0MppIbPG4VXKV4iuQw1zaq3rls"
    },
        {
        "mint_account": "71bk...",
        "new_uri": "https://arweave.net/FPGAv1XnyZidnqquOdEbSY6_ES735ckcDTdaAtI7GFw"
    }
]

Update Seller Fee Basis Points

Update the seller fee basis points field on an NFT, keeping the rest of the Data struct the same.

Usage

metaboss update sfbp --keypair <PATH_TO_KEYPAIR> -a <MINT_ACCOUNT> -n <NEW_SELLER_FEE_BASIS_POINTS_VALUE>

Update Seller Fee Basis Points All

Update the seller fee basis points field on a list of NFTs, keeping the rest of the Data struct the same.

Usage

metaboss update sfbp-all --keypair <PATH_TO_KEYPAIR> -L <PATH_TO_MINT_LIST.json> -n <NEW_SELLER_FEE_BASIS_POINTS_VALUE>

Update Rule Set

Update a Metaplex pNFT's rule set pubkey.

USAGE:
    metaboss update rule-set [OPTIONS] --mint <mint> --new-rule-set <new-rule-set>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -k, --keypair <keypair>              Path to the creator's keypair file
    -l, --log-level <log-level>          Log level [default: off]
    -a, --mint <mint>                    Mint account of token to transfer
    -n, --new-rule-set <new-rule-set>    New rule set pubkey
    -r, --rpc <rpc>                      RPC endpoint url to override using the Solana config or the hard-coded default
    -T, --timeout <timeout>              Timeout to override default value of 90 seconds [default: 90]

Usage

metaboss update rule-set --mint <MINT_ADDRESS> --new-rule-set <NEW_RULE_SET_PUBKEY>

E.g.:

metaboss update rule-set --mint 2KGQLgypChErw3kKPqG26uyUjVtZj8QSJg2AUNR7BWdM -n D4YHFZPWASGpvBDJSUrPtqZqxTgTm7eL5rikBY9Y5dwf

Update Rule Set All

Update the rule set of a batch of pNFTs.

USAGE:
    metaboss update rule-set-all [OPTIONS] --new-rule-set <new-rule-set>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -c, --cache-file <cache-file>        Cache file
    -k, --keypair <keypair>              Path to the creator's keypair file
    -l, --log-level <log-level>          Log level [default: off]
    -L, --mint-list <mint-list>          Path to the mint list file
    -n, --new-rule-set <new-rule-set>    New rule set pubkey
    -R, --rate-limit <rate-limit>        Maximum number of requests per second [default: 10]
        --retries <retries>              Maximum retries: retry failed items up to this many times [default: 0]
    -r, --rpc <rpc>                      RPC endpoint url to override using the Solana config or the hard-coded default
    -T, --timeout <timeout>              Timeout to override default value of 90 seconds [default: 90]

Usage

metaboss update rule-set-all -L <MINT_LIST> -n <NEW_RULE_SET_ADDRESS>

E.g.:

metaboss update rule-set-all -L rule_set_mints.json -n 1CfDY5sYBnspaXvjnN3y9WRdaoD5v3HXrZDrWhjZZTN

Update Clear Rule Set

Remove the rule set on a pNFT.

USAGE:
    metaboss update clear-rule-set [OPTIONS] --mint <mint>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -k, --keypair <keypair>        Path to the creator's keypair file
    -l, --log-level <log-level>    Log level [default: off]
    -a, --mint <mint>              Mint account of token to transfer
    -r, --rpc <rpc>                RPC endpoint url to override using the Solana config or the hard-coded default
    -T, --timeout <timeout>        Timeout to override default value of 90 seconds [default: 90]

Usage

metaboss update clear-rule-set --mint <MINT_ADDRESS>

E.g.:

metaboss update clear-rule-set --mint 2KGQLgypChErw3kKPqG26uyUjVtZj8QSJg2AUNR7BWdM

Update Clear Rule Set All

Remove the rule set of a batch of pNFTs

USAGE:
    metaboss update clear-rule-set-all [OPTIONS]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -c, --cache-file <cache-file>    Cache file
    -k, --keypair <keypair>          Path to the creator's keypair file
    -l, --log-level <log-level>      Log level [default: off]
    -L, --mint-list <mint-list>      Path to the mint list file
    -R, --rate-limit <rate-limit>    Maximum number of requests per second [default: 10]
        --retries <retries>          Maximum retries: retry failed items up to this many times [default: 0]
    -r, --rpc <rpc>                  RPC endpoint url to override using the Solana config or the hard-coded default
    -T, --timeout <timeout>          Timeout to override default value of 90 seconds [default: 90]

Usage

metaboss update clear-rule-set-all -L <MINT_LIST>

E.g.:

metaboss update rule-set-all -L rule_set_mints.json