npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

matr-art-generator

v1.0.9

Published

Generate Solana NFT artwork and Metaplex metadata with a single command.

Downloads

14

Readme

🎨 Matr NFT Art & Metadata Generator

Generate Solana NFT artwork and Metaplex metadata with a single command.

If you have any questions feel free to reach out on Discord or Twitter.

🖥 Web UI (matr.world/art)

📦 Download Example Project

demo

⚡️ Usage

Once your project is set up and you have a matr.config.json file next to your attribute folders, you can run the following command to run matr-art-generator.

💡 Tip

To get your project folder path into terminal, drag your project folder into terminal and it will paste the path. Once the path has been added, hit ENTER to start the generator.

npx matr-art-generator YOUR_PROJECT_FOLDER

🎉 Result

The resulting metadata and artwork will be exported to YOUR_PROJECT_FOLDER/build.

🤝 Getting Started

Install Node

Node is required for the npx command and generator to work. Install https://nodejs.org/en/download/ LTS.

⚠️ Issues when trying to run?

If you're having trouble installing/running the generator, try switching your Node version to 15. There is a known issue we are trying to fix where on some systems you have to be using Node 15.

You can view your current node version by running node --version in terminal.

To switch your Node version, you can use NVM which allows you to switch between Node versions and do something along the lines of nvm install 15 & nvm use 15.

📦 Project Structure

Structure your attribute directories and value files like the following.

  • Each attribute has its own value files.
  • Attribute values must be .png format.
  • A matr.config.json exists at the top of the project.
my-project
    | - Background
        | - Black.png
        | - Red.png
        | - Yellow.png
    | - Face
        | - Happy.png
        | - Sad.png
        | - Sexy.png
    matr.config.json

⚒️ Config

demo

In order for the generator to run, there needs to be a matr.config.json file at the top of your project. You can use our UI to design a config found at matr.world/art, or you can write your own using the following spec.

{
    "name": "PROJECT_NAME",
    "symbol": "YOUR_SYMBOL",
    "external_url": "YOUR_WEBSITE",
    "description": "YOUR_DESCRIPTION",
    "baseUri": "YOUR_IMAGE_HOSTING",
    "seller_fee_basis_points": 1000,
    "creators": [
        {
            "address": "YOUR_WALLET",
            "share": 100
        }
    ],
    "artwork": [
        {
            "count": 333,
            "attributes": [
                {
                    "directory": "ATTRIBUTE_DIRECTORY"
                },
                {
                    "directory": "ATTRIBUTE_DIRECTORY",
                    "name": "ATTRIBUTE_NICE_NAME"
                },
            ]
        }
    ]
}

| Property | Description |-|-| name | The name of your project and what will be before each NFTs edition. For example, a generated NFTs name could be PROJECT_NAME #111.| symbol | Project symbol. | external_url | Project website. | description | Project description. | baseUri | Where your images are hosted. NFT image paths will be baseUri/some_number.png. | seller_fee_basis_points | Royalties. 1000 is 10%. | creators | A list of creators and percentage amounts to split the royalties. | artwork | A list of objects where each object represents an attribute directory. By default, the attribute Name will be the directory name. If you want the name to be something else, you can use the name property and still point to whatever directory you want to.|

🔥 Multiple Attribute Combinations

You can pass multiple attribute configs into the same generation. This lets you do cool things like only generate a set amount of a certain combo making them more rare.

{
    "artwork": [
        {
            "count": 333,
            "attributes": [
                {
                    "directory" : "ATTRIBUTE_DIRECTORY"
                },
                {
                    "directory" : "ATTRIBUTE_DIRECTORY",
                    "name": "ATTRIBUTE_NICE_NAME"
                }
            ]
        },
        {
            "count": 100,
            "attributes": [
                {
                    "directory": "ATTRIBUTE_DIRECTORY"
                },
                {
                    "directory": "ATTRIBUTE_DIRECTORY",
                    "name": "ATTRIBUTE_NICE_NAME"
                },
                {
                    "directory": "SPECIAL_THING",
                },
            ]
        }
    ]
}