diff --git a/README.md b/README.md index cb86e3c..2e39a12 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # anotherblock anotherblock platform contracts -## collaboration workflow +## contribution workflow ### branches @@ -160,3 +160,23 @@ deploy standalone royalty contract for specific publisher ```sh forge script script/base/deploy-royalty.s.sol:DeployRoyalty --rpc-url base --sig "run(address)" --broadcast --verify ``` + +## contribute + +### creating new NFT minting mechanism + +in order for anyone to create new minting mechanism NFT contract compatible with anotherblock self-service platform, the contract must comply with below requirements : + +1. the new contract shall inherit the abstract contract [ERC721AB](src/token/ERC721/ERC721AB.sol) + +2. the new contract state shall include two constants, `IMPLEMENTATION_VERSION` & `IMPLEMENTATION_TYPE` + +3. the new contract shall include a function `initDrop` calling the internal function `_initDrop` and contain a minimum set of parameters : + + - amount of share per token + - amount of genesis token to be minted + - recipient address of the genesis token(s) + - currency used to pay-out royalties + - base URI + +4. the new contract shall include a custom mint function (see [ERC721ABLE](src/token//ERC721/ERC721ABLE.sol) for reference)