{"_id":"@artiva/nft-editions-contracts","_rev":"1-4c15c38189e49797a86ab78563377af7","name":"@artiva/nft-editions-contracts","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@artiva/nft-editions-contracts","version":"1.0.0","description":"NFT Factory Contracts","main":"index.js","author":{"name":"ZORA"},"license":"GPL-3.0","private":false,"scripts":{"typechain":"hardhat typechain","compile":"hardhat compile","deploy":"hardhat deploy","test":"hardhat test","build":"yarn run prepack","prepack":"hardhat compile"},"devDependencies":{"@nomiclabs/hardhat-waffle":"^2.0.1","@types/chai":"^4.2.21","@types/data-urls":"^2.0.1","@types/mocha":"^8.2.3","@types/node":"^16.4.0","chai":"^4.3.4","data-urls":"^3.0.0","ethereum-waffle":"^3.4.0","hardhat":"^2.5.0","hardhat-gas-reporter":"^1.0.4","ts-node":"^10.1.0","typescript":"^4.3.5","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-etherscan":"^2.1.4","@typechain/ethers-v5":"^7.1.0","@typechain/hardhat":"^2.3.0","hardhat-deploy":"^0.8.11","typechain":"^5.1.2","dotenv":"^10.0.0"},"dependencies":{"ethers":"^5.4.1","@openzeppelin/contracts-upgradeable":"^4.3.2","base64-sol":"^1.0.1"},"gitHead":"326967366bbd0fb996b3aed93a43d05d21e2b569","_id":"@artiva/nft-editions-contracts@1.0.0","_nodeVersion":"16.9.1","_npmVersion":"7.21.1","dist":{"integrity":"sha512-URtqmBr4UjgWLaksFfRBdzEWVxH/Pm9q8OBpIDrN3s7v2J4iGJuXjWCF3ifPATLXR6hw6lUdjledi+UvxkvfxQ==","shasum":"858ebf16053bb3b9fd350c1df3c8bf45f9dae976","tarball":"https://registry.npmjs.org/@artiva/nft-editions-contracts/-/nft-editions-contracts-1.0.0.tgz","fileCount":64,"unpackedSize":2075273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhss59CRA9TVsSAnZWagAAYRcP/A/3lVE8849vhZgPgcEM\nvvUTb3hZlLV6y2kC+uLoQRuptMUWelL+TpEtpOSrjhuwfXLF6PN0z+/I6a9n\nSv06OO1or/+cCx8kunsryYoEiX3wy6fbWOuv8Nt9l0sOwhCVaPjz3Qnm2mPM\n59OyyzH3+oNPchmLEiOtOm3Oi7rYke+lPsB9LkwcSJgg+mkE8EqkIm8Xf3IX\no4BwMF+akzuhK7SiEKVO/TkmJ2dHBqyIAmv0f7JVMPfXUyCZOz7wqvKM84Ck\nFMWvkJDtXijACmhoY90vLeBDwT99FbfFncD8AdHhqJx/vfnA7ghS/xq3JDDK\nQizjV6HDZHFGDun8WkaQRotQRQALGjz42jd5JbCr05t793pr1IrEvSCwQJKt\nDKKLifcTRctGiPJHDJRB6u6bXhW8kbGgVBEFOtjbCEwsqrXchKzQgPdF2aV3\nw0r/WalEu0zHklil4AZbJwkJwwuF1I/sneobsv04ZbY+slbmCB3iiKlFQ/VB\nwS1JUCu6fDvKS0HbCUu3LPae1VpsyKntoyIMkW4mgCsRJo8RLqS8eaioZMLT\nB2eKugGDro8nPLOy374F2LhfUU71YCajzs0sh82gqH/YkDmKjI7H4zL94W79\n2t0xcFDB729yyRHj6oQYFZ0jZAtgT0ty+bQBf/D5C8onz+GYQHfjQ7vqPP5o\nCeqq\r\n=TeNt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDgj8Ncveg+tXY85CC0ZDWmKi/P2qTIXOn/IxjzCQurBAiEA1+kRhY51YnUkL1Z96eEZTjS/3dTm7fhthz41gc97Dzk="}]},"_npmUser":{"name":"neokry","email":"n@artiva.app"},"directories":{},"maintainers":[{"name":"neokry","email":"n@artiva.app"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nft-editions-contracts_1.0.0_1639108221268_0.28663962751364847"},"_hasShrinkwrap":false}},"time":{"created":"2021-12-10T03:50:21.222Z","1.0.0":"2021-12-10T03:50:21.430Z","modified":"2022-04-04T15:39:27.562Z"},"maintainers":[{"name":"neokry","email":"n@artiva.app"}],"description":"NFT Factory Contracts","author":{"name":"ZORA"},"license":"GPL-3.0","readme":"# Zora NFT Editions\n\n### What are these contracts?\n1. `SingleEditionMintable`\n   Each edition is a unique contract.\n   This allows for easy royalty collection, clear ownership of the collection, and your own contract 🎉\n2. `SingleEditionMintableCreator`\n   Gas-optimized factory contract allowing you to easily + for a low gas transaction create your own edition mintable contract.\n3. `SharedNFTLogic`\n   Contract that includes dynamic metadata generation for your editions removing the need for a centralized server.\n   imageUrl and animationUrl can be base64-encoded data-uris for these contracts totally removing the need for IPFS\n\n### How do I create a new contract?\n\n### Directly on the blockchain:\n1. Find/Deploy the `SingleEditionMintableCreator` contract\n2. Call `createEdition` on the `SingleEditionMintableCreator`\n\n### Through a GUI:\n\nRinkeby: https://nft-minter-rinkeby.vercel.app/\n\nMainnet: https://nft-minter-mainnet.vercel.app/\n\n\n### Where is the factory contract deployed:\n\n**Mainnet ETH**: [0x91A8713155758d410DFAc33a63E193AE3E89F909](https://etherscan.io/address/0x91A8713155758d410DFAc33a63E193AE3E89F909)\n\n**Rinkeby**: [0x88863B92857725203785EC15E744AC96aC7dE8B9](https://rinkeby.etherscan.io/address/0x88863B92857725203785EC15E744AC96aC7dE8B9)\n\n**Polygon**: [0x9168C5ba5a0a76db8A1BF5b2eE5557f2A0ECA4f4](https://polygonscan.com/address/0x9168C5ba5a0a76db8A1BF5b2eE5557f2A0ECA4f4)\n\n**Mumbai**: [0xc95B8a16F31030b303DE1082fd90c4e02795F34e](https://mumbai.polygonscan.com/address/0xc95B8a16F31030b303DE1082fd90c4e02795F34e)\n\n### How do I create a new edition?\n\ncall `createEdition` with the given arguments to create a new editions contract:\n\n- Name: Token Name Symbol (shows in etherscan)\n- Symbol: Symbol of the Token (shows in etherscan)\n- Description: Description of the Token (shows in the NFT description)\n- Animation URL: IPFS/Arweave URL of the animation (video, webpage, audio, etc)\n- Animation Hash: sha-256 hash of the animation, 0x0 if no animation url provided\n- Image URL: IPFS/Arweave URL of the image (image/, gifs are good for previewing images)\n- Image Hash: sha-256 hash of the image, 0x0 if no image url provided\n- Edition Size: Number of this edition, if set to 0 edition is not capped/limited\n- BPS Royalty: 500 = 5%, 1000 = 10%, so on and so forth, set to 0 for no on-chain royalty (not supported by all marketplaces)\n\n### How do I sell/distribute editions?\n\nNow that you have a edition, there are multiple options for lazy-minting and sales:\n\n1. To sell editions for ETH you can call `setSalePrice`\n2. To allow certain accounts to mint `setApprovedMinter(address, approved)`.\n3. To mint yourself to a list of addresses you can call `mintEditions(addresses[])` to mint an edition to each address in the list.\n\n### Benefits of these contracts:\n\n* Full ownership of your own created minting contract\n* Each serial gets its own minting contract\n* Gas-optimized over creating individual NFTs\n* Fully compatible with ERC721 marketplaces / auction houses / tools\n* Supports tracking unique parts (edition 1 vs 24 may have different pricing implications) of editions\n* Supports free public minting (by approving the 0x0 (zeroaddress) to mint)\n* Supports smart-contract based minting (by approving the custom minting smart contract) using an interface.\n* All metadata is stored/generated on-chain -- only image/video assets are stored off-chain\n* Permissionless and open-source\n* Simple integrated ethereum-based sales, can be easily extended with custom interface code\n\n### Potential use cases for these contracts:\n\n* Giveaways for events showing if you’ve attended \n* Serial editioned artworks that can be sold in the Zora auction house / work in any ERC721 market\n* Fundraisers for fixed-eth amounts\n* Can be used to issue tokens in response for contributing to a fundraiser\n* Tickets/access tokens allowing holders to access a discord or mint\n\n### Deploying:\n(Replace network with desired network)\n\n`hardhat deploy --network rinkeby`\n\n### Verifying:\n\n`hardhat sourcify --network rinkeby && hardhat etherscan-verify --network rinkeby`\n\n### Bug Bounty\n5 ETH for any critical bugs that could result in loss of funds.\nRewards will be given for smaller bugs or ideas.\n","readmeFilename":"README.md"}