UniqueIDs

How CarbonCore uses UniqueID technology to create a secure, role-based authentication system that powers our entire platform.

UniqueID-Based Authentication

Understanding how CarbonCore uses UniqueIDs for secure identity and access control.

CarbonCore implements a revolutionary authentication system where user identities and permissions are represented by unique Non-Fungible Tokens (UniqueIDs). Unlike traditional web2 authentication that relies on usernames and passwords, or even standard web3 authentication that simply verifies wallet ownership, CarbonCore's UniqueID-based system offers enhanced security, flexibility, and features.

Key Concept: In CarbonCore, UniqueIDs serve as your digital identity, with roles and permissions attached to the UniqueID rather than to your wallet address.

Why UniqueID-Based Authentication?

Role Portability

Since roles are tied to UniqueIDs rather than wallet addresses, users can transfer their roles to a new wallet if needed, enhancing security and flexibility.

Multi-Role Support

A single UniqueID can hold multiple roles, allowing users to have different permissions in different contexts without needing multiple accounts.

Rich Profile Data

UniqueIDs can store comprehensive profile information directly on-chain, making it available to the entire ecosystem.

Verifiable Credentials

Role credentials and verification documents can be cryptographically linked to the UniqueID, ensuring authenticity.

Traditional vs. UniqueID Authentication

Feature Traditional Web3 Auth CarbonCore UniqueID Auth
Identity Linked To Wallet Address UniqueID Token ID
Role Assignment Direct to Wallet To UniqueID, Separate from Wallet
Profile Transfer Not Possible Transfer UniqueID to New Wallet
Multiple Roles Multiple Wallets Needed One UniqueID Can Hold Multiple Roles
Profile Data Typically Off-Chain Stored On-Chain in UniqueID
Role Expiration Rarely Supported Built-In Expiration Management
Role Documentation Not Integrated Verification Documents Linked

How UniqueID Authentication Works

  1. Profile Creation: When a new user joins CarbonCore, they receive an UniqueID to their wallet with their identity information.
  2. Role Assignment: Specific roles are assigned to the UniqueID, not directly to the wallet address.
  3. Authentication: When connecting to the platform, the system checks for UniqueID ownership and retrieves associated roles.
  4. Authorization: Access to specific features is granted based on the roles linked to the user's UniqueID.
  5. Profile Updates: Users can update their profile information, which is stored in the UniqueID's metadata.

User Profile Structure:

Each user profile stored in the UniqueID includes:

  • First Name
  • Last Name
  • Email (optional)
  • Phone Number (optional)
  • Physical Address (optional)
  • Wallet Address
  • Creation & Update Timestamps
  • Active Status
  • IPFS Metadata URI

Role System

Understanding the different roles in the CarbonCore ecosystem and how they work.

Landowner

LANDOWNER

Territory owners who register and manage land for carbon credit generation.

Requirements: Automatically assigned when registering a territory.

Expert

EXPERT

Verification specialists who assess territories and validate carbon metrics.

Requirements: Professional qualifications and verification documents required.

Government

GOVERNMENT

Official government representatives who provide final approval for territories.

Requirements: Official government credentials and verification.

Buyer

BUYER

Entities purchasing carbon credits to offset their carbon footprint.

Requirements: Basic KYC information.

Guest

GUEST

Limited access users who can view public information but cannot perform actions.

Requirements: None, default for wallets without UniqueID.

Role Storage in the UniqueID

Each role assigned to an UniqueID contains the following information:

  • Role Type: The specific role (LANDOWNER, EXPERT, etc.)
  • Assigned At: Timestamp when role was assigned
  • Expires At: Timestamp when role expires (0 for permanent)
  • Active Status: Whether the role is currently active
  • Additional Info: Extra information about the role assignment

Verification Process

How credentials are verified and roles are assigned in the CarbonCore system.

Expert Verification Process

1

Application

Prospective experts apply for the EXPERT role by providing professional credentials and verification documents.

2

Document Verification

The platform verifies credentials, qualifications, and verification documents to ensure expertise.

3

Role Assignment

If approved, the EXPERT role is assigned to the applicant's UniqueID with document links and expiration date.

4

Periodic Review

Expert credentials require periodic renewal to ensure ongoing qualification and compliance.

Government Authority Verification

1

Official Request

Government entities submit official request for role assignment with proper documentation.

2

Authority Verification

The platform verifies the government entity's authority and jurisdiction.

3

Documentation Linking

Official government documentation is linked to the role for public verification.

4

Role Assignment

GOVERNMENT role is assigned to the entity's UniqueID with appropriate permissions and jurisdictional limitations.

Role Verification Documents

All roles with significant permissions (EXPERT, GOVERNMENT) have verification documents linked to their UniqueID roles. These documents serve several purposes:

  • Transparency: Anyone can verify the credentials of experts and government authorities involved in territory verification.
  • Accountability: Documents create an audit trail for all verification decisions.
  • Trust: Token buyers can independently verify the qualifications of those who verified the carbon credits.
  • Compliance: Documentation helps meet regulatory requirements for carbon credit verification.

Technical Implementation

How the UniqueID-based authentication system is implemented on the blockchain.

UserUniqueID Contract

The UserUniqueID contract is an ERC-721 implementation that represents user profiles in the CarbonCore system. Each user has a unique UniqueID that contains their profile information and serves as their identity in the system.

Key Functions:

  • Create Profile: Creates a new user profile and mints an UniqueID
  • Update Profile: Updates an existing user profile
  • Get Profile: Returns a user's profile data
  • Get Token ID: Returns the token ID associated with an address

RoleManager Contract

The RoleManager contract manages user roles and permissions in the CarbonCore system. It assigns, verifies, and manages roles for different users based on their UniqueID token IDs.

Key Functions:

  • Assign Role: Assigns a role to a user's UniqueID
  • Revoke Role: Revokes a role from a user's UniqueID
  • Check Role: Checks if a user has an active role
  • Get User Roles: Gets all roles assigned to a user
  • Set Verification Document: Sets/updates verification document URL

Security Considerations

The UniqueID-based authentication system includes several security features:

  • Role Expiration: Roles can have expiration dates to ensure periodic re-verification.
  • Role Deactivation: Roles can be temporarily deactivated without being revoked.
  • Profile Deactivation: User profiles can be deactivated if necessary.
  • Document Verification: Role credentials are linked to verification documents.
  • Access Control: Permissions are carefully managed to ensure proper access rights.
  • Contract Pausing: Contracts can be paused in case of emergencies.

Ready to Get Your UniqueID Identity?

Connect your wallet to start exploring the CarbonCore platform.