The Clover.Protocols
  • The Clover.Protocols
    • Introduction to the Clover.Protocols
    • Governance for Social Organizations
    • Associating Assets with Social Interactions
    • Digital Social Assets
    • Organizational Transparency and Trust
  • Key Concepts
    • Social Organization
    • Social Infrastructure Layer
    • Sovereign DAO
    • Social Scenario
    • Social Element
    • SEI: Social Element Identifier
    • Digital Social Asset
    • Universal Tags
    • Social Index Service
    • Validation of Agent and Platform Certificates and Signatures
    • Audit Standards for Social Smart Contracts
Powered by GitBook
On this page
  • Overview
  • The Social Asset
  • Structure
  • Essential Information
  • Name and Description
  • Type
  • Preview Image
  • Entity
  • Traits
  • Rarity
  • Source
  • Asset Set
  • Token Data
  • Capabilities
  • Case Study: AI Character
  • Credits
  • Example
  1. The Clover.Protocols

Digital Social Assets

PreviousAssociating Assets with Social InteractionsNextOrganizational Transparency and Trust

Last updated 6 months ago

Overview

Social elements like profile pictures and profile frames play a crucial role in users' online identities and their interactions on social platforms. As the emergence of Web3 technology has allowed us a new understanding of tokenized digital assets and is changing our perception of digital asset engagement, there has been a push to turn social elements into digital social assets. However, despite their potential, social assets face numerous challenges within the current digital ecosystem:

  • Interoperability Issues: Siloed platforms hinder the seamless transfer and integration of social assets across different digital environments. This fragmentation restricts users' ability to leverage their assets effectively.

  • Unclear Capabilities: The functionalities or properties of a digital asset are embedded within that asset, which may hold significant value but may not be immediately apparent.

  • Trust and Verification: Authenticity and trustworthiness are crucial in the digital realm. However, centralized platforms struggle to combat issues such as fake news, fraudulent accounts, and manipulated content, undermining the credibility of social assets and social elements.

To tackle these challenges, we introduce a standardized protocol to represent a social asset.

The Social Asset

In our protocols, a consists of three parts:

  1. The tangible resource files that implement the asset, i.e., JPEG image files, MP4 video files, GLTF 3D model files, etc.

  2. A piece of information that describes what the asset is, how it can be used, and who the owner is. We call this information metadata.

  3. Information that guides the blockchain transaction flow. This information must be stored on the blockchain and is called token data. On an EVM, a smart contract may read token data to decide who can operate or how to operate on a social asset. This same rule applies to protocol executors on BTC.

A social asset is associated with a blockchain token as depicted in the diagram below. The token can either be an inscription on BTC or an NFT on an EVM-compatible smart contract.

Metadata and resource files can either be on-chain or off-chain. The protocol is blockchain-agnostic and does not stipulate for this matter. If they are stored off-chain, a proper hash function (like SHA256) needs to exist to ensure the immutability of off-chain data.

Structure

These capabilities may include:

  1. AI Characters / AI Chatbot;

  2. AI Assistants;

  3. Profile Pictures;

  4. Profile Frames;

  5. Badges;

  6. Chat Bubbles;

  7. Readable Content like Storyboards, Books, etc.

Each capability can have multiple additional properties that describe its capability. These additional properties are given by the capability provider. Take an AI Character, for example. The name and description are essential fields that must be included, but an editable field with structured dialogue examples or other text content may also be provided. This field then helps to shape the personality of the character.

All the above data blocks are integrated into the digital description of a digital asset, while the asset's resource files may be integrated separately. This description of information is called metadata and is written in a JSON format we define in this protocol. The table below lists all possible values (fields with an asterisk are required):

Field
Type
Description

name | title*

string

type*

integer

description

string

Description of the asset

image | preview*

file

youtube

string

Promotional YouTube URL

set

string

background

string

Background color for the preview

attributes | properties

array

id*

integer

The blockchain ID. If the asset is an NFT, then id is the NFT id. If the asset is an inscription, then id is the inscription id.

entity*

file

rarity

integer

contract | p

string

localization

dictionary

How to localize any text field.

capabilities

array

credits

array

The data type file is a special kind of dictionary that represents an embedded file or a referenced file:

Field
Type
Description

mimetype*

string

File type

bytes

string

base64 encoded string of the file buffer

