For EIP-4973, if we introduced a function mintWithPermission(/*msg.sender*/uint256 tokenId, uint256 deadline, bytes memory signature)
(where address receiver
would have to be the msg.sender
) this would allow for a very interesting mechanic where:
- account-bound tokens could at first be minted purely offline by the issuer sending a permission signature and the metadata to an ABT receiver.
- and then the ABT receiver (in case they need the ABT on-chain), to “lazy-mint” the token with permission of the issuer to their account using EIP-4494.
It’d solve one problem elegantly which Twitter and others in the space like https://erc1238.notion.site/ (see section on “Consent”, actually they implement a variant of EIP-712) have talked about:
- By default NOT putting any credential immediately on-chain. But only those that the user deems necessary to put on-chain.
- Minting only towards an account if a mutual agreement between two accounts can be representatively sent to the Ethereum signature validation mechanism aka PoW consensus.