tokenIdof ERC-3525 is equivalent to the
tokenIDin ERC-721 that reflects the non-fungible aspect of digital assets. Both are defined as the same in the value type of uint 256, that is unsigned integers in the size of 256 bits in Solidity.
slotis a new parameter, and its value now is implemented by hashing its underlying properties as an abstraction, with the value type of uint 256 in Solidity.
slotvalue. As long as different slots have different values, there could be different solutions.
unitsrepresenting amounts for an ERC-3525 token, with the value type of uint 256 in Solidity. Each “units” attribute is comparable to the “balance” attribute in ERC-20, and transferring any amount of
unitsto others is like transferring the
balanceof an ERC-20 token.
decimals()in ERC-20, the value of
unitDecimalsin ERC3525 also defines the decimal point of the
units, with the value type of uint 8.
slotparameter, and values of these properties may be strings, numbers, object or arrays.
slotvalues are non-fungible, and tokens with the same
slotvalue are fungible with each other (as the same category).
slot), amounts (defined as
units) make meanings for the underlying NFTs. One token can be split into several tokens as subtractions, with the sum of their
unitsequal to the original
units. And several tokens with the same
slotcan be merged together as additions, with
unitsof the new token equal to the sum of all
unitsof the merged tokens.
getslot(). Take Vesting Voucher for an example, the code works as follows:
claimType_represents a certain release rule that is configured for a Vesting Voucher: 0 is linear release, 1 is one-time release, and 2 is staged release.
percentages_represent the specific configurations for the release rule of this Vesting Voucher.
term_is 0; the value of its
maturities_is the specific timestamp when the underlying assets of this Vesting Voucher are to be released, let’s say
2029-01-04T02:15(UTC); and the value of its
percentages_represents the specific percentage of the underlying assets to be released at the
maturities_time, in this case, the percentage is 100%.
term_represents the vesting period for the underlying assets of this Vesting Voucher, let’s say 30 days; the value of its
maturities_is the specific timestamp when underlying assets are to be totally released, it could be calculated by the vesting period and the start time configured for this release rule, like
2028-12-05T02:15(UTC); and the value of its
percentages_also represents the percentage of the underlying assets to be totally released - 100%, and during this vesting period, these assets will be released linearly by the second (Release Volume per second = Total Volume / Release Period / 86400).
term_also represents the vesting period from the release time of the first stage to the release time of the final stage; then values of its
maturities_are these 4 specific timestamps for the time when underlying assets are to be released, like
2029-01-04T02:15(UTC); and values of its
percentages_represent corresponding percentages of the underlying assets to be released at each timestamp, in this case, they are 10% at
2028-10-31T02:15(UTC), 20% at
2028-11-11T02:15(UTC), 30% at
2028-12-25T02:15(UTC), and 40% at
slotmetadata, we will create different types of vouchers, thus bringing a lot more Financial NFTs to the decentralized world.