As is described in EIP-3525, the Semi-fungible token inherits ERC-721’s core structure:
_tokenIDand metadata extension. It also adopts the standard quantitative attribute
_valueand extends it with a categorizing attribute
_slot(along with Slot Metadata to implement the categorizing function of
_slot.) This enables quantitative operations for SFTs through the utilization of the standard
_valuemechanism. The new data structure within the ERC-3525 is defined as an <
ID, SLOT, VALUE> Triple Scalar Model.
Another major innovation of the Semi-fungible token is its new token transfer model: the token(
_tokenID) transfer, or quantitative operations for SFTs, implemented by
(uint256_fromTokenID, uint256_toTokenID, uint256_value)
(uint256_fromTokenID, uint256_toTokenID, uint256_value, bytes calldata _data)
external payable.This means that ERC-3525 tokens that share the same
_slotare fungible to each other, and that one ERC-3525 token(
_tokenID) may be transferred to another token, rather than another address. The feature marks the first time in history that an Ethereum token has gained equal status as users (externally owned accounts, or EOA) or smart contracts (contract accounts).
Read the next few sections for details.