url

string

The file reference. An off-chain http/ftp url or an on-chain content/{inscription_id} uri

hash

string

Hex string of the file's SHA256 hash

bytes and url are mutually exclusive, but one is required. They respectively represent an embedded file or a referenced file. When url references an off-chain file, a hash must also be provided.

Token data is specific to the protocol or contract specified by the contract or p field. The Token data is formatted and interpreted by the protocol or contract that deployed the social asset. The token data consists of these fields:

Field
Type
Description

price

string

The royalty fee to be paid to the minter in BTC

max

string

Maximum allowed mint number

op

string

Operation: Type of event (Deploy)

mapping(uint256 tokenId => address) private _tokenApprovals;
mapping(address owner => mapping(address operator => bool)) private _operatorApprovals;

The difference between token data and metadata lies in the difference between its on-chain or off-chain storage and in its mutability or immutability. Token data is mutable when needed.

Essential Information

The essential information of an asset includes its name, comprehensive description, preview that is able to be showcased across different platforms, traits, and most importantly, an entity file that represents the asset.

Name and Description

The description provides more information about the asset. It is a markdown-compatible string in which rich format is supported.

Type

The type field indicates a social asset's intrinsic type or use, which could be:

ID
Type

1

Collectibles

2

Artwork

3

Event Tickets

4

Memberships

5

Music and Media

6

Gaming

7

Real-world Assets

8

Domain Names

9

Miscellaneous

Preview Image

A preview image ensures an eye-catching display of the social asset. Different platforms or applications can retrieve this field to display the asset in their catalog.

Entity

The entity is the core element of any social asset and is meant to be displayed. It provides a visible representation of the asset and should be displayed in high definition.

Traits

Given by the field named attributes or properties, traits allow users to define custom properties for an asset.

Rarity

The rarity field provides an opportunity for users to specify how rare the asset is.

Rarity
Description

Common

Level One

Uncommon

Level Two

Rare

Level Three

Epic

Level Four

Legendary

Level Five

Source

The source, given by contract or p, indicates the origin of this asset. For an NFT, contract must be specified as it is the address of the smart contract. For general inscriptions, p is optional and is used to indicate the protocol to which it conforms.

Asset Set

When an asset is assigned to a specific set, set is used to specify the unique set ID.

Token Data

The flexibility of token data enables unlimited blockchain applications, whether on BTC or EVM. For example, a social organization may grant a badge to a member to represent his or her contribution to the organization but not permit the badge owner to transfer that badge to someone else or sell it unless permitted by an administrator. This badge is a social asset now owned by the recipient but unable to be transferred. To implement this constraint, we use token data to represent any limitations of the specific token:

mapping(uint256 tokenId => bool) private _tokenNeedsPermission;

Capabilities

By drawing a distinction between the essential information and the capabilities of digital social assets, stakeholders can better understand their value proposition, design innovative applications, and harness their potential to create meaningful experiences and interactions in the digital realm.

We use an array field in an asset's metadata to explicitly list out all capabilities the asset supports. Each element of the array is a dictionary containing, at minimum, the following fields:

Field
Type
Description

type*

integer

Type ID of the capability

id

string

The identity of the capability

name*

string

preview*

file

resource

file

The file that implements the capability

The type field can have the following values:

ID
Type

1

AI Character

2

Profile Picture

3

Profile Frame

4

Chat Bubble

5

Sticker Pack

6

Background

7

Readable

8

Charm Points Booster

A social asset can have zero, one, or multiple capabilities. Certain capabilities may have an allowance for extra fields than the essential fields provide in order to provide more information about the capability.

Case Study: AI Character

An AI Character that is able to chat with or assist its owner is one of the most important capabilities that a social asset can have. The AI Character capability consists of additional fields as follows:

Field
Type
Description

greeting

string

The initial message your character uses when starting a dialogue.

avatar*

file

An avatar image that enhances the visual appeal and individuality of your character.

categories*

string

Some descriptors or tags relevant to this Character

imageGen

boolean

Would you like this Character to produce images alongside text in conversation?

personality

string

The file that implements the capability, an expansive, unrestricted field capable of accommodating structured sample dialogues or any textual material.

Credits

The credits field covers all stakeholders and the roles they play. It is an array where each element has these fields:

Field
Type
Description

certificate

file

A digital certificate

