I think this is great! But it may have a bunch of issues.
-
Assumption that an NFT sale happens ‘over time’ is kinda hopeful, this has to handle every single NFT being sold in a minute flat.
-
If tx is user-initiated, users can cancel a mint and get a different nft by re-spending their input
-
If the first P2PK found in mint chain is a box originating from the buyer, they’re the mint address. With the collection EIP this could be mitigated, but imo it’s gonna cause issues with the existing ‘mint address is the authenticity prover’ method
I suppose you can avoid this by the first input into minting tx being the mint box, BUT that presents another issue, described below. -
Currently the mint address is first P2PK addr found in the chain of boxes which led to the nft mint issuance.
In this model, you would send some erg from a P2PK to form the contract’s box. The first mint would be done by spending this box, creating an NFT and a new, second mintSaleBox.
Finding the mint address for nft 1 is just checking the tx which issued the mintSaleBox, then checking each input box, and you have the mint addr. 1 api call.
For nft 2, you have to check the tx issuing mintSaleBox2, check input (mintSaleBox1) check tx that issued, check input boxes addresses, you’re at mint address. (2 api calls)
For nft 1000, you’d be performing 1000 API calls to find a mint address - a nightmare for apps to cope with.