{"id":46806216,"url":"https://github.com/me-foundation/magicdrop","last_synced_at":"2026-03-10T07:15:14.622Z","repository":{"id":59363815,"uuid":"536773891","full_name":"me-foundation/magicdrop","owner":"me-foundation","description":"MagicDrop is a collection of EVM minting protocols that enable the multi stage minting, per stage WL management, per stage supply limit, and crossmint support.","archived":false,"fork":false,"pushed_at":"2025-12-12T21:24:15.000Z","size":1788,"stargazers_count":71,"open_issues_count":40,"forks_count":52,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-12-14T11:54:53.656Z","etag":null,"topics":["minting","nft","solidity"],"latest_commit_sha":null,"homepage":"","language":"Solidity","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/me-foundation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-09-14T22:04:20.000Z","updated_at":"2025-12-12T21:24:19.000Z","dependencies_parsed_at":"2025-12-13T01:05:35.168Z","dependency_job_id":null,"html_url":"https://github.com/me-foundation/magicdrop","commit_stats":null,"previous_names":["magicoss/erc721m","me-foundation/erc721m","me-foundation/magicdrop","magiceden-oss/erc721m"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/me-foundation/magicdrop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/me-foundation%2Fmagicdrop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/me-foundation%2Fmagicdrop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/me-foundation%2Fmagicdrop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/me-foundation%2Fmagicdrop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/me-foundation","download_url":"https://codeload.github.com/me-foundation/magicdrop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/me-foundation%2Fmagicdrop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30326893,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"last_error":"SSL_read: 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":["minting","nft","solidity"],"created_at":"2026-03-10T07:15:13.875Z","updated_at":"2026-03-10T07:15:14.608Z","avatar_url":"https://github.com/me-foundation.png","language":"Solidity","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MagicDrop\n\n[![NPM][npm-shield]][npm-url]\n[![CI][ci-shield]][ci-url]\n[![MIT License][license-shield]][license-url]\n[![Coverage][coverage-shield]][coverage-url]\n\nMagicDrop is a collection of EVM minting protocols that enable the multi stage minting, per stage WL management, per stage supply limit, and authorized minter support.\n\n## Motivation\n\nWe'd like to introduce the standard of \"minting stages\". At each stage, the creators can define the following properties:\n\n- per-stage price\n- per-stage walletLimit\n- per-stage merkleRoot(whitelist)\n- per-stage maxStageSupply\n\nThe composability of the stages is generic enough to enable flexible and complicated EVM minting contracts.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://bafkreid7sfgi5tycdvbdtobl3mqnwjlrlawdgioaj6vxvtcmmda74doh7q.ipfs.nftstorage.link/\" width=\"50%\" \u003e\n\u003c/p\u003e\n\n## Tech/ Framework\n\n\u003cb\u003eBuilt with\u003c/b\u003e\n\n- [Hardhat](https://hardhat.org)\n- [ERC721A](https://github.com/chiru-labs/ERC721A) by Azuki. Fully compliant implementation of IERC721 with significant gas savings for batch minting.\n- [ERC721C](https://github.com/limitbreakinc/creator-token-standards) by LimitBreak. Extends ERC721 and add creator-definable transfer security profiles that are the foundation for enforceable, programmable royalties.\n\n## Features\n\n- Minting Stages\n- Permenent BaseURI Support\n- Non-incresing Max Total Supply Support\n- Per-stage whitelist Merkle Tree\n- Per-stage Max Supply\n- Global and Per-stage Limit\n- Authorized minter support\n- Native TypeScript and Typechain-Types Support\n\n## Contracts\n\n| Contract                    | Description                                                                  |\n| --------------------------- | ---------------------------------------------------------------------------- |\n| ERC721M                     | The basic minting contract based on ERC721A.                                 |\n| ERC721CM                    | The basic minting contract based on ERC721C and ERC721M.                     |\n| ERC1155M                    | The basic minting contract based on ERC1155.                                 |\n| MagicDropTokenImplRegistry  | The implementation registry for MagicDrop contracts.                         |\n| MagicDropCloneFactory       | The factory contract for cloning MagicDrop contracts.                        |\n| ERC721MInitializableV1_0_2  | The initializable implementation for ERC721M.                                |\n| ERC721CMInitializableV1_0_2 | The initializable implementation for ERC721CM.                               |\n| ERC1155MInitializableV1_0_2 | The initializable implementation for ERC1155M.                               |\n| ERC721MagicDropCloneable    | A simple cloneable implementation of ERC721 with public and private stages.  |\n| ERC1155MagicDropCloneable   | A simple cloneable implementation of ERC1155 with public and private stages. |\n\n## Deployment Address \u0026 Salts (Non-ZKSync Chains)\n\n| Name                                      | Address                                    | Salt                                                               |\n| ----------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------ |\n| MagicDropTokenImplRegistry Implementation | 0x00000000a5837C1EeD8145A831c8e69C81112da0 | 0x38f7e43d7b4b0493bb35918ede2a002486e822173f68e1c7c4e9a7a9af451ac2 |\n| MagicDropTokenImplRegistry Proxy          | 0x000000000e447e71b2EC36CD62048Dd2a1Cd0a57 | 0xc9b080cde9332d8feb50c92fb198b503b9f90ca09a83429194ad8ef8928aca79 |\n| MagicDropCloneFactory Implementation      | 0x0000000067502A08Cc4307672A1d4dc48f08a444 | 0x3ad1a60297b1c9e825cdf7e9452a4e9b109c404a4f9f8069e77c6a916096aa0a |\n| MagicDropCloneFactory Proxy               | 0x00000000bEa935F8315156894Aa4a45D3c7a0075 | 0xdcb4ae77dc30804459a9a9bcc9bb1a271049553639fdf5c47e4a6a0c3fd97c7b |\n| ERC721MInitializableV1_0_2                | 0x00000000df57029C0628F946f37a4CBaa417d1d9 | 0x56c09d9f6a0b39a14e082b2ee9329f2d07e0d2a57900d4d24797d0bb95f521a9 |\n| ERC721CMInitializableV1_0_2               | 0x00000000E7aEc12181Cb4C1D8474634e3fCEe456 | 0x958674b386d1433f28e925ecd473b9ff8ca9cf8b1d4e5a0f417a1d731da7c565 |\n| ERC1155MInitializableV1_0_2               | 0x0000000055E6c029AD855Af4a30a0f0fA73b6c5E | 0xab66c31281be63f79c25e30ef51a6293b25eea4a86beb47b323525497c4612af |\n| ERC721MagicDropCloneable                  | 0x000000002A1351440079144BF9e40869092576f1 | 0x802853f87f3efa7109bd4a3b7b9ac3daf75f98a3fc97a8fce04d8c17ed2e85c7 |\n| ERC1155MagicDropCloneable                 | 0x00000000b03D92E78432FB3377A171655Afdb5bb | 0x0b6a866fa283524661d3b4a0f7f5b85636819e32e1384b395d5454edc7d9299a |\n\n### Abstract Deployed Addresses\n\n| Contract                    | Address                                    |\n| --------------------------- | ------------------------------------------ |\n| MagicDropTokenImplRegistry  | 0x17c9921D99c1Fa6d3dC992719DA1123dCb2CaedA |\n| MagicDropCloneFactory       | 0x01c1C2f5271aDeA338dAfba77121Fc20B5176620 |\n| ERC721MInitializableV1_0_2  | 0x92578FCA9eaBEe0f5Bb3E5ea8e291612B75C8748 |\n| ERC721CMInitializableV1_0_2 | 0x96e5Ed4446E7652C4306290099C6760fA2332EeC |\n| ERC1155MInitializableV1_0_2 | 0x3Cd56fB82B34Bf4AD8f94c29EeDDB7bC132E41De |\n| ERC721MagicDropCloneable    | 0xd929CE55a5Ea307FED843E145aFbcC261e2691d8 |\n| ERC1155MagicDropCloneable   | 0xDb56d1512C0E885B9b1Ddf704eA83C82654a5B61 |\n\n### Supported Chains\n\n- Ethereum\n- Polygon\n- Base\n- Sei\n- Arbitrum\n- Apechain\n- BSC\n- Abstract\n- Berachain\n- Monad Testnet\n- Avalanche\n\n## Using Foundry\n\n### Install Foundry\n\n```bash\ncurl -L https://foundry.paradigm.xyz | bash\nfoundryup\n```\n\n#### For Abstract, install Foundry ZKSync\n\n```bash\ncurl -L https://raw.githubusercontent.com/matter-labs/foundry-zksync/main/install-foundry-zksync | bash\nfoundryup-zksync\n```\n\n### Install Dependencies\n\n```bash\nforge install\n```\n\n### Build Contracts\n\nNote: For Abstract, use the `--zksync` flag.\n\n```bash\nforge build\n```\n\n### Run Tests\n\n```bash\nforge test\n```\n\n### Install CLI-Typescript\n\n```bash\nnpm run setup:magicdrop2\n```\n\n### Generate Coverage Report\n\nThis project includes a script to generate and view a test coverage report. The script is located at `test/generate-coverage-report.sh`.\n\n```bash\n./test/generate-coverage-report.sh\n```\n\n## Security\n\n- [ERC721M Kudelski Security Audit](./docs/AUDIT-PUBLIC-RELEASE-MagicEden-ERC721M1.pdf)\n\n### Bounty Program\n\n- HackerOne program: please contact https://magiceden.io/.well-known/security.txt\n- Please be noted that there are some prerequites need to be met and certain assumptions are made when using the contracts. Please check the [Contract Usage Guide](./docs/ContractUsageGuide.md) for more details.\n\n## Used By\n\n- [Magic Eden Launchpad](https://magiceden.io/launchpad/about)\n\n## License\n\nMIT © [MagicEden Open Source](https://github.com/magiceden-oss)\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\n[ci-shield]: https://img.shields.io/github/actions/workflow/status/magiceden-oss/erc721m/ci.yml?label=build\u0026style=for-the-badge\u0026branch=main\n[ci-url]: https://github.com/magiceden-oss/erc721m/actions/workflows/run_tests.yml\n[npm-shield]: https://img.shields.io/npm/v/@magiceden-oss/erc721m.svg?style=for-the-badge\n[npm-url]: https://www.npmjs.com/package/@magiceden-oss/erc721m\n[license-shield]: https://img.shields.io/badge/License-MIT-green.svg?style=for-the-badge\n[license-url]: https://github.com/magiceden-oss/erc721m/blob/main/LICENSE.txt\n[coverage-shield]: https://img.shields.io/codecov/c/gh/magicoss/erc721m?style=for-the-badge\n[coverage-url]: https://codecov.io/gh/magicoss/erc721m\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fme-foundation%2Fmagicdrop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fme-foundation%2Fmagicdrop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fme-foundation%2Fmagicdrop/lists"}