-
Notifications
You must be signed in to change notification settings - Fork 3
Description
Because the current, as i call it "raw", feels like "outside of the protocol". It's just a transaction hash in calldata. While it's simple and elegant, it's an absolute nightmare and worst thing of the whole protocol. You simply cannot, easily, back track the full transfer history of a given ethscription without depending on an API (on a given indexer directly).
You can see an ethscription contents and metadata, by simply asking the blockchain, but you cannot for the transfers history - the most crucial and important thing.
It bugs me since the beginning. And i think we talked about that in the discord.
We can use something like URI params. Both transfers will remain, better ban the original one tho but yeah.. if apps and services just start using the new one, thing will gradually migrate and be more easily trackable.
Something like
data:;transfer=true,<transaction_hash_without_0x>
This may seem simple, but over time it would simplify the things a lot. The way to create is basically replacing the 0x of a transaction hash with the hex of data:;transfer=true, eg prepending it.
Like so
0x
# data:;transfer=true,
646174613a3b7472616e736665723d747275652c
# ethscription/transaction hash
2bb9192fadf41cde7d50a96c4f1b7e6b7cab518cbc45aee4a9de732b535f221f
Not to mention that we definitely need separate endpoint for transfers history and make the main ethscription endpoint a static cached one - no current_owner, no content_uri, no previous_owner, and no transfers.
In an Etherscan-style app, what i plan for the WGW v2, we don't even need an indexer or hosting anything, or making requests to the official API -- no dependence on anything but the blockchain. I can just get the transaction hash and decode it and visualize it however i want. The only minus of that is i cannot show the transfers history on an ethscription page. I could use the api, which will respond me with a needlessly huge json blob cuz it also includes the content as base64. Think about bandwidth waste and snappiness of opening pages, eventho the api responses are cached.
Kinda related is the #9 ESIP-5 and #20 ESIP-11.
Or another approach is the Facet-style with single-address, all transfers to happen through single address. Tho that will require to add the receiver to the calldata which kinda increases the cost a little bit but still.. having a single point of truth for all ethscriptions transfers history is huge plus.
In both cases, it can fallback to the official API.