-
Notifications
You must be signed in to change notification settings - Fork 3
Description
We can introduce event ethscriptions_protocol_CreateEthscriptionFrom(initialOwner, dataURI) or similarly named event for contract initiated creations.
Currently with ESIP-3, the creator is always the contract address, eg. the transaction.to.
The purpose of this proposal is to have a similar event to ESIP-3, but where the indexer sets the creator as the transaction.from - the caller of method which emits that event.
I need that ASAP and would be good to have it.
The idea is that i'm building on top of Ethcriptions, but solely as a storage layer ONLY. Minters of that new thing will be able to trade and track ownership through EVM contract, because from Ethscriptions protocol perspective they never own it and the ownership never changes - it's always the contract that created/minted the thing. Currently, with ESIP-3 they are not able to even be respected as "creators" of the underlying Ethscription because there's no such creation and support in the protocol.
With the introducion of this new type of creation, user would at least be made "creators" of the underlying Ethscription when they mint that new thing/collection. With this event, they will be the creators and the minter contract will be the initial owner.
I'm back on working on a sick collection that uses esip3, but i need ONLY the contract to be the initial owner not the creator, cuz i need to "freeze" the ethscription transfers (by making the contract the initial owner and never actually use Ethscription Transfers, thus the contract is the forever currentOwner), eg. it won't allow transferring but would have a built-in market, dao and treasury. Solely using Ethscriptions as just storage. But would be nice the actual creators, the minters, the be respected on Ethscriptions protocol level as creators, cuz they really are - they are the callers of the method (mint) that creates that asset.
When people mint, an ethscription will be created but currently with ESIP-3 that ethscription would have the contract address as both creator and initial owner.
The needed update is in https://github.com/ethscriptions-protocol/ethscriptions-indexer/blob/75b3bcb15e75bfbe96892c8cfe94aa195de8cf80/app/models/eth_transaction.rb#L148C20-L148C34
- if
event == esip25 ? transaction.from : creation_event["address"]:D
Other way would be the API to expose the actual from (msgSender or txOrigin or txCreator) of the contract-initiated creation transaction. Currently with esip3, the creator is always the contract.
For the meme, we can call it CREATE2 even though it's nothing to do with it π
edits:
Even if not my current case (i have a lot, I've been thinking about such creation for over a year), it's still useful and helpful, because contracts may choose to ethscribe something for users, but be in control of that item/ethscription from the start. Eg, it's saving users an additional "deposit transaction".
Opens the doors to use Ethscriptions as storage even for NFTs. They currently could still be, but.. a bit trickier and an additional transfer.
Another use-case is "contract created collections". Early on, even before ESIP-3, we came up to that that "collection means, items with same creator", so you can search by creator for all collection items.
With this, we'd be able to define who is for example the "project creator" (an EOA for example), or royalties receiver, not necessarily the contract he deployed for his colldction.