Elven Tools CLI is mainly used to simplify and help when deploying and interacting with Elven Tools smart contracts (NFT/SFT). Read more about NFT related workflows here: Elven Tools workflows. It is its main functionality. But the CLI also has some additional tools and there are also separated helper scripts. Let's see what they are.
First, let's start with the Elven Tools CLI. It has interesting tools built in. For example, you can get the owners of an NFT collection by using
elven-tools collection-nft-owners. It allows you to filter out the addresses of the smart contracts and filter by metadata/asset file name if needed. It will output the
nft-collection-owners.json file, which you could use in two complementary tools, and also it is used in token distribution. You will read about everything below. For more docs about the
collection-nft-owners command, check the section in the docs: How to get owners' addresses using the collection ticker.
Ok, what can you do with the
nft-collection-owners.json? First, you can do more data processing and convert it to CSV using: elven-tools-collection-owners-csv (check the repository for docs). You can filter the JSON file by the token id or/and file name and get a formatted CSV file. It is convenient for all data processing where the CSV is required. You will find an example here.
Another one is the elven-tools-snapshots-intersection which can be used to filter long-term holders (check the repository for docs). As an input, it takes multiple
nft-collection-owners.json, and it will create one JSON file with addresses that exist in each
nft-collection-owners.json file. The address in each list can be considered the long-term holder. So you can do numerous snapshots first and then filter long-term holders. You will find an example here.
The most exciting part is the distribution functionality. It is built into the CLI and uses the
nft-collection-owners.json file as input. It will let you define the type of tokens to distribute and the amount per address, and it will send them automatically to the addresses from the JSON file. You can run it by
elven-tools distribute-to-owners. You will read more about it in the docs: How to distribute tokens to NFT owners.
The last but not least functionality not directly related to the NFT minting is the Dapp initialization. You can use the
elven-tools init-dapp command to download, install dependencies and prepare env files for the Nextjs-based application, which is used as a frontend for the minting process. You can read more about the Dapp here: Minter Dapp introduction.
There will be more tools related to the PFP NFT collections handling. There are also planned new smart contracts, so stay tuned. And if you want a similar CLI tool, but more general, not specific to the NFTs, please check the Buildo Begins. It is a tool to simplify common operations on the MultiversX blockchain and also a couple of helper tools. Like generating the herotag or using MultiversX data converters.