diff --git a/docs-src/src/create.md b/docs-src/src/create.md
index 0fd8383..f2e9f56 100644
--- a/docs-src/src/create.md
+++ b/docs-src/src/create.md
@@ -44,7 +44,7 @@ Decorate an existing SPL token mint with metadata.
Specify the existing mint address and path to a metadata file that contains the `Data` sub-struct of the metadata struct in a JSON format.
-E.g.:
+E.g. (Note the snake_case field name):
// crab.json
```json
@@ -52,7 +52,7 @@ E.g.:
"name": "Crabbie",
"symbol": "CRAB",
"uri": "https://arweave.net/KZDlKw8aCG4kfZtj9Qmh8tmYpH4Q287P_jmUtkl2s-k",
- "sellerFeeBasisPoints": 0,
+ "seller_fee_basis_points": 0,
"creators": null
}
```
diff --git a/docs/create.html b/docs/create.html
index 81fbed7..21c13a6 100644
--- a/docs/create.html
+++ b/docs/create.html
@@ -192,13 +192,13 @@
Decorate an existing SPL token mint with metadata.
Specify the existing mint address and path to a metadata file that contains the Data
sub-struct of the metadata struct in a JSON format.
-E.g.:
+E.g. (Note the snake_case field name):
// crab.json
{
"name": "Crabbie",
"symbol": "CRAB",
"uri": "https://arweave.net/KZDlKw8aCG4kfZtj9Qmh8tmYpH4Q287P_jmUtkl2s-k",
- "sellerFeeBasisPoints": 0,
+ "seller_fee_basis_points": 0,
"creators": null
}
diff --git a/docs/print.html b/docs/print.html
index 247cf67..1ed4e31 100644
--- a/docs/print.html
+++ b/docs/print.html
@@ -557,13 +557,13 @@
Decorate an existing SPL token mint with metadata.
Specify the existing mint address and path to a metadata file that contains the Data
sub-struct of the metadata struct in a JSON format.
-E.g.:
+E.g. (Note the snake_case field name):
// crab.json
{
"name": "Crabbie",
"symbol": "CRAB",
"uri": "https://arweave.net/KZDlKw8aCG4kfZtj9Qmh8tmYpH4Q287P_jmUtkl2s-k",
- "sellerFeeBasisPoints": 0,
+ "seller_fee_basis_points": 0,
"creators": null
}
diff --git a/docs/searchindex.js b/docs/searchindex.js
index fd9da2f..f1401e4 100644
--- a/docs/searchindex.js
+++ b/docs/searchindex.js
@@ -1 +1 @@
-Object.assign(window.search, {"doc_urls":["overview.html#metaboss","quick_start.html#quick-start","quick_start.html#install-binary","quick_start.html#install-with-cargo","quick_start.html#see-usage-commands","installation.html#installation","installation.html#recommended-way-to-install","installation.html#binaries","installation.html#cratesio","installation.html#install-from-source","installation.html#set-up-your-solana-config","examples.html#examples","examples.html#update-the-uri-of-an-existing-nft","examples.html#mint-a-new-nft","examples.html#snapshot-candy-machine-mint-accounts","recipes.html#update-list-of-nft-metadata","global_options.html#global-options","global_options.html#options","airdrop.html#airdrop","airdrop.html#airdrop-sol","burn.html#burn","burn.html#burn-one","burn.html#burn-all","burn.html#burn-print","burn.html#burn-print-one","burn.html#burn-print-all","check.html#check","check.html#metadata-values","check.html#usage","collections.html#collections","collections.html#migrate","collections.html#running-the-commands","collections.html#output-file","collections.html#get-and-check-collection-items","collections.html#get-items","collections.html#check-items","create.html#create","create.html#fungible","create.html#metadata","decode.html#decode","decode.html#decode-mint","decode.html#decode-edition","decode.html#decode-edition-marker","decode.html#decode-master","decode.html#decode-rulset","decode.html#decode-pubkey","derive.html#derive","derive.html#derive-candy-machine-v2-creator","derive.html#derive-edition","derive.html#derive-metadata","derive.html#derive-pda","find.html#find","find.html#error","find.html#missing-editions","mint.html#mint","mint.html#mint-one","mint.html#mint-list","mint.html#mint-asset","set.html#set","set.html#set-secondary-sale","set.html#set-secondary-sale-all","set.html#set-update-authority","set.html#set-update-authority-all","set.html#set-immutable","set.html#set-immutable-all","set.html#set-token-standard","set.html#set-token-standard-all","sign.html#sign","sign.html#sign-one","sign.html#sign-all","snapshot.html#snapshot","snapshot.html#snapshot-cm-accounts","snapshot.html#snapshot-holders","snapshot.html#snapshot-mints","snapshot.html#indexed-data","snapshot.html#snapshot-indexed-mints","snapshot.html#snapshot-indexed-holders","snapshot.html#snapshot-prints","transfer.html#transfer","transfer.html#transfer-asset","transfer.html#usage","update.html#update","update.html#update-data","update.html#update-data-all","update.html#update-name","update.html#update-symbol","update.html#update-symbol-all","update.html#update-creators","update.html#update-creators-all","update.html#update-uri","update.html#update-uri-all","update.html#update-seller-fee-basis-points","update.html#update-seller-fee-basis-points-all","update.html#update-rule-set","update.html#update-rule-set-all","update.html#update-clear-rule-set","update.html#update-clear-rule-set-all","verify_unverify.html#verify","verify_unverify.html#creator","verify_unverify.html#creator-all","verify_unverify.html#unverify","verify_unverify.html#creator-1","verify_unverify.html#creator-all-1","withdraw.html#withdraw-deprecated","contact.html#contact"],"index":{"documentStore":{"docInfo":{"0":{"body":161,"breadcrumbs":2,"title":1},"1":{"body":0,"breadcrumbs":4,"title":2},"10":{"body":20,"breadcrumbs":5,"title":4},"100":{"body":60,"breadcrumbs":2,"title":1},"101":{"body":82,"breadcrumbs":2,"title":1},"102":{"body":116,"breadcrumbs":2,"title":1},"103":{"body":8,"breadcrumbs":3,"title":2},"104":{"body":9,"breadcrumbs":2,"title":1},"11":{"body":0,"breadcrumbs":2,"title":1},"12":{"body":8,"breadcrumbs":5,"title":4},"13":{"body":40,"breadcrumbs":4,"title":3},"14":{"body":21,"breadcrumbs":6,"title":5},"15":{"body":58,"breadcrumbs":5,"title":4},"16":{"body":17,"breadcrumbs":4,"title":2},"17":{"body":63,"breadcrumbs":3,"title":1},"18":{"body":49,"breadcrumbs":2,"title":1},"19":{"body":184,"breadcrumbs":3,"title":2},"2":{"body":28,"breadcrumbs":4,"title":2},"20":{"body":12,"breadcrumbs":2,"title":1},"21":{"body":18,"breadcrumbs":3,"title":2},"22":{"body":31,"breadcrumbs":2,"title":1},"23":{"body":8,"breadcrumbs":3,"title":2},"24":{"body":20,"breadcrumbs":4,"title":3},"25":{"body":45,"breadcrumbs":3,"title":2},"26":{"body":0,"breadcrumbs":2,"title":1},"27":{"body":7,"breadcrumbs":3,"title":2},"28":{"body":140,"breadcrumbs":2,"title":1},"29":{"body":0,"breadcrumbs":2,"title":1},"3":{"body":6,"breadcrumbs":4,"title":2},"30":{"body":105,"breadcrumbs":2,"title":1},"31":{"body":265,"breadcrumbs":3,"title":2},"32":{"body":38,"breadcrumbs":3,"title":2},"33":{"body":0,"breadcrumbs":4,"title":3},"34":{"body":68,"breadcrumbs":2,"title":1},"35":{"body":46,"breadcrumbs":3,"title":2},"36":{"body":0,"breadcrumbs":2,"title":1},"37":{"body":85,"breadcrumbs":2,"title":1},"38":{"body":41,"breadcrumbs":2,"title":1},"39":{"body":0,"breadcrumbs":2,"title":1},"4":{"body":21,"breadcrumbs":5,"title":3},"40":{"body":100,"breadcrumbs":3,"title":2},"41":{"body":18,"breadcrumbs":3,"title":2},"42":{"body":44,"breadcrumbs":4,"title":3},"43":{"body":18,"breadcrumbs":3,"title":2},"44":{"body":12,"breadcrumbs":3,"title":2},"45":{"body":8,"breadcrumbs":3,"title":2},"46":{"body":0,"breadcrumbs":2,"title":1},"47":{"body":14,"breadcrumbs":6,"title":5},"48":{"body":9,"breadcrumbs":3,"title":2},"49":{"body":9,"breadcrumbs":3,"title":2},"5":{"body":0,"breadcrumbs":2,"title":1},"50":{"body":13,"breadcrumbs":3,"title":2},"51":{"body":0,"breadcrumbs":2,"title":1},"52":{"body":60,"breadcrumbs":2,"title":1},"53":{"body":12,"breadcrumbs":3,"title":2},"54":{"body":23,"breadcrumbs":2,"title":1},"55":{"body":225,"breadcrumbs":3,"title":2},"56":{"body":80,"breadcrumbs":3,"title":2},"57":{"body":263,"breadcrumbs":3,"title":2},"58":{"body":22,"breadcrumbs":2,"title":1},"59":{"body":22,"breadcrumbs":4,"title":3},"6":{"body":92,"breadcrumbs":4,"title":3},"60":{"body":12,"breadcrumbs":4,"title":3},"61":{"body":21,"breadcrumbs":4,"title":3},"62":{"body":38,"breadcrumbs":4,"title":3},"63":{"body":13,"breadcrumbs":3,"title":2},"64":{"body":14,"breadcrumbs":3,"title":2},"65":{"body":84,"breadcrumbs":4,"title":3},"66":{"body":113,"breadcrumbs":4,"title":3},"67":{"body":12,"breadcrumbs":2,"title":1},"68":{"body":19,"breadcrumbs":3,"title":2},"69":{"body":103,"breadcrumbs":2,"title":1},"7":{"body":12,"breadcrumbs":2,"title":1},"70":{"body":4,"breadcrumbs":2,"title":1},"71":{"body":49,"breadcrumbs":4,"title":3},"72":{"body":130,"breadcrumbs":3,"title":2},"73":{"body":89,"breadcrumbs":3,"title":2},"74":{"body":26,"breadcrumbs":3,"title":2},"75":{"body":10,"breadcrumbs":4,"title":3},"76":{"body":10,"breadcrumbs":4,"title":3},"77":{"body":169,"breadcrumbs":3,"title":2},"78":{"body":6,"breadcrumbs":2,"title":1},"79":{"body":85,"breadcrumbs":3,"title":2},"8":{"body":3,"breadcrumbs":2,"title":1},"80":{"body":36,"breadcrumbs":2,"title":1},"81":{"body":21,"breadcrumbs":2,"title":1},"82":{"body":120,"breadcrumbs":3,"title":2},"83":{"body":167,"breadcrumbs":3,"title":2},"84":{"body":20,"breadcrumbs":3,"title":2},"85":{"body":20,"breadcrumbs":3,"title":2},"86":{"body":21,"breadcrumbs":3,"title":2},"87":{"body":46,"breadcrumbs":3,"title":2},"88":{"body":17,"breadcrumbs":3,"title":2},"89":{"body":19,"breadcrumbs":3,"title":2},"9":{"body":50,"breadcrumbs":3,"title":2},"90":{"body":28,"breadcrumbs":3,"title":2},"91":{"body":21,"breadcrumbs":6,"title":5},"92":{"body":23,"breadcrumbs":6,"title":5},"93":{"body":108,"breadcrumbs":4,"title":3},"94":{"body":137,"breadcrumbs":4,"title":3},"95":{"body":86,"breadcrumbs":5,"title":4},"96":{"body":118,"breadcrumbs":5,"title":4},"97":{"body":60,"breadcrumbs":2,"title":1},"98":{"body":82,"breadcrumbs":2,"title":1},"99":{"body":116,"breadcrumbs":2,"title":1}},"docs":{"0":{"body":"Stars Forks Crate Downloads The Solana Metaplex NFT 'Swiss Army Knife' tool. Current Commands: SUBCOMMANDS: airdrop Airdrop assets to a list of addresses burn Full Burn an asset burn-nft Full Burn a NFT burn-print Full Burn a print edition NFT check Check specific metadata values for a list of NFTs collections NFT collections commands create Create accounts decode Decode on-chain data into JSON format derive Derive PDAs for various account types find Find things help Prints this message or the help of the given subcommand(s) mint Mint new NFTs from JSON files parse-errors Parse Errors commands set Set non-Data struct values for a NFT sign Sign metadata for an unverified creator snapshot Get snapshots of various blockchain states transfer Transfer Metaplex assets unverify Unverify Creators update Update various aspects of NFTs uses NFT uses commands verify Verify Creators Each subcommand has additional commands. Run metaboss --help and metaboss --help for more information on particular commands. Suggestions and PRs welcome! Note: This is experimental software for a young ecosystem. Use at your own risk. The author is not responsible for misuse of the software or failing to test specific commands before using on production NFTs. Test on devnet or localnet before using on mainnet.","breadcrumbs":"Overview » Metaboss","id":"0","title":"Metaboss"},"1":{"body":"","breadcrumbs":"Quick Start » Quick Start","id":"1","title":"Quick Start"},"10":{"body":"If you have the Solana CLI installed (recommended) you can setup your RPC and keypair so you don't have to pass them into Metaboss: solana config set --url --keypair ","breadcrumbs":"Installation » Set Up Your Solana Config","id":"10","title":"Set Up Your Solana Config"},"100":{"body":"Unverify Creators USAGE: metaboss unverify [OPTIONS] FLAGS: -h, --help Prints help information -V, --version Prints version information OPTIONS: -l, --log-level Log level [default: off] -r, --rpc RPC endpoint url to override using the Solana config or the hard-coded default -T, --timeout Timeout to override default value of 90 seconds [default: 90] SUBCOMMANDS: creator creator-all help Prints this message or the help of the given subcommand(s)","breadcrumbs":"Verify/Unverify » Unverify","id":"100","title":"Unverify"},"101":{"body":"Unverify a creator in the metadata creators array by signing for it with its keypair. Creators can only unverify themselves. USAGE: metaboss unverify creator [OPTIONS] --mint FLAGS: -h, --help Prints help information -V, --version Prints version information OPTIONS: -k, --keypair Path to the update_authority keypair file -l, --log-level Log level [default: off] -a, --mint Mint account of token to transfer -r, --rpc RPC endpoint url to override using the Solana config or the hard-coded default -T, --timeout Timeout to override default value of 90 seconds [default: 90] Usage metaboss unverify creator --account --keypair ","breadcrumbs":"Verify/Unverify » Creator","id":"101","title":"Creator"},"102":{"body":"Unverify a creator in the metadata creators array of a list of metadata accounts, by signing for it with its keypair. Creators can only unverify themselves. USAGE: metaboss unverify creator-all [OPTIONS] FLAGS: -h, --help Prints help information -V, --version Prints version information OPTIONS: -c, --cache-file Cache file -k, --keypair Path to the update_authority keypair file -l, --log-level Log level [default: off] -L, --mint-list Mint list -R, --rate-limit Maximum number of requests per second [default: 10] --retries Maximum retries: retry failed items up to this many times [default: 0] -r, --rpc RPC endpoint url to override using the Solana config or the hard-coded default -T, --timeout Timeout to override default value of 90 seconds [default: 90] Usage metaboss unverify creator-all --mint-list --keypair ","breadcrumbs":"Verify/Unverify » Creator All","id":"102","title":"Creator All"},"103":{"body":"Use Metaplex's Sugar tool for withdrawing from candy machines instead.","breadcrumbs":"Withdraw » Withdraw (Deprecated)","id":"103","title":"Withdraw (Deprecated)"},"104":{"body":"Email: sam@vanderwaal.dev Twitter: @samvwaal Discord: @archaeopteryx#7615 Metaboss Discord Server","breadcrumbs":"Contact » Contact","id":"104","title":"Contact"},"11":{"body":"","breadcrumbs":"Examples » Examples","id":"11","title":"Examples"},"12":{"body":"metaboss update uri -k ~/.config/solana/devnet.json -a CQNKXw1rw2eWwi812Exk4cKUjKuomZ2156STGRyXd2Mp -u https://arweave.net/N36gZYJ6PEH8OE11i0MppIbPG4VXKV4iuQw1zaq3rls","breadcrumbs":"Examples » Update the URI of an existing NFT","id":"12","title":"Update the URI of an existing NFT"},"13":{"body":"Prepare a JSON file. { \"name\": \"TestNFT2\", \"symbol\": \"TNFT\", \"uri\": \"https://arweave.net/FPGAv1XnyZidnqquOdEbSY6_ES735ckcDTdaAtI7GFw\", \"seller_fee_basis_points\": 200, \"creators\": [ { \"address\": \"AVdBTNhDqYgXGaaVkqiaUJ1Yqa61hMiFFaVRtqwzs5GZ\", \"verified\": false, \"share\": 50 }, { \"address\": \"42NevAWA6A8m9prDvZRUYReQmhNC3NtSZQNFUppPJDRB\", \"verified\": false, \"share\": 50 } ]\n} Call command. In this case we do not set --receiver so we mint directly to the keypair address. metaboss mint one -k ~/.config/solana/devnet.json -d ./new_nft.json","breadcrumbs":"Examples » Mint a new NFT","id":"13","title":"Mint a new NFT"},"14":{"body":"We call the command with no output specified so it creates the file in the current directory. metaboss snapshot mints -c BHZWQEtGRMs7voC7vDyVQCXawB1P6UvxG899ATGwxmaR The file BHZWQEtGRMs7voC7vDyVQCXawB1P6UvxG899ATGwxmaR_mint_accounts.json is created with the contents: [ \"D5ycm2mgBWDR37QVkvM389x84V4ux48bSeHLeiHPtX28\", \"4kYdMRRYtXjmkusgKEBntSXLDhqkHNE57GF3RPdtx6MW\", \"J8xuCFCeBRESoXewtMwrrpVUGikUG3B1WznNdLffyymz\", \"4gRtRjrbD7g5ZKUvSVA1tYMK9LZqz6uWuSc3rKeinySh\"\n]","breadcrumbs":"Examples » Snapshot Candy Machine Mint Accounts","id":"14","title":"Snapshot Candy Machine Mint Accounts"},"15":{"body":"Get your NFT mint list using metaboss snapshot or another tool. Decode all the metadata into files using metaboss decode mint -L --full -o . Update the specific data you want changed in each file in the . Update the NFTs with metaboss update data-all -d . Note : many fields have specific update -all commands which are easier to use as they don't require updating a bunch of metadata files manually. Check the update and set sections first to see if they have what you need.","breadcrumbs":"Recipes » Update List of NFT Metadata","id":"15","title":"Update List of NFT Metadata"},"16":{"body":"These are the options that apply to all subcommands and can be passed in at any level. metaboss metaboss metaboss ","breadcrumbs":"Global Options » Global Options","id":"16","title":"Global Options"},"17":{"body":"-r, --rpc The RPC endpoint to use for commands. Metaboss will try to read your Solana config settings for both the RPC endpoint and also the Commitment setting by reading from $HOME/.config/solana/cli/config.yml. If it can't find a config file it defaults to using https://dev.genesysgo.net and confirmed. Running Metaboss with the --rpc option will override the above with whatever RPC endpoint the user provides. -T, --timeout The timeout in seconds to use for RPC calls. This defaults to 90 seconds which should be fine for most cases but can be overridden if needed. Example: metaboss snapshot holders -r https://ssc-dao.genesysgo.net/ -T 120 -u DC2mkgwhy56w3viNtHDjJQmc7SGu2QX785bS4aexojwX","breadcrumbs":"Global Options » Options","id":"17","title":"Options"},"18":{"body":"This is an experimental feature that uses the TPU client to rapidly and efficiently make transfers. It relies on the Jib library for transmitting instructiosn via TPU. You should carefully test it on devnet prior to running it on mainnet. The benefit of using the TPU client is that is can rapidly transmit the transactions directly to the consensus leader and the command does not require a high-throughput private RPC node and can use the public ones by default as the RPC node is only used for determining the current leader.","breadcrumbs":"Airdrop » Airdrop","id":"18","title":"Airdrop"},"19":{"body":"Airdrop SOL to a list of accounts. Airdrop SOL USAGE: metaboss airdrop sol [OPTIONS] FLAGS: -h, --help Prints help information -V, --version Prints version information OPTIONS: -c, --cache-file Cache file -k, --keypair Path to the owner keypair file -l, --log-level Log level [default: off] -n, --network Network cluster to use, defaults to devnet [default: devnet] -L, --recipient-list Path to the mint list file -r, --rpc RPC endpoint url to override using the Solana config or the hard-coded default -T, --timeout Timeout to override default value of 90 seconds [default: 90] This command requires a recipient list file that should be a hashmap/dictionary/object of addresses and the amount of lamports to send to them. (1 SOL = 1,000,000,000 lamports) E.g.: { \"HVtodaLcq6zVvqp7h6JwLLrsAGxeJ9BatvgpUfp9b4oM\": 1000, \"5VXU4QbhUZbkBqKxT3Mv55krE4MomMgtV68whNRotjk5\": 1000, \"GSFKDFeCe93aUscmG84ugtXXNPMGoMcbZwRaamPLXS9o\": 5000, \"DCYHBcWGgdUUCBbj7rjbkBJWkuoHAH88BzMKfbbkFUNJ\": 7000, \"8MUCm4HxRXQUKMyanyNcvcG4qbAmw5s6y9exiszFZgg\": 5000, \"sknqbvGgVFpniWRK9kM1e77Fuq5oEhSZ5He4PtbTeZh\": 3000 } Usage metaboss airdrop sol -L -n devnet This command creates two files: mb-cache-airdrop-.json and mb-successful-airdrops-.json. The cache file is used to track the airdrop progress by storing failed transactions and the successful airdrops file is used to track the successful airdrops by storing transaction signatures of the successful airdrops. To re-run failed transactions run the command with the cache file instead of the recipient list file: metaboss airdrop sol -c -n devnet If transactions continuously fail you should look at the errors in the cache file and determine the cause.","breadcrumbs":"Airdrop » Airdrop SOL","id":"19","title":"Airdrop SOL"},"2":{"body":"Copy the following to a terminal: bash <(curl -sSf https://raw.githubusercontent.com/samuelvanderwaal/metaboss/main/scripts/install.sh) If you get errors you may need dependencies: Ubuntu: sudo apt install libssl-dev libudev-dev pkg-config MacOS may need openssl: brew install openssl@3 Or get the binary yourself: binary .","breadcrumbs":"Quick Start » Install Binary","id":"2","title":"Install Binary"},"20":{"body":"Burn Master Editions NFTs, as long as they do not have any editions (supply == 0). Only the owner/token holder of the NFT can burn it.","breadcrumbs":"Burn » Burn","id":"20","title":"Burn"},"21":{"body":"Fully burn a single NFT by calling the Token Metadata program burn_nft handler. Usage metaboss burn one -k --account ","breadcrumbs":"Burn » Burn One","id":"21","title":"Burn One"},"22":{"body":"Fully burn multiple NFTs by providing a JSON list file of mint accounts. E.g. JSON file: [ \"D5ycm2mgBWDR37QVkvM389x84V4ux48bSeHLeiHPtX28\", \"4kYdMRRYtXjmkusgKEBntSXLDhqkHNE57GF3RPdtx6MW\", \"J8xuCFCeBRESoXewtMwrrpVUGikUG3B1WznNdLffyymz\", \"4gRtRjrbD7g5ZKUvSVA1tYMK9LZqz6uWuSc3rKeinySh\"\n] Usage metaboss burn all -k -L As in all other commands, keypair can be elided if set in the Solana config file.","breadcrumbs":"Burn » Burn All","id":"22","title":"Burn All"},"23":{"body":"Burn Print Edition NFTs. Only the owner/token holder of the NFT can burn it.","breadcrumbs":"Burn » Burn-Print","id":"23","title":"Burn-Print"},"24":{"body":"Fully burn a single Print Edition NFT by called the Token Metadata burn_edition_nft handler. Usage metaboss burn-print one -k --account ","breadcrumbs":"Burn » Burn-Print One","id":"24","title":"Burn-Print One"},"25":{"body":"Fully burn multiple Print Edition NFTs by providing a JSON list file of mint accounts. E.g. JSON file: [ \"D5ycm2mgBWDR37QVkvM389x84V4ux48bSeHLeiHPtX28\", \"4kYdMRRYtXjmkusgKEBntSXLDhqkHNE57GF3RPdtx6MW\", \"J8xuCFCeBRESoXewtMwrrpVUGikUG3B1WznNdLffyymz\", \"4gRtRjrbD7g5ZKUvSVA1tYMK9LZqz6uWuSc3rKeinySh\"\n] Due to on-chain limitations, you also have to provide the mint account of the Master Edition NFT. Usage metaboss burn-print all -k -L -m As in all other commands, keypair can be elided if set in the Solana config file.","breadcrumbs":"Burn » Burn-Print All","id":"25","title":"Burn-Print All"},"26":{"body":"","breadcrumbs":"Check » Check","id":"26","title":"Check"},"27":{"body":"Check for a specific metadata value in downloaded metadata files.","breadcrumbs":"Check » Metadata Values","id":"27","title":"Metadata Values"},"28":{"body":"Run metaboss decode mint -L -o --full to decode all the metadata files in the mint_list_json file and save them to the output_dir directory. Then run metaboss check metadata-value -d METADATA_VALUE=VALUE where the files_dir is the location of the metadata files downloaded in the previous command and METADATA_VALUE is one of the following values: name symbol uri sfbp creators update_authority primary_sale_happened is_mutable token_standard collection_parent collection_verified rule_set and VALUE is the specific value of the field you wish to check for in the metadata files. E.g., to see if all the metadata files in the output_dir directory have a specific update_authority value: metaboss check metadata-value -d my_collection_files/ update_authority=\"PanbgtcTiZ2PveV96t2FHSffiLHXXjMuhvoabUUKKm8\" The command will print a list of files that do not have the specified value as well as create a files with the list of mints. The mint file will have the name format: \"mb_check_mints_.json\" and will be created in the directory where the command is run. In the above example the mint file will be \"mb_check_mints_update_authority.json\" and will contain all the mints that do not have the specified update authority. This will allow you to easily rerun an update or set command to fix metadata values that weren't set properly. The \"name\" field will check that the name on the metadata contains the name you specify so you can check for partial matches. E.g. if your collection's name format is \"MyCollection #xx\" you can set the name to be \"MyCollection\" and it will match all the metadata files that have the name \"MyCollection\" in their name.","breadcrumbs":"Check » Usage","id":"28","title":"Usage"},"29":{"body":"","breadcrumbs":"Collections » Collections","id":"29","title":"Collections"},"3":{"body":"So you're a Rust dev. . . cargo install metaboss","breadcrumbs":"Quick Start » Install With Cargo","id":"3","title":"Install With Cargo"},"30":{"body":"Migrate a collection of NFTs or pNFTs to be part of a single on-chain Metaplex Certified Collection (MCC). Create your Collection Parent NFT using a minting tool such as Sol Tools . Alternately, use metaboss mint one or metaboss mint asset. This NFT will have your collection name, cover art, description, traits etc. It's the parent NFT for you collection and all items in your collection will point to this mint account. Get your mint list. If your collection is a single candy machine you can use the --candy-machine-id option, otherwise provide the path to your mint list formatted as a JSON file with the --mint-list option. Example contents of the mint list file: [ \"D5ycm2mgBWDR37QVkvM389x84V4ux48bSeHLeiHPtX28\", \"4kYdMRRYtXjmkusgKEBntSXLDhqkHNE57GF3RPdtx6MW\", \"J8xuCFCeBRESoXewtMwrrpVUGikUG3B1WznNdLffyymz\", \"4gRtRjrbD7g5ZKUvSVA1tYMK9LZqz6uWuSc3rKeinySh\"\n] Your Collection Parent NFT must have the same update authority as the items you will put in the collection. If you don't want to connect your update authority keypair to a website, you can mint with a different keypair and then change the update authority with Metaboss, or mint with Metaboss's mint one command.","breadcrumbs":"Collections » Migrate","id":"30","title":"Migrate"},"31":{"body":"Single Candy Machine Collection Let's say you've created a parent NFT for your collection with a mint address of 9wtpdjMysSphxipTSJi7pYWGzSZFm2PRFtQucJiiXUzq and you have a candy machine id of 8yuhovH7fb63ed7Q3rcxL3kYZDhps4qspjaxx1N8WSni and your update authority is in the file my_keypair.json in the same directory you are running the command. Your Metaboss command would be: metaboss collections migrate -k my_keypair.json -c 8yuhovH7fb63ed7Q3rcxL3kYZDhps4qspjaxx1N8WSni --mint-address 9wtpdjMysSphxipTSJi7pYWGzSZFm2PRFtQucJiiXUzq Using a Mint List File Assume the same scenario above but with a mint list file named \"my_mint_list.json\" in the same directory you are running the command. Your Metaboss command would be: metaboss collections migrate -k my_keypair.json -L my_mint_list.json --mint-address 9wtpdjMysSphxipTSJi7pYWGzSZFm2PRFtQucJiiXUzq This assumes you have your RPC set in your Solana config , otherwise it can be passed in with the -r option. As with all Metaboss commands, if you've set your keypair in your Solana config, you can omit the -k option. I recommend setting both in the Solana config to simplify commands: solana config set --url --keypair Retry Flow and Cache File The migrate command rapidly fires off a lot of network requests to try to migrate over your collection as quickly as possible. If some of them fail, it keeps track of them and will automatically retry them based on the maximum number of retries you specify with the --retries option. (Defaults to one retry.) retry flow If it hits the maximum number of retries with errors remaining, it will write them to the cache file (metaboss-cache-migrate-collections.json). To retry from a cache file, you can use the --cache-file option. metaboss collections migrate -k my_keypair.json --cache-file metaboss-cache-migrate-collections.json --mint-address 9wtpdjMysSphxipTSJi7pYWGzSZFm2PRFtQucJiiXUzq This will read the items from the cache file and retry them. When retrying, if you consistently end up with the same number being retried each time it probably indicates those items cannot be migrated for some reason. Check the errors on the items that failed to migrate. Example cache file: { \"FqKGC9CCVThn857VAyZtZQq5L31njnbeUTe1JoCsCX8J\": { \"error\": \"Migration failed with error: RPC response error -32002: Transaction simulation failed: Error processing Instruction 0: custom program error: 0x39 [5 log messages]\" }, \"H7xrCZwA7oqsFeRcPsP6EEYHCxqq7atUBuuQAursXvWF\": { \"error\": \"Migration failed with error: RPC response error -32002: Transaction simulation failed: Error processing Instruction 0: custom program error: 0x39 [5 log messages]\" }\n} In this case our error is : 0x39: Token Metadata | IncorrectOwner: Incorrect account owner which means these items cannot be migrated over as all items in the collection must have the same update authority as the Parent NFT.","breadcrumbs":"Collections » Running the Commands","id":"31","title":"Running the Commands"},"32":{"body":"Use --output-file or -o to specify the path and name of the JSON file to write the cache results to. e.g.: metaboss collections migrate -L devnet_test_mints.json -m 9wtpdjMysSphxipTSJi7pYWGzSZFm2PRFtQucJiiXUzq -o ~/Desktop/my-cache3.json This will override both the default cache file name ('mb-cache-migrate.json') and the cache file name passed in with --cache-file.","breadcrumbs":"Collections » Output File","id":"32","title":"Output File"},"33":{"body":"","breadcrumbs":"Collections » Get and Check Collection Items","id":"33","title":"Get and Check Collection Items"},"34":{"body":"Metaboss now has experimental support for getting all collection items from a given mint using off-chain, indexed data from https://theindex.io/. Other indexers or methods may be supported later. To use this feature, you need to sign up for a free account with TheIndex to get an API key. metaboss collections get-items --collection-mint --api-key where --collection_mint is the mint account of the parent collection NFT and --api-key is your API Key from theindex.io. There's an additional command --method which can be used to support other indexers in the future but defaults to theindex.io for now so can be elided. This command creates a JSON file named _collection_items.json in the directory it is run in.","breadcrumbs":"Collections » Get-Items","id":"34","title":"Get-Items"},"35":{"body":"Given a list of mint addresses and a collection mint address, this command checks all the items in the list to see if they belong to the specified collection. metaboss collections check-items --collection-mint -L This command has a --debug flag, which creates a JSON file when set with a mapping of all collection NFTs found associated with the list of addresses and which ones belong to each. Report bugs and questions to the Metaboss Discord .","breadcrumbs":"Collections » Check-Items","id":"35","title":"Check-Items"},"36":{"body":"","breadcrumbs":"Create » Create","id":"36","title":"Create"},"37":{"body":"Create a new SPL token mint and corresponding metadata account. Usage Specify the token decimals and path to a metadata file that contains the name, symbol and uri fields in a JSON format. metaboss create fungible -d -m E.g.: // crab.json { \"name\": \"Crabbie\", \"symbol\": \"CRAB\", \"uri\": \"https://arweave.net/KZDlKw8aCG4kfZtj9Qmh8tmYpH4Q287P_jmUtkl2s-k\"\n} metaboss create fungible -d 6 -m crab.json Use the --initial-suply option to mint the specified amount directly to your keypair upon token creation. The amount is specified is the UI amount as a float. E.g. --initial-supply 10.123 with three decimals will mint 10123 base unit tokens to your keypair. ```bash\nmetaboss create fungible -d 3 -m crab.json --initial-supply 10.1","breadcrumbs":"Create » Fungible","id":"37","title":"Fungible"},"38":{"body":"Decorate an existing SPL token mint with metadata. Usage Specify the existing mint address and path to a metadata file that contains the Data sub-struct of the metadata struct in a JSON format. E.g.: // crab.json { \"name\": \"Crabbie\", \"symbol\": \"CRAB\", \"uri\": \"https://arweave.net/KZDlKw8aCG4kfZtj9Qmh8tmYpH4Q287P_jmUtkl2s-k\", \"sellerFeeBasisPoints\": 0, \"creators\": null\n} metaboss create metadata -a -m ","breadcrumbs":"Create » Metadata","id":"38","title":"Metadata"},"39":{"body":"","breadcrumbs":"Decode » Decode","id":"39","title":"Decode"},"4":{"body":"metaboss -h Decode a mint account's metadata: metaboss decode mint -a 23gaZq8578xHozMWADsmZ2hAFqZ15iyHmQtRw14meds2 Get a snapshot of mint accounts by first verified creator: metaboss snapshot mint -c PanbgtcTiZ2PveV96t2FHSffiLHXXjMuhvoabUUKKm8","breadcrumbs":"Quick Start » See Usage Commands","id":"4","title":"See Usage Commands"},"40":{"body":"Decodes a mint account's metadata into a JSON file. It accepts either a single account or a list of accounts. Usage metaboss decode mint --account -o The command will write the metadata JSON file to the output directory with the mint account as the name: e.g. CQNKXw1rw2eWwi812Exk4cKUjKuomZ2156STGRyXd2Mp.json. The output option defaults to the current directory. metaboss decode mint --list-file -o The JSON list file should be an array of mint accounts to be decoded: [\"xSy...\", \"Cnb...\" ...] The command will write each metadata JSON file to the output directory as a separate file with the mint account as the name: e.g. CQNKXw1rw2eWwi812Exk4cKUjKuomZ2156STGRyXd2Mp.json. The output option defaults to the current directory. As of v0.4.0, the default output will only be the Data struct matching the input format of the update data and update data-all commands. To get the full Metadata struct, use the --full option. Use --raw to get the account data as raw bytes for debugging purposes.","breadcrumbs":"Decode » Decode Mint","id":"40","title":"Decode Mint"},"41":{"body":"Decodes a single Print Edition account from a mint account into a JSON file. This is a Print Edition PDA. Usage metaboss decode edition --account ","breadcrumbs":"Decode » Decode Edition","id":"41","title":"Decode Edition"},"42":{"body":"Decodes a single Edition Marker PDA account from a mint account into a JSON file. This takes the Master Edition NFT mint account and either the edition number or the desired edition marker number, zero-indexed. Usage In this example, it will decode the 2nd Edition Marker PDA which corresponds to Edition numbers 248-495. metaboss decode edition-marker --account -m 1","breadcrumbs":"Decode » Decode Edition Marker","id":"42","title":"Decode Edition Marker"},"43":{"body":"Decodes a single Master Edition account from a mint account into a JSON file. This is a Master Edition PDA. Usage metaboss decode master --account ","breadcrumbs":"Decode » Decode Master","id":"43","title":"Decode Master"},"44":{"body":"Decode a programmable NFT rule set from a pubkey. Usage metaboss decode rule-set AdH2Utn6Fus15ZhtenW4hZBQnvtLgM1YCW2MfVp7pYS5","breadcrumbs":"Decode » Decode Rulset","id":"44","title":"Decode Rulset"},"45":{"body":"Decode a pubkey from a u8 array. Usage metaboss decode pubkey \"[198,63,89,223,232,36,128,201,194,84,163,124,239,91,140,18,189,137,137,47,53,111,44,226,53,45,91,202,241,224,183,205]\"","breadcrumbs":"Decode » Decode Pubkey","id":"45","title":"Decode Pubkey"},"46":{"body":"","breadcrumbs":"Derive » Derive","id":"46","title":"Derive"},"47":{"body":"Derive the candy machine creator PDA from the candy machine id. Usage metaboss derive cmv2-creator ","breadcrumbs":"Derive » Derive Candy Machine V2 Creator","id":"47","title":"Derive Candy Machine V2 Creator"},"48":{"body":"Derive the edition PDA from the mint account. metaboss derive edition ","breadcrumbs":"Derive » Derive Edition","id":"48","title":"Derive Edition"},"49":{"body":"Derive the metadata PDA from the mint account. metaboss derive metadata ","breadcrumbs":"Derive » Derive Metadata","id":"49","title":"Derive Metadata"},"5":{"body":"","breadcrumbs":"Installation » Installation","id":"5","title":"Installation"},"50":{"body":"Derive a generic PDA from a list of seeds and a program id. Usage metaboss derive pda ,, ","breadcrumbs":"Derive » Derive PDA","id":"50","title":"Derive PDA"},"51":{"body":"","breadcrumbs":"Find » Find","id":"51","title":"Find"},"52":{"body":"Look up Metaplex program error codes by hex or decimal values. E.g.: metaboss find error 0x1770 or metaboss find error 6000 returns: Auction House | PublicKeyMismatch: PublicKeyMismatch\nAuctioneer | BumpSeedNotInHashMap: Bump seed not in hash map\nCandy Machine | IncorrectOwner: Account does not have correct owner! Currently supported programs: Token Metadata Auction House Auctioneer Candy Machine It also decodes Anchor specific errors. metaboss find 3000 Anchor Program | AccountDiscriminatorAlreadySet: The account discriminator was already set on this account","breadcrumbs":"Find » Error","id":"52","title":"Error"},"53":{"body":"Find any edition numbers in the sequence that have not been minted. See [editions][https://metaboss.rs/mint.html#editions] for more details on how to interact with editions with Metaboss.","breadcrumbs":"Find » Missing Editions","id":"53","title":"Missing Editions"},"54":{"body":"Mint new NFTs from JSON files. For both subcommands the --immutable flag sets the NFT data to be immutable and the --primary-sale-happened flag sets the primary sale happened bool to true.","breadcrumbs":"Mint » Mint","id":"54","title":"Mint"},"55":{"body":"Mint a single NFT from a JSON file. Usage metaboss mint one --keypair --nft-data-file --receiver metaboss mint one --keypair --external-metadata-uri --receiver --immutable --primary-sale-happened The JSON files should contain all the necessary data required to create an NFT's metadata fields. Creator verified fields must be false unless the creator is also the keypair. Example JSON file: { \"name\": \"TestNFT1\", \"symbol\": \"TNFT\", \"uri\": \"https://arweave.net/FPGAv1XnyZidnqquOdEbSY6_ES735ckcDTdaAtI7GFw\", \"seller_fee_basis_points\": 100, \"creators\": [ { \"address\": \"PanbgtcTiZ2PveV96t2FHSffiLHXXjMuhvoabUUKKm8\", \"verified\": false, \"share\": 100 } ]\n} The --external-metadata-uri option takes a URI to an external metadata file such as an Arweave link pointing to a JSON file. If receiver is set, the NFT will be minted directly to the receiver's address, otherwise it is minted to keypair. Observant users may note that with a simple bash script this allows airdrops to be deployed with Metaboss. Use the --sign option to sign the metadata with the keypair immediately after minting. Editions To mint a NFT with the ability to print editions from it use the --max-editions option. This defaults to 0 meaning no editions are allowed. Setting it to a positive integer means you can print up to that many editions. Setting to a value of -1 means unlimited editions. Because of how the CLI interprets the - symbol to set max editions to infinite you should use the = sign for the --max-editions option: metaboss mint one -a --max-editions='-1'. To mint editions from a master NFT use themetaboss mint editions command to either mint the next n editions sequentially using --next-editions or mint specific edition numbers using --specific-editions with a list of integer edition numbers to mint. To find any edition numbers in the sequence that have not been minted use metaboss find missing-editions. To find and mint any missing editions and mint them to the authority keypair use metaboss mint missing-editions. To find the full list of options for each command use -h or --help as normal.","breadcrumbs":"Mint » Mint One","id":"55","title":"Mint One"},"56":{"body":"Mint multiple NFTs from a list of JSON files. Usage metaboss mint list --keypair --nft-data-dir --receiver This command functions the same as mint one except instead of a single JSON file, provide a path to a directory with multiple JSON files, one for each NFT to be minted. metaboss mint list --keypair --external-metadata-uris --receiver --immutable --primary-sale-happened To mint from URIs provide the path to a JSON file containing a list of URIs. By default, new NFTs are minted as mutable, to make them immutable use the --immutable option. Use the --sign option to sign the metadata with the keypair immediately after minting.","breadcrumbs":"Mint » Mint List","id":"56","title":"Mint List"},"57":{"body":"Mint various types of Metaplex assets, including pNFTs. USAGE: metaboss mint asset [OPTIONS] --asset-data FLAGS: -h, --help Prints help information -V, --version Prints version information OPTIONS: --amount Amount of tokens to mint, for NonFungible types this must be 1 [default: 1] -d, --asset-data Asset data --decimals Mint decimals for fungible tokens -k, --keypair Path to the update_authority keypair file -l, --log-level Log level [default: off] -s, --max-print-edition-supply Max supply of print editions. Only applies to NonFungible types. 0 for no prints, n for n prints, 'unlimited' for unlimited prints -R, --receiver Receiving address, if different from update authority -r, --rpc RPC endpoint url to override using the Solana config or the hard-coded default -T, --timeout Timeout to override default value of 90 seconds [default: 90] Usage You need an asset json file of this format: { \"name\": \"Studious Crab #1\", \"symbol\": \"CRAB\", \"uri\": \"https://arweave.net/uVtABL4PYv0wVke3LL4DLMkqkSMcQl1qswRZNkJ0a0g\", \"seller_fee_basis_points\": 100, \"creators\": [ { \"address\": \"ccc9XfyEMh9sU6DRkUmqQGJqgdKb6QyUaaT5h5BGYw4\", \"verified\": true, \"share\": 100 } ], \"primary_sale_happened\": false, \"is_mutable\": true, \"token_standard\": \"ProgrammableNonFungible\", \"collection\": null, \"uses\": null, \"collection_details\": null, \"rule_set\": null } Substitute appropriate values for each field. The creator can only be set as verified if it is the same keypair as the one used to mint the asset, otherwise leave it as false. metaboss mint asset -d -k -R -s E.g.: metaboss mint asset -d crab.json -k ccc9XfyEMh9sU6DRkUmqQGJqgdKb6QyUaaT5h5BGYw4.json -R PanbgtcTiZ2PveV96t2FHSffiLHXXjMuhvoabUUKKm8 -s 0 Leave off the --receiver option to mint to your keypair. Print Supply All non-fungible type assets: currently NonFungible and ProgrammableNonFungible, require the print-supply option to be specified to set the maximum number of print editions that can be minted from the asset. For most PFP, 1/1, style NFTs, this should be set to 0 to prevent any editions being minted. Other options are: n for a limited number of n editions (e.g. 10), or unlimited to allow unlimited editions to be minted. Fungible types such as Fungible and FungibleAsset should leave this value off as it has no meaning for them and the mint asset command will fail if that is specified for a fungible type.","breadcrumbs":"Mint » Mint Asset","id":"57","title":"Mint Asset"},"58":{"body":"Warning: These commands modify your NFT and are for advanced users. Use with caution. Set commands are either irreversible or require a new update authority to reverse. Set non-Data struct values for a NFT.","breadcrumbs":"Set » Set","id":"58","title":"Set"},"59":{"body":"Set primary_sale_happened to be true, enabling secondary sale royalties. This is not reversible. metaboss set secondary-sale --keypair --account Outputs a TxId to the command line so you can check the result.","breadcrumbs":"Set » Set Secondary Sale","id":"59","title":"Set Secondary Sale"},"6":{"body":"The recommended way to install is to use the install script to install on MacOs , Ubuntu , or other Unix-like OS , by copying the following into a terminal: bash <(curl -sSf https://raw.githubusercontent.com/samuelvanderwaal/metaboss/main/scripts/install.sh) This will download the appropriate binary for your system and install it. Feel free to inspect the install script directly at the link to see what you are running before you run the command. For Windows , either use the prebuilt binary in the following section, or install Windows Subsystem Linux (WSL) to use the Ubuntu terminal to run the above installation script. To install WSL on Windows, either run wsl --install -d ubuntu in the cmd prompt terminal, or install \"Ubuntu\" from the Windows app store. Once you have that set up you can simply run the install script in the WSL terminal. You will then run all your Metaboss commands from WSL as well. The Metaboss Discord has a step-by-step guide for installing on Windows in the #windows-install channel.","breadcrumbs":"Installation » Recommended Way to Install","id":"6","title":"Recommended Way to Install"},"60":{"body":"Same as set secondary-sale but takes a mint list instead of a single account file. This is not reversible.","breadcrumbs":"Set » Set Secondary Sale All","id":"60","title":"Set Secondary Sale All"},"61":{"body":"Set update_authority to a different public key. This is not reversible by the original update authority. metaboss set update-authority --keypair --account --new-update-authority ","breadcrumbs":"Set » Set Update-Authority","id":"61","title":"Set Update-Authority"},"62":{"body":"Set update_authority to a different public key for a list of NFTs. This is not reversible by the original update authority. metaboss set update-authority-all --keypair --mint-accounts-file --new-update-authority The mint accounts file should be a JSON file with an array of NFT mint accounts to be updated: [ \"C2eGm8iQPnKVWxakyo8QhwJUvYrZHKF52DPQuAejpTWG\", \"8GcRqxy4VAocTcAkoxCXkPCEmM36HMtjBc8ZarWhAD6o\", \"CK2npuck3WTRNFXSdZv8YjudJJEa69EVGd6GFfeSzfGP\"\n]","breadcrumbs":"Set » Set Update-Authority-All","id":"62","title":"Set Update-Authority-All"},"63":{"body":"Set an NFT's Data struct to be immutable. This is not reversible. metaboss set immutable --keypair --account ","breadcrumbs":"Set » Set Immutable","id":"63","title":"Set Immutable"},"64":{"body":"Set all NFTs in a list to be immutable. This is not reversible. metaboss set immutable-all --keypair --mint-accounts-file ","breadcrumbs":"Set » Set Immutable-All","id":"64","title":"Set Immutable-All"},"65":{"body":"Set an asset's Token Standard to automatically be the correct type. This is not reversible. USAGE: metaboss set token-standard [OPTIONS] --account FLAGS: -h, --help Prints help information -V, --version Prints version information OPTIONS: -a, --account Mint account of corresponding metadata to update -k, --keypair Path to the update authority's keypair file -l, --log-level Log level [default: off] -r, --rpc RPC endpoint url to override using the Solana config or the hard-coded default -T, --timeout Timeout to override default value of 90 seconds [default: 90] Usage metaboss set token-standard --keypair --account ","breadcrumbs":"Set » Set Token Standard","id":"65","title":"Set Token Standard"},"66":{"body":"Set all assets in a list to be the correct Token Standard. This is not reversible. USAGE: metaboss set token-standard-all [OPTIONS] FLAGS: -h, --help Prints help information -V, --version Prints version information OPTIONS: -c, --cache-file Cache file -k, --keypair Path to the update authority's keypair file -l, --log-level Log level [default: off] -L, --mint-list Mint list -R, --rate-limit Maximum number of requests per second [default: 10] --retries Maximum retries: retry failed items up to this many times [default: 0] -r, --rpc RPC endpoint url to override using the Solana config or the hard-coded default -T, --timeout Timeout to override default value of 90 seconds [default: 90] Usage metaboss set token-standard-all --keypair --mint-list ","breadcrumbs":"Set » Set Token Standard-All","id":"66","title":"Set Token Standard-All"},"67":{"body":"Warning: These commands modify your NFT and are for advanced users. Use with caution. Sign metadata for an unverified creator.","breadcrumbs":"Sign » Sign","id":"67","title":"Sign"},"68":{"body":"Sign the metadata for a single mint account. Usage metaboss sign one --keypair --account Outputs a TxId to the command line so you can check the result.","breadcrumbs":"Sign » Sign One","id":"68","title":"Sign One"},"69":{"body":"Sign all metadata from a JSON list or for a given first verified creator. First verified creator can be the candy machine creator id or whatever the first verified creator in the creators array is for your NFTs. Usage metaboss sign all --keypair --creator For candy machine v2, you can add the --v2 option when using it with the candy machine id. Candy machine v2 has a separate creator id from the candy machine account id. metaboss sign all --keypair --creator --v2 or you can use the candy machine creator id which will be the first creator in the creators array. metaboss sign all --keypair --creator With a mint accounts JSON list: metaboss sign all --keypair --mint-accounts-file For the latter usage, the mint accounts file should be a JSON file with a list of mint accounts to be signed: [ \"C2eGm8iQPnKVWxakyo8QhwJUvYrZHKF52DPQuAejpTWG\", \"8GcRqxy4VAocTcAkoxCXkPCEmM36HMtjBc8ZarWhAD6o\", \"CK2npuck3WTRNFXSdZv8YjudJJEa69EVGd6GFfeSzfGP\"\n] Outputs a TxId to the command line so you can check the result.","breadcrumbs":"Sign » Sign All","id":"69","title":"Sign All"},"7":{"body":"Linux, MacOS and Windows binaries available in releases , thanks to CI work done by Kartik Soneji .","breadcrumbs":"Installation » Binaries","id":"7","title":"Binaries"},"70":{"body":"Get snapshots of various blockchain states.","breadcrumbs":"Snapshot » Snapshot","id":"70","title":"Snapshot"},"71":{"body":"Snapshot all candy machine config and state accounts for a given update_authority. Usage metaboss snapshot cm-accounts --update-authority --output Creates a JSON file in the output directory with the name format of _accounts.json, consisting of an object with the fields config_accounts and candy_machine_accounts: { \"config_accounts\": [ { \"address\": \"2XBqwwTLf24ACPR3BDSEKCB95PZiAwYySeX1LyN3FKDL\", \"data_len\": 1456 }, { \"address\": \"9tNkktGZhLiWHkc4JhoTYvMLXEVA8qauSVeFwyiRPCsT\", \"data_len\": 1216 } ], \"candy_machine_accounts\": [ { \"address\": \"DwoPaGFxJpGRq3kZQBNfBroCGaS9Hdg2rpFHJpD2iBhW\", \"data_len\": 529 }, { \"address\": \"CpFAvcReAkmxWiL7jwDjBKD9jX1Bi1Lky4bHwMkgCuxc\", \"data_len\": 529 } ]\n}","breadcrumbs":"Snapshot » Snapshot CM-Accounts","id":"71","title":"Snapshot CM-Accounts"},"72":{"body":"Snapshot all current holders of NFTs filtered by verified candy_machine_id/first creator or update_authority. Note: Update authority can be faked so use that option with caution. Usage metaboss snapshot holders --creator -p --output Use the position to indicate which creator in the creators array to filter by; defaults to the first one (position 0). or metaboss snapshot holders --update-authority --output For candy machine v2, you can add the --v2 option when using it with candy machine id. Candy machine v2 has a separate creator id from the candy machine account id. metaboss snapshot holders --creator --v2 --output where is the candy machine id retrieved from the cache file. Creates a JSON file in the output directory with the name format of _holders.json consisting of an array of objects with the following fields: owner wallet -- the holder of the token associated token account -- the token account the NFT is stored at mint account -- the token mint account for the NFT metadata account -- the metadata account decorating the mint account that defines the NFT Example file: [ { \"owner_wallet\": \"42NevAWA6A8m9prDvZRUYReQmhNC3NtSZQNFUppPJDRB\", \"associated_token_address\": \"7yGA66LYDU7uoPW2x9jrUKaDWTs9jqZ5cSNKR1VaLQdw\", \"mint_account\": \"C2eGm8iQPnKVWxakyo8QhwJUvYrZHKF52DPQuAejpTWG\", \"metadata_account\": \"8WTA3sLxwRNDKHxZFbn2CFo3FX1ZP59EqrvuDPLbmmWV\" }\n]","breadcrumbs":"Snapshot » Snapshot Holders","id":"72","title":"Snapshot Holders"},"73":{"body":"Snapshot all mint accounts for a given verified candy machine id/first creator or update authority Usage metaboss snapshot mints --creator --output Use the position to indicate which creator in the creators array to filter by; defaults to the first one (position 0). or metaboss snapshot mints --update-authority --output For candy machine v2, you can add the --v2 option when using it with candy machine id. Candy machine v2 has a separate creator id from the candy machine account id. metaboss snapshot mints --creator --v2 --output where is the candy machine id retrieved from the cache file. Creates a JSON file in the output directory with the name format of _mint_accounts.json consisting of an array of mint accounts. [ \"CQNKXw1rw2eWwi812Exk4cKUjKuomZ2156STGRyXd2Mp\", \"5pgGJ5npeMxBzTiQctDgoofEVGSwZMYm3QMz4F4NDShz\", \"8GcRqxy4VAocTcAkoxCXkPCEmM36HMtjBc8ZarWhAD6o\"\n]","breadcrumbs":"Snapshot » Snapshot Mints","id":"73","title":"Snapshot Mints"},"74":{"body":"Metaboss now has experimental support for running snapshot commands using off-chain, indexed data from https://theindex.io/. Other indexers or methods may be supported later. To use this feature, you need to sign up for a free account with TheIndex to get an API key.","breadcrumbs":"Snapshot » Indexed Data","id":"74","title":"Indexed Data"},"75":{"body":"Usage metaboss snapshot indexed-mints --creator --api-key ","breadcrumbs":"Snapshot » Snapshot Indexed Mints","id":"75","title":"Snapshot Indexed Mints"},"76":{"body":"Usage metaboss snapshot indexed-holders --creator --api-key ","breadcrumbs":"Snapshot » Snapshot Indexed Holders","id":"76","title":"Snapshot Indexed Holders"},"77":{"body":"Snapshot the print editions of a given master edition. This returns a JSON object of edition mints where the key is the edition number and the value is the mint address. E.g.: { \"1\": \"CgCmZJCBeJs9m596NzqxLg3HB8eerHHWXQPiiigB3fpt\", \"2\": \"C7kfCVwadqrQwjCBewE147r3xg8ZgYgqeUJk2tMsZ5zi\", \"3\": \"6HQBWdC9BpY6Ky3YvmxoEJGce8PgQ6NqfkLgP3dJRDpb\", \"4\": \"FiDSNjCM5sLPmMvHvCWtnqEp9yt4NvZ2ThXJ9kpvBT73\", \"5\": \"4DwpsvxzemsHxDjz8qrVkQFP7nK5QwT6irL1KQkt5NJy\", \"6\": \"DBLeCRfF8t7q2oe5DYip8J9m4eRTc46EKMazqitth5eL\", \"7\": \"AUYNrra3XmPg4FBZ5t3w1m9Nou1AQqGEs5RUPqMu9Bz1\", \"8\": \"Ewj5hZ7Z2HLojk3Du7RXcHnNtqBv8UrMCNxuukHA436J\", \"9\": \"CJgszcJTg5MKFrRa9pcty42ybaaoq13thh3a71Ep2G8t\", \"10\": \"7zZKJ9g5Bz4UZnAjY9DoiGzsV56JSTbx3ejgrzuupKQ2\", \"11\": \"Fq1rT9krzj6zMUJbDUraMEekHKcTdwyfYeYdbcAgN5qE\", \"12\": \"EqnXBCwU2eTCVTE6G82PnZ5ujKpxeCnGrGvaURYMyjvr\", \"13\": \"4oWVGXtCMA7QQi8KJaWD2sc89kapQ9yYybTwqD99LVhi\", \"14\": \"3P7aumi3e4ZALiMY6g9Ec7H6zpN4jfyRC5Hs1G5n4Nt4\", \"15\": \"5pwz2Fn3YGFFLzNVFAZZESfpjjjnA2k71Hd2mHPCX1ro\"\n} There is no direct way to find all print editions of a given master edition, so this command uses the following heuristic: Derive the master edition account from the provided master_edition_mint Decode the master edition NFT metadata account Find the first verified creator of the master edition's metadata account Snapshot all metadata accounts with the same first verified creator Decode all the metadata accounts Get the mint from each metadata account Derive the edition for each mint account Decode the edition and check if it's a master or a print If it's a print and its parent is the master edition, add it to the list with its edition number as the key The user can optionally pass in a first verified creator to use instead of deriving it from the master edition. Limitations: For master editions that have had prints minted, and then had their first verified creator changed and then more prints minted, it will take multiple runs of this command with each of the first verified creators to find all the prints and the user will need to track them in separate files and merge them manually as it will overwrite the default output file each time. Usage metaboss snapshot prints -m -c ","breadcrumbs":"Snapshot » Snapshot Prints","id":"77","title":"Snapshot Prints"},"78":{"body":"Transfer Metaplex assets such as NFTs and pNFTs.","breadcrumbs":"Transfer » Transfer","id":"78","title":"Transfer"},"79":{"body":"USAGE: metaboss transfer asset [OPTIONS] --mint --receiver FLAGS: -h, --help Prints help information -V, --version Prints version information OPTIONS: --amount Amount of tokens to transfer, for NonFungible types this must be 1 [default: 1] -k, --keypair Path to the update_authority keypair file -l, --log-level Log level [default: off] -m, --mint Mint account of token to transfer -R, --receiver Receiving address, if different from update authority -r, --rpc RPC endpoint url to override using the Solana config or the hard-coded default -T, --timeout Timeout to override default value of 90 seconds [default: 90]","breadcrumbs":"Transfer » Transfer Asset","id":"79","title":"Transfer Asset"},"8":{"body":"cargo install metaboss","breadcrumbs":"Installation » Crates.io","id":"8","title":"Crates.io"},"80":{"body":"metaboss transfer asset --mint --receiver E.g.: metaboss transfer asset --mint 2KGQLgypChErw3kKPqG26uyUjVtZj8QSJg2AUNR7BWdM -R PanbgtcTiZ2PveV96t2FHSffiLHXXjMuhvoabUUKKm8 Amount For non-fungible types such as NonFungible and ProgrammableNonFungible, the amount can only be 1 and that is the default value for the CLI argument if not specified. For fungible types, specify the amount to be transferred with --amount .","breadcrumbs":"Transfer » Usage","id":"80","title":"Usage"},"81":{"body":"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).","breadcrumbs":"Update » Update","id":"81","title":"Update"},"82":{"body":"Update the Data struct on a NFT from a JSON file. Usage metaboss update data --keypair --account --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\": \"\", \"verified\": true, \"share\": 0 }, { \"address\": \"\", \"verified\": true, \"share\": 50 }, { \"address\": \"42NevAWA6A8m9prDvZRUYReQmhNC3NtSZQNFUppPJDRB\", \"verified\": false, \"share\": 50 } ]\n} Outputs a TxId to the command line so you can check the result.","breadcrumbs":"Update » Update Data","id":"82","title":"Update Data"},"83":{"body":"Update the Data struct on a list of NFTs from JSON files. Usage metaboss update data-all --keypair --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\", \"data\": { \"name\": \"FerrisCrab #4\", \"symbol\": \"FERRIS\", \"uri\": \"https://arweave.net/N36gZYJ6PEH8OE11i0MppIbPG4VXKV4iuQw1zaq3rls\", \"seller_fee_basis_points\": 100, \"creators\": [ { \"address\": \"\", \"verified\": true, \"share\": 0 }, { \"address\": \"\", \"verified\": true, \"share\": 50 }, { \"address\": \"42NevAWA6A8m9prDvZRUYReQmhNC3NtSZQNFUppPJDRB\", \"verified\": false, \"share\": 50 } ]}\n} One approach to using update data-all is you can get all the JSON files using the metaboss decode mint -L --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. Outputs a TxId to the command line so you can check the result.","breadcrumbs":"Update » Update Data All","id":"83","title":"Update Data All"},"84":{"body":"Update the on-chain name of a NFT, keeping the rest of the Data struct the same. Usage metaboss update name --keypair --account --new-name ","breadcrumbs":"Update » Update Name","id":"84","title":"Update Name"},"85":{"body":"Update the on-chain symbol of a NFT, keeping the rest of the Data struct the same. Usage metaboss update symbol --keypair --account --new-symbol ","breadcrumbs":"Update » Update Symbol","id":"85","title":"Update Symbol"},"86":{"body":"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 -L --new-symbol ","breadcrumbs":"Update » Update Symbol All","id":"86","title":"Update Symbol All"},"87":{"body":"Update the creators of a NFT, keeping the rest of the Data struct the same. Usage metaboss update creators -k -a -c Creators should be a comma-delimited list of creator:share:verified. E.g. Example: metaboss update creators -k ~/.config/solana/devnet.json -a 4rxTT8pKeYFrFgNBgTspBWVEnMnsAZGwChkjRUtP4Xpi -c 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.","breadcrumbs":"Update » Update Creators","id":"87","title":"Update Creators"},"88":{"body":"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 -c 42NevAWA6A8m9prDvZRUYReQmhNC3NtSZQNFUppPJDRB:70:false,AVdBTNhDqYgXGaaVkqiaUJ1Yqa61hMiFFaVRtqwzs5GZ:30:false","breadcrumbs":"Update » Update Creators All","id":"88","title":"Update Creators All"},"89":{"body":"Update the metadata URI, keeping the rest of the Data struct the same. Usage metaboss update uri --keypair --account --new-uri ","breadcrumbs":"Update » Update URI","id":"89","title":"Update URI"},"9":{"body":"Install Rust . curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh Clone the source: git clone git@github.com:samuelvanderwaal/metaboss.git or git clone https://github.com/samuelvanderwaal/metaboss.git On Ubuntu you may need some additional packages: sudo apt install libssl-dev libudev-dev pkg-config Change directory and check out the main branch: cd metaboss\ngit checkout main Install or build with Rust: cargo install --path ./ or cargo build --release","breadcrumbs":"Installation » Install From Source","id":"9","title":"Install From Source"},"90":{"body":"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 --json-file [ { \"mint_account\": \"xZ43...\", \"new_uri\": \"https://arweave.net/N36gZYJ6PEH8OE11i0MppIbPG4VXKV4iuQw1zaq3rls\" }, { \"mint_account\": \"71bk...\", \"new_uri\": \"https://arweave.net/FPGAv1XnyZidnqquOdEbSY6_ES735ckcDTdaAtI7GFw\" }\n]","breadcrumbs":"Update » Update URI All","id":"90","title":"Update URI All"},"91":{"body":"Update the seller fee basis points field on an NFT, keeping the rest of the Data struct the same. Usage metaboss update sfbp --keypair -a -n ","breadcrumbs":"Update » Update Seller Fee Basis Points","id":"91","title":"Update Seller Fee Basis Points"},"92":{"body":"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 -L -n ","breadcrumbs":"Update » Update Seller Fee Basis Points All","id":"92","title":"Update Seller Fee Basis Points All"},"93":{"body":"Update a Metaplex pNFT's rule set pubkey. USAGE: metaboss update rule-set [OPTIONS] --mint --new-rule-set FLAGS: -h, --help Prints help information -V, --version Prints version information OPTIONS: -k, --keypair Path to the creator's keypair file -l, --log-level Log level [default: off] -a, --mint Mint account of token to transfer -n, --new-rule-set New rule set pubkey -r, --rpc RPC endpoint url to override using the Solana config or the hard-coded default -T, --timeout Timeout to override default value of 90 seconds [default: 90] Usage metaboss update rule-set --mint --new-rule-set E.g.: metaboss update rule-set --mint 2KGQLgypChErw3kKPqG26uyUjVtZj8QSJg2AUNR7BWdM -n D4YHFZPWASGpvBDJSUrPtqZqxTgTm7eL5rikBY9Y5dwf","breadcrumbs":"Update » Update Rule Set","id":"93","title":"Update Rule Set"},"94":{"body":"Update the rule set of a batch of pNFTs. USAGE: metaboss update rule-set-all [OPTIONS] --new-rule-set FLAGS: -h, --help Prints help information -V, --version Prints version information OPTIONS: -c, --cache-file Cache file -k, --keypair Path to the creator's keypair file -l, --log-level Log level [default: off] -L, --mint-list Path to the mint list file -n, --new-rule-set New rule set pubkey -R, --rate-limit Maximum number of requests per second [default: 10] --retries Maximum retries: retry failed items up to this many times [default: 0] -r, --rpc RPC endpoint url to override using the Solana config or the hard-coded default -T, --timeout Timeout to override default value of 90 seconds [default: 90] Usage metaboss update rule-set-all -L