Title: ERC_7628_ERC_721_Ownership_Shares_Extension
Category: ERCs

Author: bizliaoyuan
Date: 2024-02-17T14:33:30.321Z

https://github.com/ethereum/ERCs/pull/266
Abstract
This extension defines an interface that adds balance functionalities to ERC-721 tokens, enabling functions and events for balance querying, transfer, and approval akin to ERC-20 tokens.
Motivation
Some NFTs require defining shares of a corresponding right for each token, such as ownership stakes in a company. Each token holder can be considered a shareholder of this right and they wish to be able to conveniently query and trade these shares. However, the current ERC-721 standard lacks built-in support for token balances, leading to difficulties and limitations in managing and trading these rights. By introducing balance functionalities akin to ERC-20, we can provide a universal solution for ERC-721 tokens, enabling holders to easily query and trade their corresponding shares of rights, thereby fostering broader adoption and circulation of NFTs.

Author: Mani-T
Date: 2024-02-19T05:58:06.522Z

Impressive. Implementing access control through smart contracts on the blockchain ensures decentralized and tamper-resistant authorization, reducing reliance on centralized entities and mitigating single points of failure.

Author: Swader
Date: 2024-03-02T15:51:01.372Z

Why is this needed when 1155, 6551, and 7590 already exist? What problem does it solve that those do not?

Author: bizliaoyuan
Date: 2024-03-06T17:56:02.477Z

I have renamed the proposal to ‘ERC-721 Ownership Shares Extension’, which better aligns with the motivation.
The proposal aims to find a middle ground between ERC-721 and ERC-1155. While ERC-1155 can represent the share of an asset held by a particular address, tokens lack uniqueness. On the other hand, ERC-721 provides uniqueness for each token, but they lack attributes to represent the share of an asset.
Both 6551 and 7590 are mapped to other token assets. I think it would be more straightforward to simply add an additional attribute.

Author: SamWilsn
Date: 2025-02-04T16:13:19.265Z

Couple of non-editorial points I want to address before moving this into last call. First, @Swader 's comment needs some more discussion. Why introduce an entire new standard when you can encode the exact same information in ERC-1155 and have better wallet support?
You say ERC-1155 tokens lack uniqueness, but you can represent an NFT as a token-id with a total supply of one, and its shares as a separate token-id with multiple shares.
ERC-7628 is less general purpose than ERC-1155 and requires even more work in wallets to properly support. Instead of building a new token system from scratch, I’d recommend a much simpler extension to ERC-1155:
interface ERC1155OwnershipShares /* is ERC1155 */ {
    function sharesOf(uint256 tokenId) public view returns (uint256 nftTokenId);
}

Given a fungible token id, sharesOf would return the token id of the NFT that is fractionally owned.

The other question I’d like to ask is why totalShares returns the total number of shares across all NFTs? That doesn’t seem like a particularly useful number. Wouldn’t it make more sense to return the total number of shares for a particular NFT?

Author: SamWilsn
Date: 2025-02-04T16:25:11.826Z

https://github.com/ethereum/ERCs/pull/793 seems vaguely similar to this proposal. Might be a potential area for collaboration?

Author: parseb
Date: 2025-02-19T17:52:43.976Z

The id space of ERC-3525: Semi-Fungible Token can be used to achieve that behavior.
Good idea, best today as an OZ/solmate extension.