{"id":13470946,"url":"https://github.com/public-awesome/stargaze-tools","last_synced_at":"2026-01-12T14:50:17.151Z","repository":{"id":36986078,"uuid":"453223200","full_name":"public-awesome/stargaze-tools","owner":"public-awesome","description":"Tools for launching NFT projects on Stargaze","archived":false,"fork":false,"pushed_at":"2024-04-29T09:37:20.000Z","size":1048,"stargazers_count":43,"open_issues_count":7,"forks_count":31,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-10-31T10:02:49.326Z","etag":null,"topics":["cosmjs","cosmos","cosmwasm","nft","stargaze","web3"],"latest_commit_sha":null,"homepage":"https://stargaze.zone","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/public-awesome.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-28T21:34:04.000Z","updated_at":"2025-05-21T16:42:26.000Z","dependencies_parsed_at":"2024-04-30T20:05:05.748Z","dependency_job_id":"52dd4da5-3b91-48f9-9801-c02d6adec96b","html_url":"https://github.com/public-awesome/stargaze-tools","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/public-awesome/stargaze-tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/public-awesome%2Fstargaze-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/public-awesome%2Fstargaze-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/public-awesome%2Fstargaze-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/public-awesome%2Fstargaze-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/public-awesome","download_url":"https://codeload.github.com/public-awesome/stargaze-tools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/public-awesome%2Fstargaze-tools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28340410,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T12:22:26.515Z","status":"ssl_error","status_checked_at":"2026-01-12T12:22:10.856Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["cosmjs","cosmos","cosmwasm","nft","stargaze","web3"],"created_at":"2024-07-31T16:00:37.698Z","updated_at":"2026-01-12T14:50:17.122Z","avatar_url":"https://github.com/public-awesome.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","Tools"],"sub_categories":[],"readme":"# Stargaze Tools V2\n\nStargaze Tools is a set of tools to interact with Launchpad smart contracts on Stargaze.\n\nIt's designed for creators and developers to help launch and manage collections. As use cases grow, more tools and scripts will be added.\n\n## Setup project\n\n```sh\ngit clone https://github.com/public-awesome/stargaze-tools\ncd stargaze-tools\nyarn install\n```\n\n## Create an account on testnet\n\n```sh\nyarn account\n```\n\nThis outputs an address you can use to instantiate your minter contract.\n\n## Get funds from faucet\n\nAsk for funds from the `#faucet` channel in [Discord Stargaze](https://discord.gg/stargaze).\n\n```\n$request [address]\n```\n\n## Configure project\n\nCopy `config.example.js` to `config.js`.\nEdit `config.js` with your project configuration.\n\n## Vending Minter\n\nA vending minter is suitable for PFP-style 10,000 item or less generative collections.\n\n### Initialize a vending minter contract\n\nA minter is created from a factory contract.\n\n```sh\nyarn minter\n```\n\nCreating an updatable vending collection requires adding --updatable-vending to the above command.\n\n```sh\nyarn minter --updatable-vending\n```\n\n### Mint\n\n#### Mint a specific NFT to an address\n\n```sh\nyarn mint --for [token_id] [address]\n```\n\n`[address]` can be any Cosmos address. It'll be converted automatically into a Stargaze address.\n\n#### Mint to an address\n\n```sh\nyarn mint --to [address]\n```\n\nThis mints the next available token ID to the given address.\n\n#### Batch mint\n\nMint `num` NFTs to an address.\n\n```sh\nyarn mint --to [address] --batch [num]\n```\n\nSame as `mint --to` but mints the next [num] tokens sequentially to the given address.\n\n#### Batch update token URIs\n\n**Only available for updatable collections.**\n\n```sh\nyarn update-metadata\n\n```\n\nUpdate a single token's metadata\n\n```\nyarn update-metadata 1 ipfs://somethinghere\n```\n\n### Whitelist (optional)\n\nInstantiate a whitelist contract:\n\n```sh\nyarn whitelist\n```\n\nThe output of the above command should give you a whitelist contract address. Edit `config.js` and update the `whitelist` field with this value. Next, set this address in your minter contract with:\n\n```sh\nyarn minter --whitelist [whitelist_address]\n```\n\nTo add addresses to the whitelist, use:\n\n```sh\nyarn whitelist --add [stars1..., stars2..., etc.]\n```\n\n## Base Minter (1/1s)\n\nA base minter is suitable for collections of 1/1s.\n\n### Initialize a base minter contract\n\nA minter is created from a factory contract.\n\n```sh\nyarn base-minter\n```\n\n### Mint\n\n```sh\nyarn mint --token-uri [token-uri]\n```\n\n## Open Edition Minter\n\nOpen edition minter allows multiple copies of a single NFT to be minted for a given time interval.\n\n### Initialize an open edition minter contract\nSpecify the collection info and open edition minter configuration in `config.js`, then run:\n```sh\nyarn open-edition-minter\n```\nThe user is prompted to choose whether the metadata will be stored off-chain or on-chain. \n- **off-chain**: the metadata needs to be uploaded to IPFS beforehand and the URI should be specified as _tokenUri_ in `config.js/openEditionMinterConfig`\n- **on-chain**: the metadata will be stored on-chain upon collection creation and should be specified as _metadata_ in `config.js/openEditionMinterConfig`\n### Mint\n#### Mint a token to an address\nSpecify the minter contract address in `config.js` and run:\n```sh\nyarn mint --to [address]\n```\nThis mints a token to the given address.\n#### Batch mint tokens to an address\nMint `num` tokens to an address.\n\n```sh\nyarn mint --to [address] --batch [num]\n```\n#### Update trading start time\nSpecify the new `startTradingTime` in `config.js/openEditionMinterConfig` and run:\n```sh\nyarn open-edition-minter --update-start-trading-time\n```\n#### Update per address limit\nSpecify the new `perAddressLimit` in `config.js/openEditionMinterConfig` and run:\n```sh\nyarn open-edition-minter --update-per-address-limit\n```\n## Query sg721\n\nYou can run queries against an instantiated sg721 contract with:\n\n```sh\nyarn query\n```\n\nFor all possible queries, see the [query types](https://github.com/public-awesome/cw-nfts/blob/main/contracts/cw721-base/src/msg.rs#L76).\n\n## Transfer NFT\nYou can transfer your nft to another address with:\n\n```sh\nyarn transfer-nft [sg721_address] [token_id] [recipient_address]\n```\n\n## SG-721 Batch Transfer\nYou can batch transfer tokens from a file. Copy `transfer.example.csv` to `transfer.csv` and configure for recipients and their `token_id`. Then use the following command:\n```sh\nyarn transfer-file\n```\n\n## Splits (optional)\n\nSplits allow splitting mint revenue and secondary sale royalties across multiple accounts.\n\nDefine split members and allocations in `config.js`, and run:\n\n```sh\nyarn group\n```\n\nThis command will output the group contract address. Now use this address to create a splits contract:\n\n```sh\nyarn splits [group-address]\n```\n\nNow the address of the splits contract can be used for the `paymentAddress` (primary sales) and/or `royaltyPaymentAddress` (secondary sales) in `config.js` when creating a minter.\n\n\nTo distribute funds from the splits contract(defined in `config.js`), make sure you are either the `admin` or a member of the group, and run:\n\n```sh\nyarn distribute-splits\n```\n\n## Query Splits\nThis command will query the splits contract. \n```sh\nyarn query-splits \u003cquery-type\u003e\n```\n### Possible query types:\n- **member** [member-address] | |\n*Query a member of the group with given address*\n- **group** | |\n*Query the group contract*\n- **list-members** | |\n*Query all members of the group*\n- **admin** | |\n*Query the admin of the group*\n\n## Snapshot\n\nCreate a snapshot of owners of a vending collection:\n\n```\nyarn vending-snapshot [collection] [expected_num_tokens]\n```\n\nFor example, to do a snapshot of all owners of Bad Kids:\n\n```\nyarn vending-snapshot stars19jq6mj84cnt9p7sagjxqf8hxtczwc8wlpuwe4sh62w45aheseues57n420 9999\n```\n\nThis generates a CSV file called `snapshot.csv`. Burned tokens will show as `burned` for the owner address.\n\n### Snapshot + Airdrop\n\nYou can airdrop a new collection to owners of an existing vending collection.\n\nFirst configure a new minter following [instructions above](#configure-project).\n\nThen generate a snapshot. For example, to airdrop a new collection to owners of Bad Kids:\n\n```\nyarn vending-snapshot stars19jq6mj84cnt9p7sagjxqf8hxtczwc8wlpuwe4sh62w45aheseues57n420 9999\n```\n\nThen Airdrop to each address in the snapshot:\n\n```\nyarn mint-for-file\n```\n\n_Note: Burned tokens will be minted to your account._\n\n### Flexible Whitelist\n\nUse a whitelist that has custom `per_address_limit` based on NFT ownership of a different collection. This requires using the flexible factory address, flexible minter code id, and flexible whitelist code id.\n\n```sh\nyarn minter --flex-vending\nyarn vending-snapshot\nyarn query-owner-nft-count\n# creates owner-nft-count.csv with the number of NFTs owned by each address\nyarn whitelist-flex\nyarn whitelist-flex-file\nyarn minter --whitelist [whitelist_address]\n```\n\n## Testnet\n\nTest your contract. Make sure it's visible in launchpad. Try minting and viewing the NFT in your profile.\n[https://testnet.publicawesome.dev/](https://testnet.publicawesome.dev/)\n\n## Video Tutorials\n\n[https://www.youtube.com/watch?v=1gvDlBWKEUc](https://www.youtube.com/watch?v=1gvDlBWKEUc) by Meta-induction\n\n[https://www.youtube.com/watch?v=lw6w5zlRj14](https://www.youtube.com/watch?v=lw6w5zlRj14) by Cosmos Tutorials\n\n[https://asciinema.org/a/485818](https://asciinema.org/a/485818)\n\n## More documentation\n\nA more comprehensive guide is available at [Stargaze Docs](https://docs.stargaze.zone/guides/readme).\n\n## Copyrighted Content\n\nYou represent and warrant that you have, or have obtained, all rights, licenses, consents, permissions, power and/or authority necessary to grant the rights granted herein for any content that you create, submit, post, promote, or display on or through the Service. You represent and warrant that such content does not contain material subject to copyright, trademark, publicity rights, or other intellectual property rights, unless you have necessary permission or are otherwise legally entitled to post the material and to grant Stargaze Parties the license described above, and that the content does not violate any laws.\n\n## Disclaimer\n\nSTARGAZE TOOLS IS PROVIDED “AS IS”, AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND. No developer or entity involved in creating Stargaze Tools or smart contracts will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of Stargaze, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value. Although Public Awesome, LLC and it's affiliates developed the initial code for Stargaze, it does not own or control the Stargaze network, which is run by a decentralized validator set.\n\n## Terms and Conditions\n\nBy using this code you agree to the following [terms and conditions](TERMS).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpublic-awesome%2Fstargaze-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpublic-awesome%2Fstargaze-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpublic-awesome%2Fstargaze-tools/lists"}