Here are a few thoughts on why I don’t necessarily think we need to have setter/getters for authors:
- When it comes to provenance, in the most practical sense, I don’t believe the “author” necessarily changes. The author is the creator of the piece. I understand getters/setters for the provenance of specific tokens, that’s what 721 is, but even then, there’s no record-keeping of the chain of ownership other than through emitted events (the same approach ERC-7051 takes).
- The current specification for ERC-7050 is easily spoofable, there’s no method for verifying a certain
wallet-x
is the true creator of a token, one can easily create a getter method that returnswallet-x.eth
as the creator. To truly verify thatwallet-x.eth
is the creator, you would need to inspect all transactions submitted to the contract and verify that indeedwallet-x.eth
calledverifyTokenProvenance
. One needs to trust the NFT contract is not behaving maliciously. ERC-7051 uses signatures to validate ownership, it makes for a better UX (the creator doesn’t need to own any ETH), since the transaction can be submitted and anyone can verify the authorship. That’s why the signature is emitted in the event. - Storing signatures on-chain is expensive, and to have a getter/setter that can be truly verified, we’d need to store signatures onchain and return them along with the provenance-token-info (more like ERC-5375 in terms of interface, the specification stores data offchain). Something I don’t think it’s truly necessary. Curious why the need to be able to query for token provenance offchain? I see a potential argument to be able to do it onchain (say from a different contract) for composibility or redirecting funds, but I think a better approach would be to use some sort of splitter contract. But when it comes to querying it from offchain, we could just look at the events emitted previously. ERC-7015 doesn’t specify change of “authorship” as per my first point above.
- I can see the need for multiple authors, ERC-7015 does specify a way to attribute authorship to multiple wallets, however, it doesn’t specify
tokenIds
. This is something I’m still considering but I think it would make a good addition. I will follow up with some changes regarding this.