> _This is Beta Version. I'll be adding more shortly. You may also suggest changes by forking this repo, creating a pull request, or opening an issue. ERC-721Ash is based on ERC-721A; [please refer to the documentation for more details.](https://chiru-labs.github.io/ERC721A/#/erc721a)_ ## About The Project ERC-721Ash is an improved implementation of the IERC721 standard that supports trading tokens for a charged royalty fee. Here's why: * Fighting Against the zero royalty fee NFT marketplace, such as X2Y2 * Disruptive Innovation - Revenue Stream, Controlled Liquidity, Etc * Etc. ## ERC-721Ash v.s. [ERC-2981](https://eips.ethereum.org/EIPS/eip-2981) ## Getting Started ### Clone the repo ```sh git clone https://github.com/ERC721Ash/ERC721Ash.git ``` ### Usage ```solidity pragma solidity >= 0.8.9 < 0.9.0; import "ERC721Ash/contracts/ERC721Ash.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; contract Example is Ownable, ERC721Ash { address devAddr; constructor() ERC721Ash("Example", "EXP") { devAddr = msg.sender; } function mint(uint256 quantity) external payable { // `_mint`'s second argument now takes in a `quantity`, not a `tokenId`. _mint(msg.sender, quantity); } function purchaseTicket(uint256 quantity) external payable { require(quantity > 0, "Cannot buy 0 tickets"); require(_ticketPrice > 0, "Ticket price is not set"); require(_ticketPrice * quantity <= msg.value, "Not enough Ether to buy tickets"); (bool purchaseSuccess, ) = devAddr.call{value: msg.value}(""); require(purchaseSuccess, "Purchase failed"); _purchaseTicket(quantity); } function setupTicketPrice(uint256 ticketPriceWei) public onlyOwner { _ticketPrice = ticketPriceWei; } } ``` ## Usage Example Please refer to [example contract](https://github.com/ERC721Ash/ERC721Ash/tree/main/example). ## Roadmap - [x] Release Beta Version - [x] Testing Stages - [ ] Release Alpha Version - [ ] Improve general repo and code quality (workflows, comments, etc.) - [ ] Add more documentation on benefits of using ERC721Ash - [ ] Maintain full test coverage - [ ] Apply for EIP standard - [ ] Documentation - [x] English - [ ] Chinese - [ ] Japanese - [ ] Others ## Contributing Contributions make the open-source community a fantastic place to learn, inspire, and create. Any contributions you make are **greatly appreciated**. If you have a suggestion to improve this, please fork the repo and create a pull request. You can also open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again! 1. Fork the Project 2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) 3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) 4. Push to the Branch (`git push origin feature/AmazingFeature`) 5. Open a Pull Request ## License Distributed under the MIT License. See `LICENSE` for more information. ## Contact Darren K.J. Chen | E-mail: kjchen@protonmail.ch
Project Link: [https://github.com/ERC721Ash/ERC721Ash](https://github.com/ERC721Ash/ERC721Ash) [contributors-shield]: https://img.shields.io/github/contributors/othneildrew/Best-README-Template.svg?style=for-the-badge [contributors-url]: https://github.com/othneildrew/Best-README-Template/graphs/contributors [forks-shield]: https://img.shields.io/github/forks/othneildrew/Best-README-Template.svg?style=for-the-badge [forks-url]: https://github.com/othneildrew/Best-README-Template/network/members [stars-shield]: https://img.shields.io/github/stars/othneildrew/Best-README-Template.svg?style=for-the-badge [stars-url]: https://github.com/othneildrew/Best-README-Template/stargazers [issues-shield]: https://img.shields.io/github/issues/othneildrew/Best-README-Template.svg?style=for-the-badge [issues-url]: https://github.com/othneildrew/Best-README-Template/issues [license-shield]: https://img.shields.io/github/license/othneildrew/Best-README-Template.svg?style=for-the-badge [license-url]: https://github.com/ERC721Ash/ERC721Ash/blob/main/LICENSE [linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555 [linkedin-url]: https://linkedin.com/in/othneildrew [product-screenshot]: images/screenshot.png [Next.js]: https://img.shields.io/badge/next.js-000000?style=for-the-badge&logo=nextdotjs&logoColor=white [Next-url]: https://nextjs.org/ [React.js]: https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB [React-url]: https://reactjs.org/ [Vue.js]: https://img.shields.io/badge/Vue.js-35495E?style=for-the-badge&logo=vuedotjs&logoColor=4FC08D [Vue-url]: https://vuejs.org/ [Angular.io]: https://img.shields.io/badge/Angular-DD0031?style=for-the-badge&logo=angular&logoColor=white [Angular-url]: https://angular.io/ [Svelte.dev]: https://img.shields.io/badge/Svelte-4A4A55?style=for-the-badge&logo=svelte&logoColor=FF3E00 [Svelte-url]: https://svelte.dev/ [Laravel.com]: https://img.shields.io/badge/Laravel-FF2D20?style=for-the-badge&logo=laravel&logoColor=white [Laravel-url]: https://laravel.com [Bootstrap.com]: https://img.shields.io/badge/Bootstrap-563D7C?style=for-the-badge&logo=bootstrap&logoColor=white [Bootstrap-url]: https://getbootstrap.com [JQuery.com]: https://img.shields.io/badge/jQuery-0769AD?style=for-the-badge&logo=jquery&logoColor=white [JQuery-url]: https://jquery.com # Lib721