Solv Documentation
Search…
⌃K

Slot Metadata

Slot metadata describes the details of the abstracted properties that are hashed as the value of the _slot attribute. The value of these properties may be strings, numbers, objects, or arrays. Slot metadata can implement various classifications to describe complex DeFi assets. Here’s the JSON schema of slot metadata:
{ "title": "Slot Metadata", "type": "object", "properties": { "name": { "type": "string", "description": "Identifies the asset category to which this slot represents" }, "description": { "type": "string", "description": "Describes the asset category to which this slot represents" }, "image": { "type": "string", "description": "Optional. Either a base64 encoded imgae data or a URI pointing to a resource with mime type image/* representing the asset category to which this slot represents." }, "properties": { "type": "array", "description": "Each item of `properties` SHOULD be organized in object format, including name, description, value, order (optional), display_type (optional), etc." "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of this property." }, "description": { "type": "string", "description": "Describes this property." } "value": { "description": "The value of this property, which may be a string or a number." }, "is_intrinsic": { "type": "boolean", "description": "According to the definition of `slot`, one of the best practice to generate the value of a slot is utilizing the `keccak256` algorithm to calculate the hash value of multi properties. In this scenario, the `properties` field should contain all the properties that are used to calculate the value of `slot`, and if a property is used in the calculation, is_intrinsic must be TRUE."
}, "order": { "type": "integer", "description": "Optional, related to the value of is_intrinsic. If is_intrinsic is TRUE, it must be the order of this property appeared in the calculation method of the slot." }, "display_type": { "type": "string", "description": "Optional. Specifies in what form this property should be displayed." } } } } } }
To further illustrate the concept of semi-fungible-ness, let’s think for a second about the PhyloCode, a rule system governing the naming of taxa in biology. Take apples, for example. Under the phylogenetic classifications such as M. domestica species, malus genus, Rosaceae Family, or Eukarya Domain, all apples could be treated as indistinguishable or “fungible.” Inspecting individual apples, however, we start to find discrepancies in secondary properties like size, shape, color, acidity, etc. It’s these qualities that make apples non-fungible. PhyloCode may deem these qualities negligible for scientific taxonomy, but it’s exactly these qualities that dictate most, if not all, of our day-to-day shopping decisions. RWAs (real-world assets) are fungible in a given category (e.g., real estate property) but non-fungible when taking into account certain secondary qualities (e.g. location).
Returning to ERC-3525, slot metadata enables secondary-quality nuances so that tokens with different _slots are non-fungible, and those with the same _slot value are fungible. The slot metadata is what gives the token fluidity in fungibility.
_slot also affects how _value works: All the SFTs fractionalized from the original SFT can be merged through simple arithmetic addition (or subtraction, if splitting) of their _values.