Discussion on ERC-7583 for Inscribing assets in smart contract

Hello everyone,

I’m excited to share with the community a proposal I’ve been working on, aimed at introducing a standard for enabling tokens to be traded both as fungible tokens and non-fungible tokens on the Ethereum. This initiative seeks to establish a unified approach to handling inscription assets on the Ethereum blockchain, enhancing consistency and interoperability of inscription assets across different applications and platforms.

Overview of the Proposal: This protocol represents the implementation of the BRC20 standard within the EVM. BRC20 enables FTs to be traded in the same manner as NFTs. And ERC-7583 not only facilitates the trading of FTs akin to NFTs but also allows for the binding of NFTs with FTs. This integration enables FTs within NFTs to participate in existing DeFi protocols, significantly enhancing the liquidity of NFTs.

You can find the detailed proposal here: ERC-7583 Inscription Standard in Smart Contracts

I believe this proposal can significantly contribute to the Ethereum ecosystem by providing a standardized way to handle inscription assets, which is currently lacking. It has the potential to open up new possibilities for developers and users alike.

Seeking Feedback: I would greatly appreciate any feedback, suggestions, or concerns you may have regarding this proposal. Your input is invaluable in refining and improving this EIP before moving forward.

Looking forward to an engaging and constructive discussion. Thank you for your time and consideration!


Why not upgrade directly on the basis of ERC-20?

Because inscriptions can be applied not just to ERC20 tokens, but they are capable of storing any type of data, including images (thus applicable to ERC721), HTML, and even binary files.


Is there any security concern compared to inscription on Calldata?

If you possess the similar understanding, I am thrilled, as it means we are kindred spirits. Cheer up, brother! This is an excellent platform where you can express your opinions. A market with immense potential awaits your exploration! :grinning:

You claim that you are the first inscription published on EVM. What is the truth?

We will see calldata limited in each block and pruned over time to address storage implications on scalability in the future phase “The Surge

I don’t want to discuss topics here that are not helpful to Ethereum.

1 Like

Hey is there a guide om how to inscribe f on etherscan?

What’s the mean of the “f”?

Oh sorry that was typo.
I believe I meant how do we convert the data to inscribe into a hash

It’s ok!
In various situations, inscribed data needs to be decode for displaying. So we just encode data to bytes and inscribe into smart contract. Sometimes, we also calculate the hash of the data before inscribing it, depending on the specific requirements of your project.

I think it would be better to add “from” and “to” addresses in this event, like event Inscribe(address from,address to, bytes data) This will be more convenient to descripe the owner exchange of this inscription.

Sir, a good idea is certainly important. Have you considered establishing a community belonging to INSC on DC or TG, so that more like-minded friends can join this discussion? This project is fantastic

By carrying the inscription through events in the EVM and making the inscription compatible with the EVM, will there still be the disadvantage of excessive gas cost? How to solve this?

1 Like

Indeed, the recording of inscribed transactions is missing. However, I believe that inscription event should be treated as a separate event, distinct from the transfer event.

How about this:

interface IERC7583 {
  event TransferIns(address indexed from, address indexed to, uint256 indexed id);
  event Inscribe(uint256 indexed id, bytes data);

Add a field id to inscriptions for enabling the mapping of the two events.

@apechef Thank you for your input!

  1. The unique id has already been memtioned here.
  2. And it is a good practical solution for setting a max size of inscribed data! What do you think is the best practice for setting a max limit data size?
  3. I think the off chain could also be stored in ‘Inscribe’ event.

@apechef Currently, inscriptions are operating within smart contracts on the EVM. For important data like the owner, how about using the storage variables of the smart contract to store it? e.g.

function ownerOf(uint256 insId) external view returns (address owner);

@apechef I am also considering this point at the moment. If ERC7583 is intended to include transaction-related specifications, positioning it as an extension of ERC721 seems like an ideal choice. In this way, ERC7583 can serve as an alternative to ERC721Metadata. However, this approach also brings certain limitations. Treating ERC7583 solely as an extension of ERC721 may restrict its scalability in broader application scenarios, as not all types of inscriptions need to strictly follow the transaction specifications of ERC721. I look forward to your insights on this issue! :grinning:

if you have other ideas about dynamic hashes or similar to add layers of security?

Currently, most users, when inscribing, tend to use a string of characters as input, such as: data:,{"p":"brc-20","op":"mint","tick":"ordi","amt":"10"}. In designing the experimental contract $INSC, to accommodate users’ inscription habits, we provided an entry parameter for users to input their inscription data. However, for this type of simple inscriptive data with rules, it can be entirely generated by the smart contract, and users only need to provide simple parameters, like the quantity to be minted.

In fact, at the content level, we do not need to restrict the hash of the inscription data. As a decentralized application, everyone has the right to inscribe any content. The form of data is only related to the consensus of the community.

Metadata Schema

Added Metadata Schema for FT (Fungible Tokens) and NFT (Non-Fungible Tokens) in Add ERC: Inscription In Smart Contract by shalom-ins · Pull Request #173 · ethereum/ERCs · GitHub. looking forward to receiving suggestions :grinning:

The Ordinals protocol provides a great solution - Recursion.

Hey brother the ins20 twitter account has been very quiet lately. Are there any plans, or announcements coming for the community? Will there be more engagement with the community in the future? Leaving the project in suspense for days at a time doesn’t help much.

1 Like

The best community is right here! :hugs: :hugs: :hugs:

1 Like

Bro, this is the best community right here, and I will encourage everyone to engage in discussions here :hugs: :hugs: :hugs:

1 Like