Solv Documentation
Search…
⌃K

Core Mechanisms

As is described in EIP-3525, the Semi-fungible token inherits ERC-721’s core structure: _tokenID and metadata extension. It also adopts the standard quantitative attribute _value and 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 balanceOf() / _value mechanism. 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)-to-token(_tokenID) transfer, or quantitative operations for SFTs, implemented by function transferFrom(uint256_fromTokenID, uint256_toTokenID, uint256_value) external payable and function safeTransferFrom(uint256_fromTokenID, uint256_toTokenID, uint256_value, bytes calldata _data) external payable. This means that ERC-3525 tokens that share the same _slot are 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.