commonname

string

Common name (CN) of the certificate

address

string

Wallet address of the stakeholder

price

string

Royalty for the stakeholder when the asset is recursively re-created.

role*

string

The role that the stakeholder plays

seis

array

An SEI list that represents the web2 accounts of the stakeholders across multiple social platforms.

sigcert

string

Metadata signature using the corresponding private key of the certificate

sigaddr

string

Metadata signature using the corresponding private key of the address

A stakeholder can be either:

  1. An actual human whose identity is verified by certificate and commonname.

  2. A blockchain wallet address indicated by address.

Although they are both optional fields, one of the two must exist. All stakeholders should use their corresponding private key to sign the entire metadata (excluding the signature itself) and store it in the sigcert or sigaddr fields.

This standard does not specify what values the role field could take; the role name or value may be determined by each application.

The price field specifies how much royalty the stakeholder receives when an asset is recursively minted. This protocol supports any single asset having multiple royalty receivers, who can each receive different royalties.

Example

{
    "name": "Champion #456",
    "type": "1",
    "description": "Prime Eternals are a special tier of Champions that are only issued at a Prime Drop. There are only 7,622 of them, and this special tier of Champions will never be issued again.",
    "attributes": [
        {
            "display_type": "ranking",
            "max_value": 5,
            "trait_type": "Divine Parts",
            "value": 2
        },
        {
            "display_type": "number",
            "max_value": 5,
            "trait_type": "Purity",
            "value": "1"
        }
    ],
    "rarity": "Epic",
    "background": "ffffff",
    "image": {"url": "https://um.clover.space/nft/asset/456.gif", "mimetype": "image/gif"},
    "entity": {"url": "https://um.clover.space/nft/asset/abc.gltf", "mimetype": "imodel/gltf-binary"},
    "capabilities": [
        {
            "type": 2,
            "id": 1234,
            "name": "Unicorn",
            "preview": {"url": "https://um.clover.space/pf/1234.gif", "image/gif"},
            "resource": {"url": "https://um.clover.space/pf/1234", "image/webp"}
        }
    ],
    "credits": [
        {
            "role": "Author",
            "certificate": {"url": "https://clover.space/cert/leonardo.cert", "mimetype": "application/x-pem-file"},
            "commonname": "Leonardo",
            "sigcert": "AA386B69A99E9EAFEE..."
        },
        {
            "role": "Publisher",
            "certificate": {"url": "https://clover.space/cert/medici.cert", "mimetype": "application/x-pem-file"},
            "commonname": "Medici",
            "sigcert": "BB386B69A99E9EAFEE..."
        },
    ]
}

A digital social asset by itself holds value in that it can be traded on the public market. This value is derived from an asset's intrinsic qualities, particularly its scarcity and uniqueness, which contribute to its perceived value and significance. This underscores an asset's value as a status symbol or collectible, while its encompass the various ways it can be utilized and leveraged in real-world social scenarios.

They are either visible to users or merely functional. In this standard, we explicitly differentiate the capabilities of a digital social asset from the asset's . A single asset can have multiple capabilities.

Various stakeholders may also be associated with a social asset and share the profits of that asset. These stakeholders may hold different roles (e.g., author, publisher) that are also important to the value of an asset. A "" block is added to an asset's metadata in order to represent these roles and ensure their authenticity.

The name of the asset can be up to 50 characters. See subsection .

ID of the asset type. See subsection .

Image preview. See subsection .

An ID for the asset set that the asset belongs to. See subsection .

Asset traits. See subsection .

Main entity of the asset. See subsection .

How rare it is. See subsection .

Contract address for ETH or protocol for inscriptions. See subsection .

Follows standard.

What the asset can do. See section .

Asset stakeholders. See section .

In , this data is stored in the smart contract's instance database:

A social asset should always have a name. The field may be either name or title, so as to be compatible with various and .

A stakeholder on any application can be associated with a web2 social account, where the associated web2 account is represented by an and is stored in the seis field. If an SEI exists in the seis field, the respective social platform should act as one of the credits that signs the metadata, so that the authenticity of the SEI can be ensured.

ERC-721
platforms
marketplaces
SEI
capabilities
essential information
credits
ERC
Name and Description
Type
Preview Image
Asset Set
Traits
Entity
Rarity
Source
Capabilities
Credits
social asset