Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improved Copy #460

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 39 additions & 22 deletions x/entity/spec/01_concepts.md
Original file line number Diff line number Diff line change
@@ -1,43 +1,60 @@
# Entity Module

The `Entity` module is a pivotal component of our blockchain system, facilitating the unified management of both non-fungible tokens (NFTs) and their associated Interchain Identifiers (IIDs). By seamlessly intertwining NFTs with IIDs, the `Entity` module establishes a new paradigm for decentralized asset management, bolstered by the credibility and dependability of DID Documents.
# Entity Module: Digital Twin Domains in the Spatial Web

## Overview

When an `Entity` is created on the blockchain, a trifecta of operations is set into motion:
The Entity Module introduces a revolutionary approach to digital identity and asset representation in the Spatial Web. When an `Entity` is created, it establishes a sovereign digital twin domain through a trifecta of operations:

1. An IID Document is birthed through the `iid` module, cementing the foundational identity and associated metadata of the entity.
2. An NFT is minted using the CW721 smart contract, capturing the unique and immutable essence of the entity in tokenized form.
3. A dedicated `Entity` data structure is etched into the KV store. This is not merely a reflection of the IID Document; it captures supplementary metadata exclusive to the `Entity`, enhancing its depth and versatility.
1. An Interoperable Identifier (IID) Document is generated via the `iid` module, establishing the foundational decentralized identity and associated metadata of the entity.
2. A Non-Fungible Token (NFT) is minted using the [CW721](https://github.com/CosmWasm/cw-nfts/blob/main/packages/cw721/README.md) smart contract, capturing the unique and immutable essence of the entity in tokenized form.
3. A dedicated `Entity` data structure is recorded in the key-value (KV) store, encompassing supplementary metadata exclusive to the `Entity`.

The `id` for all 3 of the different data stored above is deterministically determined on-chain on Entity creation.
The `id` for all three data components is deterministically generated on-chain during Entity creation, ensuring consistency and traceability.

## Key Components

### Entity Data Structure

Stored within the KV store, the `Entity` data structure houses metadata that isn't contained within the IID Document. It's instrumental in furnishing a holistic view of the `Entity`, encapsulating both inherent and appended attributes. This data provides richer context, driving interoperability and comprehensive understanding across platforms and applications.
The `Entity` data structure, stored within the KV store, serves as a comprehensive digital twin domain representation, including:

- **Controllers**: Governing authorities of the domain.
- **Verifiable Credentials**: Cryptographic proofs for verifying attributes, bassed on [W3C standards](https://w3c.github.io/vc-overview/)
- **Linked Resources**: Digital or physical assets associated with the domain.
- **Accorded Rights**: Permissions and capabilities available within the Spatial Web.
- **Services**: Functionalities provided by the entity, including third-party web services that interface with the domain.
- **Linked Claims**: Assertions about or made by the entity.
- **Linked Entities**: Relationships with other domains in the Spatial Web graph.

### Entity Accounts

#### Entity Accounts
Entity Accounts are Cosmos Module Accounts uniquely associated with and controlled by an Entity Owner. Key features include:

An Entity Account is a Cosmos Module Account that can only be created and controlled by an Entity Owner. An Entity may have any number of Entity Accounts. Each Entity Account has a unique name. For instance “Savings”. The account address is derived from this name and the DID of the Entity. The Entity Owner may authorise any other account to perform transactions for an Entity Account, using Authz. When ownership of an Entity is transferred, the new owner gains control of the Entity Accounts. All residual balances in an Entity Account get transferred together with the Entity NFT when ownership is transferred.
- **Multiple Accounts**: Each Entity may have multiple accounts, each with a unique name (e.g., 'Savings').
- **Account Address Generation**: Account addresses are derived from the account name and Entity's DID.
- **Authz Delegation**: Authz-based delegation allows transaction permissions to be granted to other accounts, using the [Authz Module](https://docs.cosmos.network/main/modules/authz/)
- **Ownership Transfer**: Control and balances are automatically transferred when Entity ownership changes.
- **Default Admin Account**: A default 'admin' account is created when the Entity is first established.

On Entity creation a default Entity Account gets created with the name `admin`.
### NFT Representation

### NFT Creation
The minted NFT via the CW721 smart contract embodies the distinct essence of each `Entity`, offering:

The minting of an NFT via the CW721 smart contract reaffirms the distinctiveness of each `Entity`. This tokenized representation not only encapsulates the essence of the entity but also offers a myriad of possibilities in terms of trade, ownership verification, and utilization in decentralized applications.
- **Tokenized representation** for trade and ownership verification.
- **Utilization in decentralized applications** within the Spatial Web.
- **Immutable link** to the entity's digital twin domain.

### IID Document Creation
### IID Document

The automatic generation of an IID Document ensures that every `Entity` is backed by a standardized, robust, and decentralized identity mechanism. This identity is enriched with crucial metadata and, being compliant with W3C's DID specifications, offers global compatibility and recognition.
The automatically generated IID Document ensures each `Entity` has a standardized, robust, and decentralized identity, featuring:

### Advantages
- **Compliance with W3C Specifications**: Each IID complies with W3C's [DID Core](https://www.w3.org/TR/did-core/) specification for global compatibility.
- **Metadata Enrichment**: Enrichment with crucial metadata provides a comprehensive representation of the identity.

- **Unified Management:** The `Entity` module simplifies the intricacies of managing decentralized assets by unifying IID creation, NFT minting, and metadata storage.
- **Enhanced Metadata:** By preserving additional metadata in the `Entity` data structure, a comprehensive and nuanced understanding of each entity is achieved.
- **Interoperability:** Rooted in globally recognized standards, `Entities` foster seamless interactions across various decentralized platforms and applications.
## Advantages

- **Decentralization and Security:** The tandem of IID Documents and NFTs ensures a decentralized, tamper-proof, and transparent representation of entities.
- **Sovereign Digital Twin Domains**: Each entity represents a self-sovereign domain in the Spatial Web, with full control over its digital representation and associated assets.
- **Enhanced Interoperability**: Rooted in globally recognized standards, `Entities` foster seamless interactions across various decentralized platforms and applications in the Spatial Web ecosystem.
- **Comprehensive Metadata Management**: The unified approach to metadata storage provides a nuanced and rich understanding of each entity's characteristics and relationships.
- **Decentralization and Security**: The combination of IID Documents and NFTs ensures a decentralized, tamper-proof, and transparent representation of entities within the Spatial Web.
- **Flexible Governance**: Entity Accounts and delegation mechanisms allow for sophisticated control and management of digital assets and interactions.

For a deeper dive into the foundational principles of IIDs, consult the [`iid` module documentation](/x/iid/spec/README.md). For a comprehensive understanding of NFTs and the CW721 standard, refer to the [official CW721 documentation](https://github.com/CosmWasm/cw-nfts/blob/main/packages/cw721/README.md) which follows the [eip721 standard](https://eips.ethereum.org/EIPS/eip-721).
This Entity Module serves as a crucial building block in the Spatial Web, enabling interconnected digital twin domains, graph-based relationships between entities, and decentralized governance models.
55 changes: 53 additions & 2 deletions x/entity/spec/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,59 @@
# Entity module specification

This document specifies the entity module, a custom Ixo Cosmos SDK module.
# IXO Entity Module: Digital Twin Domains in the Spatial Web

The Entity Module introduces a holistic approach to NFT-backed identities, bridging the gap between decentralized identifiers and tangible assets. Upon entity creation, a symbiotic relationship forms between an IID Document, an NFT, and the Entity's metadata. Further enriched with the concept of Entity Accounts, this module ensures a seamless transition of ownership, while offering a robust framework for entities to operate within a decentralized landscape.
## Overview

The IXO **Entity** Module provides a cutting-edge approach to digital identity and real-world asset representation within the Spatial Web. By enabling sovereign digital twin domains, backed by NFTs and managed by actors with decentralized identifiers (DIDs), this module creates a network of interconnected nodes within the Spatial Web. These entities form a robust framework for decentralized operations, facilitating interactions that have tangible impacts in the real world.

## Key Features

### Sovereign Digital Twin Domains

Each entity represents a distinct, sovereign domain within the Spatial Web, including:

- **Controllers**: Authorities responsible for governing the domain.
- **Verifiable Credentials**: Cryptographic proofs for verifying attributes.
- **Linked Resources**: Digital or physical assets associated with the domain.
- **Accorded Rights**: Permissions and capabilities available within the Spatial Web.
- **Services**: Functionalities provided by the entity, including third-party web services that interface with the domain.
- **Linked Claims**: Assertions about or made by the entity.
- **Linked Entities**: Relationships with other domains in the Spatial Web.
- **Entity Accounts**: Any number of blockchain Accounts that may be used for different purposes.

### NFT-Backed Domains

- **NFT Integration**: Domains are represented as NFTs, integrated seamlessly with DIDs for enhanced security.
- **Tangible Assets**: Digital twin domains can be owned, transferred, financed, or used as collateral, similar to traditional assets.

### Interchain Identifier (IID) Document

- **Comprehensive Representation**: IIDs provide a complete representation of the identity domain.
- **Interoperability**: Supports interactions across multiple blockchain networks.

### Entity Metadata

- **Customizable Metadata**: Rich and customizable metadata allows detailed descriptions of each digital twin domain, enabling better discovery and context.

### Entity Accounts

- **Financial Management**: Dedicated accounts for managing resources, payments, and interactions between entities.

## Spatial Web Integration

The IXO Entity Module is a foundational element of the Spatial Web, enabling:

- **Interconnected Digital Twin Domains**: Digital entities that operate autonomously and are linked through the Spatial Web.
- **Graph-Based Relationships**: Establishing connections and relationships between entities, forming a robust network.
- **Decentralized Governance**: Sovereign entities enable new models of governance and ownership.

## Technical Implementation

The Entity Module is built using the IXO Cosmos SDK, leveraging blockchain technology for:

- **Immutability**: Ensuring that entity records are tamper-proof and reliable.
- **Decentralized Control**: Giving entities complete control over their domains without centralized authorities.
- **Interoperability**: Facilitating seamless interactions with other networks within the Cosmos ecosystem.

## Contents

Expand Down
Loading