{"id":13455841,"url":"https://github.com/theskeletoncrew/treat-toolbox","last_synced_at":"2025-04-06T07:14:54.287Z","repository":{"id":40946023,"uuid":"411914517","full_name":"theskeletoncrew/treat-toolbox","owner":"theskeletoncrew","description":"Treat Toolbox: Generative NFT Utility for Candy Machine / Solana","archived":false,"fork":false,"pushed_at":"2022-04-25T04:15:08.000Z","size":16151,"stargazers_count":273,"open_issues_count":9,"forks_count":116,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-03-30T06:06:36.435Z","etag":null,"topics":["candy-machine","generative-art","metaplex","nft","nfts","solana"],"latest_commit_sha":null,"homepage":"https://treattoolbox.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theskeletoncrew.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-09-30T03:51:08.000Z","updated_at":"2025-03-25T00:54:43.000Z","dependencies_parsed_at":"2022-08-25T15:11:02.233Z","dependency_job_id":null,"html_url":"https://github.com/theskeletoncrew/treat-toolbox","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theskeletoncrew%2Ftreat-toolbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theskeletoncrew%2Ftreat-toolbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theskeletoncrew%2Ftreat-toolbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theskeletoncrew%2Ftreat-toolbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theskeletoncrew","download_url":"https://codeload.github.com/theskeletoncrew/treat-toolbox/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247445681,"owners_count":20939961,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["candy-machine","generative-art","metaplex","nft","nfts","solana"],"created_at":"2024-07-31T08:01:11.962Z","updated_at":"2025-04-06T07:14:54.255Z","avatar_url":"https://github.com/theskeletoncrew.png","language":"TypeScript","funding_links":[],"categories":["🦾 Generative Art Tools","TypeScript"],"sub_categories":["Dapp Boilerplates"],"readme":"![Github Social Image](https://user-images.githubusercontent.com/89373652/137255583-80d58aae-cc14-413e-bf80-2b619673fde2.png)\n\n[Treat Toolbox](https://treattoolbox.com) | Twitter [@TreatToolbox](https://twitter.com/TreatToolbox) | Discord: [Skeleton Crew](https://discord.gg/skeletoncrewrip)\n\nFeeling generous? Your contributions help fund future development.  \nSend tips to our Solana wallet: CH6afYjjydFLPSrfQYEUNCdSNohLCAQV6ir6QnYeZU3t\n\n# About\n\n[Treat Toolbox](https://treattoolbox.com) is an open-source utility for managing the creation of generative-art NFT projects. The project was built by the team that created [The Skeleton Crew](https://skeletoncrew.rip) for use on their own project.\n\nUsing Treat Toolbox, the final artwork for a project is created from a set of layered PNGs, each associated with user-defined \"traits\" and their specified rarities. The system is especially well-suited for [Solana](https://solana.com) based projects, as it is capable of exporting the artwork and metadata (PNG+JSON) pairs that are necessary for setting up [Metaplex's Candy Machine](https://github.com/metaplex-foundation/metaplex).\n\nBenefits of Treat Toolbox:\n\n- Fully web-based; no fumbling with shell scripts\n- Built to be usable even by non-technical team members\n- Handles Traits, Rarities, Artwork, and more\n- Eliminates potential for duplicates\n- Provides methods to avoid known conflicts in your art\n- Exports directly to PNG+JSON for use with Metaplex Candy Machine\n\nToday, the system is made to run locally, using an instance of the [Firebase emulator](https://firebase.google.com/docs/emulator-suite) as it's backing data and file storage. In the future, a hosted version may be made available.\n\n# Setup\n\nPrerequisites:\n\n- Your machine should have npm, nodejs v14, and the java runtime installed.\n\nFirst, you will need to get setup with Firebase, and install the Firebase emulator:\n\n1. Install the [Firebase CLI](https://firebase.google.com/docs/cli)\n\n2. Go to the [Firebase Console](https://console.firebase.google.com) and login.\n\n3. Create a new project\n\n4. Under Firestore Database click “Create database”. Start in Production Mode. Choose an appropriate location.\n\n5. Go back to the \"Project Overview\" page, and under “Get Started by adding Firebase to your app”, click the \u003c/\u003e icon named \"Web\". Register your app (hosting is not necessary).\n\n6. Under “Use npm”, copy the keys provided for the firebaseConfig. Enter these in the appropriate places in the `.env` file included in Treat Toolbox.\n\n```\nNEXT_PUBLIC_FIREBASE_API_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY\nNEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=myproject.firebaseapp.com\nNEXT_PUBLIC_FIREBASE_PROJECT_ID=myproject\nNEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=myproject.appspot.com\nNEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=1111111111111\nNEXT_PUBLIC_FIREBASE_APP_ID=1:1111111111111:web:3333333333333333333333\n```\n\n7. Go back to the \"Functions\" page, and click “Upgrade project”. Update your plan to get access to Firebase Functions (you wont be billed as long as you only use the emulators).\n\n8. Run `firebase login` and follow the prompts to sign in.\n\n9. Run `firebase init` in the root of the checked out repo. \n\nUse an existing project (the one you created in step 3).\n\nUse the answers below:\n```\nWhich Firebase features do you want to set up for this directory? \nChoose Firestore, Functions, Storage, Emulators.\n\nWhat file should be used for Firestore Rules? \nfirestore.rules [just press enter]\n\nFile firestore.rules already exists. Do you want to overwrite it with the Firestore Rules from the Firebase Console?\nN [No]\n\nWhat file should be used for Firestore indexes? \nfirestore.indexes.json [just press enter]\n\nFile firestore.indexes.json already exists. Do you want to overwrite it with the Firestore Indexes from the Firebase Console?\nN [No]\n\nWhat language would you like to use to write Cloud Functions? \nTypescript\n\nDo you want to use ESLint to catch probable bugs and enforce style? \nn [No]\n\nFile functions/package.json already exists. Overwrite? \nN [No]\n\nFile functions/tsconfig.json already exists. Overwrite? \nN [No]\n\nFile functions/src/index.ts already exists. Overwrite? \nN [Np]\n\nFile functions/.gitignore already exists. Overwrite? \nN [No]\n\nDo you want to install dependencies with npm now? \nY [Yes]\n\nWhat file should be used for Storage Rules? \nstorage.rules [just press enter]\n\nFile storage.rules already exists. Overwrite? \nN [No]\n\nWhich Firebase emulators do you want to set up? \nFunctions, Firestore, Storage\n\nWhich port do you want to use for the functions emulator? \n5001 [just press enter]\n\nWhich port do you want to use for the firestore emulator? \n8080 [just press enter]\n\nWhich port do you want to use for the storage emulator? \n9199 [just press enter]\n\nWould you like to enable the Emulator UI? \nYes\n\nWhich port do you want to use for the Emulator UI (leave empty to use any available port)? \n[just press enter]\n\nWould you like to download the emulators now? \ny [Yes]\n```\n\n10. Next, start the emulators:\n\n```bash\nnpm install --prefix=functions\n# This builds the functions and starts the emulator set up to save to a folder called \"backup\" under the \"functions\" folder.\nnpm run serve --prefix=functions\n```\n\n**_Notes_**: _If you have been using a older version of Treat Toolbox, your backup may be in a different location. You can move the folder under the `functions` folder when the emulator isn't running._\n\n_If the emulators fail to start, see `firestore-debug.log`. One common cause for failure is that you may need to install the [java runtime](http://www.java.com.)_\n\n11. When the emulators start, the API url for your cloud functions will be output in the form:\n\n`functions[us-central1-api]: http function initialized (http://localhost:5001/projectdemo-a111a/us-central1/api).`\n\nCopy this url and enter it in the file `.env` for the value `NEXT_PUBLIC_FIREBASE_FUNCTIONS_API_ENDPOINT`.\n\n12. Then, in a separate terminal inside root of the checked out repo, start the development web server:\n\n```bash\nnpm install\nnpm run dev\n```\n\n13. Open [http://localhost:3000](http://localhost:3000) with your browser and start using Treat Toolbox!\n\n# Working with Treat Toolbox\n\nCheck out the [Product Documentation](https://docs.treattoolbox.com/)\n\nHere's a video of the basic usage of Treat Toolbox: https://vimeo.com/633276431  \n\n### Quick Start\n\nWant to give treat toolbox a spin, but dont have artwork handy? Take a look at the samples we provided in the `test-images` directory. Just create three traits: \"Curve\", \"Dot\" and \"Squiggle\". Give each of them trait values, for ex. for \"Squiggle\", create the values \"Green\", \"Magenta\", \"Purple\", \"Royal Purple\", and \"Teal\". Then with the rarities you specify, you can run off a set of compositions and see the system at work.\n\n### Troubleshooting\n\nFor now, Treat Toolbox is lacking robust error reporting. If something feels off, check for errors in either one of the two running terminals (the web frontend or the firebase emulators) or alternatively, open the web console from the browser and check for errors there. If you do run into a problem, please file an Issue, or better yet, open a PR!\n\n### Made with Treat Toolbox\n\nHelp us get the word out about this tool by using the banner provided below as a way to comply with MIT LICENSE attribution requirements. Let's make sure that every artist who wants to launch an NFT Collection on Solana has the means to do so! Please link the banner to https://treattoolbox.com.\n\n![Treat Toolbox Badge](https://user-images.githubusercontent.com/89115113/137352273-c4972230-8239-45b7-bfe1-be1767fd1115.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheskeletoncrew%2Ftreat-toolbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheskeletoncrew%2Ftreat-toolbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheskeletoncrew%2Ftreat-toolbox/lists"}