Most of the NFTs collections that launch today host primary mint on their website first, and then secondary trading happen on marketplaces. While the latter is straightforward – send ETH from user1 to user2, call safeTransferFrom
; the former is very different from project to project.
The proposal is to form a standard interface for public minting a collection. This could open rooms for bots, trading strategies, cross-chain integrations etc. Even marketplaces could add a button to a collection page that says “Mint primary”!
The simplest interface could look like:
interface NFTPublicMint {
function mint(uint256 quantity, bytes data) payable;
function mint(uint256 quantity, address to, bytes data) payable;
function totalSupply() returns (uint256);
function getPrice() returns (uint256);
}
The objections to this implementation include:
- lacking tokenURI, royaltyRecipient etc
- not possible to use in situations where more granular control is required (dutch auction, merkle-tree whitelist)
In Buildship, I am already working on a MetaverseNFT
reference implementation + Factory pattern to deploy cheap copies of self-owned 10k+ collections. While I won’t benefit from this standard much, I am in a position to implement it for all of our creators.
I will invite some stakeholders that I have in mind to post their usecase in the thread.
P.S. See the initial discussion here in NFT Standards ring: Telegram