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
- Profile Creation: When a new user joins CarbonCore, they receive an UniqueID to their wallet with their identity information.
- Role Assignment: Specific roles are assigned to the UniqueID, not directly to the wallet address.
- Authentication: When connecting to the platform, the system checks for UniqueID ownership and retrieves associated roles.
- Authorization: Access to specific features is granted based on the roles linked to the user's UniqueID.
- 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
Territory owners who register and manage land for carbon credit generation.
Requirements: Automatically assigned when registering a territory.
EXPERT
Verification specialists who assess territories and validate carbon metrics.
Requirements: Professional qualifications and verification documents required.
VVB
Official VVB representatives who provide final approval for territories.
Requirements: Official VVB credentials and verification.
BUYER
Entities purchasing carbon credits to offset their carbon footprint.
Requirements: Basic KYC information.
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
Application
Prospective experts apply for the EXPERT role by providing professional credentials and verification documents.
Document Verification
The platform verifies credentials, qualifications, and verification documents to ensure expertise.
Role Assignment
If approved, the EXPERT role is assigned to the applicant's UniqueID with document links and expiration date.
Periodic Review
Expert credentials require periodic renewal to ensure ongoing qualification and compliance.
VVB Authority Verification
Official Request
VVB entities submit official request for role assignment with proper documentation.
Authority Verification
The platform verifies the VVB entity's authority and jurisdiction.
Documentation Linking
Official VVB documentation is linked to the role for public verification.
Role Assignment
VVB role is assigned to the entity's UniqueID with appropriate permissions and jurisdictional limitations.
Role Verification Documents
All roles with significant permissions (EXPERT, VVB) have verification documents linked to their UniqueID roles. These documents serve several purposes:
- Transparency: Anyone can verify the credentials of experts and VVB 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.