Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
The Identity Registry interface defines the set of functions and events used to manage and verify identities within the T-REX protocol. Below is a detailed breakdown of each function and event, explaining its purpose, source, and functionality.
ClaimTopicsRegistrySet
Event
Description: Emitted when the Claim Topics Registry has been set for the Identity Registry.
IdentityStorageSet
Event
Description: Emitted when the Identity Registry Storage has been set for the Identity Registry.
TrustedIssuersRegistrySet
Event
Description: Emitted when the Trusted Issuers Registry has been set for the Identity Registry.
IdentityRegistered
Event
Description: Emitted when an identity is registered in the Identity Registry.
IdentityRemoved
Event
Description: Emitted when an identity is removed from the Identity Registry.
IdentityUpdated
Event
Description: Emitted when an identity has been updated in the Identity Registry.
CountryUpdated
Event
Description: Emitted when an investor's country information is updated in the Identity Registry.
registerIdentity
Source: IIdentityRegistry
Description: Registers an identity contract corresponding to a user address. Only callable by an agent of the contract.
deleteIdentity
Source: IIdentityRegistry
Description: Removes a user from the Identity Registry. Only callable by an agent of the contract.
setIdentityRegistryStorage
Source: IIdentityRegistry
Description: Replaces the current Identity Registry Storage contract with a new one. Only callable by the owner of the contract.
setClaimTopicsRegistry
Source: IIdentityRegistry
Description: Replaces the current Claim Topics Registry contract with a new one. Only callable by the owner of the contract.
setTrustedIssuersRegistry
Source: IIdentityRegistry
Description: Replaces the current Trusted Issuers Registry contract with a new one. Only callable by the owner of the contract.
updateCountry
Source: IIdentityRegistry
Description: Updates the country corresponding to a user address. Only callable by an agent of the contract.
updateIdentity
Source: IIdentityRegistry
Description: Updates an identity contract corresponding to a user address. Only callable by an agent of the contract.
batchRegisterIdentity
Source: IIdentityRegistry
Description: Registers multiple identities in batch. Only callable by an agent of the contract.
contains
Source: IIdentityRegistry
Description: Checks whether a wallet address is registered in the Identity Registry.
isVerified
Source: IIdentityRegistry
Description: Checks whether an identity contract corresponding to a user address has the required claims for verification.
identity
Source: IIdentityRegistry
Description: Returns the ONCHAINID of an investor based on their wallet address.
investorCountry
Source: IIdentityRegistry
Description: Returns the country code of an investor based on their wallet address.
identityStorage
Source: IIdentityRegistry
Description: Returns the Identity Registry Storage linked to the current Identity Registry.
issuersRegistry
Source: IIdentityRegistry
Description: Returns the Trusted Issuers Registry linked to the current Identity Registry.
topicsRegistry
Source: IIdentityRegistry
Description: Returns the Claim Topics Registry linked to the current Identity Registry.
The Identity Registry Storage interface defines the set of functions and events used to manage and store identity data within the T-REX protocol. Below is a detailed breakdown of each function and event, explaining its purpose, source, and functionality.
IdentityStored
Event
Description: Emitted when an identity is registered into the storage contract.
IdentityUnstored
Event
Description: Emitted when an identity is removed from the storage contract.
IdentityModified
Event
Description: Emitted when an identity has been updated in the storage contract.
CountryModified
Event
Description: Emitted when an identity's country has been updated in the storage contract.
IdentityRegistryBound
Event
Description: Emitted when an Identity Registry is bound to the storage contract.
IdentityRegistryUnbound
Event
Description: Emitted when an Identity Registry is unbound from the storage contract.
addIdentityToStorage
Source: IIdentityRegistryStorage
Description: Adds an identity contract corresponding to a user address in the storage. Only callable by an agent of the contract.
removeIdentityFromStorage
Source: IIdentityRegistryStorage
Description: Removes a user from the storage. Only callable by an agent of the contract.
modifyStoredInvestorCountry
Source: IIdentityRegistryStorage
Description: Updates the country corresponding to a user address. Only callable by an agent of the contract.
modifyStoredIdentity
Source: IIdentityRegistryStorage
Description: Updates an identity contract corresponding to a user address. Only callable by an agent of the contract.
bindIdentityRegistry
Source: IIdentityRegistryStorage
Description: Adds an identity registry as an agent of the Identity Registry Storage Contract. Only callable by the owner of the contract.
unbindIdentityRegistry
Source: IIdentityRegistryStorage
Description: Removes an identity registry from being an agent of the Identity Registry Storage Contract. Only callable by the owner of the contract.
linkedIdentityRegistries
Source: IIdentityRegistryStorage
Description: Returns the identity registries linked to the storage contract.
storedIdentity
Source: IIdentityRegistryStorage
Description: Returns the ONCHAINID of an investor based on their wallet address.
storedInvestorCountry
Source: IIdentityRegistryStorage
Description: Returns the country code of an investor based on their wallet address.
The Identity Registry is responsible for managing and verifying the identities of participants in the ecosystem. It ensures that only compliant and verified participants can hold and transfer tokens, thereby enforcing regulatory requirements and enhancing the security of the platform.
Identity Verification:
The Identity Registry maintains a registry of verified identities. Each identity is linked to an ONCHAINID, which contains the necessary claims and credentials to verify the identity of the participant.
By verifying identities, the registry ensures that all token holders and participants in the ecosystem meet the required compliance standards, such as KYC (Know Your Customer), AML (Anti-Money Laundering) and other required criterias.
Compliance Enforcement:
The Identity Registry interacts with the Compliance contract to enforce transfer rules and restrictions. This interaction ensures that only eligible investors can participate in token transactions, maintaining the integrity of the security token market.
Claims Management:
The registry manages claims associated with each identity. Claims are issued by trusted entities known as Claim Issuers and are essential for verifying various aspects of an identity, such as its KYC status.
The system supports both self-attested claims and third-party verified claims, providing flexibility and robustness in identity management.
Global Accessibility:
The Identity Registry is designed to be globally accessible, allowing participants from different jurisdictions to be verified and compliant with local regulations.
The use of blockchain technology ensures that the registry is transparent, secure, and immutable, providing a reliable source of truth for identity verification.
Registration Process:
Participants create an ONCHAINID, which is then registered with the Identity Registry. The ONCHAINID is linked to various claims that verify the participant's identity.
Trusted Claim Issuers can issue claims to ONCHAINIDs, attesting to the participant's compliance with regulatory requirements.
Verification and Compliance:
During a token transfer or any other regulated action, the Identity Registry checks the participant's ONCHAINID and associated claims to ensure compliance.
If the participant meets all the necessary criteria, the action is approved. If not, it is rejected, maintaining the integrity of the system.
Identity Registry Storage:
The Identity Registry fetches the ONCHAINID address corresponding to the recipient's wallet from the Identity Registry Storage. This storage can be shared by multiple Identity Registry contracts, allowing for efficient and centralized identity management.
Claim Topics Registry:
The Claim Topics Registry defines the types of claims required for compliance. The Identity Registry compares the claims held by an ONCHAINID with the requirements specified in the Claim Topics Registry.
Trusted Issuers Registry:
The Trusted Issuers Registry lists the entities authorized to issue claims. The Identity Registry verifies that the claims on an ONCHAINID are issued by trusted entities listed in this registry.
When a transfer occurs and the isVerified
function is called on the Identity Registry to check the eligibility of an investor, the following steps are performed:
Fetch ONCHAINID:
The Identity Registry fetches the ONCHAINID address corresponding to the recipient's wallet from the Identity Registry Storage.
Compare Claims:
It compares the claims held by the ONCHAINID with the requirements specified in the Claim Topics Registry and the Trusted Issuers Registry.
Validate Claims:
The Identity Registry checks the validity of the claims by verifying the signatures on the claims against the Claim Issuer contracts.
Return Verification Status:
If all claims are valid and meet the requirements, the isVerified
function returns true, allowing the transfer to proceed. If not, it returns false, blocking the transfer.
The Identity Registry Storage is serving as the backbone for storing and managing identity data. It works in conjunction with the Identity Registry to ensure that identity information is securely stored, easily accessible, and efficiently managed.
Centralized Storage:
The Identity Registry Storage acts as a centralized repository for identity data. It stores mappings of wallet addresses to ONCHAINID addresses, ensuring that identity information is consistently and securely maintained.
Interoperability:
The same Identity Registry Storage can be shared by multiple Identity Registry contracts. This feature enhances interoperability and ensures that identity data can be accessed and managed across different parts of the T-REX ecosystem.
Efficient Data Retrieval:
The Identity Registry Storage is designed for efficient data retrieval, enabling quick access to identity information. This is particularly important for verifying identities during token transfers and other regulated actions.
Data Storage:
The Identity Registry Storage stores the ONCHAINID addresses corresponding to participant wallet addresses. This mapping ensures that each wallet address can be linked to an ONCHAINID, which contains the necessary claims and credentials for identity verification.
Integration with Identity Registry:
When the isVerified
function is called on the Identity Registry, the Identity Registry fetches the ONCHAINID address corresponding to the recipient's wallet from the Identity Registry Storage. This process is critical for verifying the identity of participants during transactions.
Security and Reliability:
By centralizing the storage of identity data, the Identity Registry Storage ensures that identity information is secure and reliable. The use of blockchain technology provides immutability and transparency, making it a trustworthy source of identity data.
Scalability:
The ability to share the same Identity Registry Storage across multiple Identity Registry contracts enhances the scalability of the T-REX protocol. It allows for efficient management of identity data as the ecosystem grows.
Flexibility:
The design of the Identity Registry Storage allows for flexible integration with other components of the T-REX protocol. It can easily adapt to different use cases and requirements, providing a robust solution for identity management.
ONCHAINID is providing a robust system for managing identities on the blockchain. This system ensures compliance with regulatory requirements and offers flexibility and reusability of claims issued by trusted entities.
ONCHAINID is a blockchain-based identity management system that creates a unique, globally accessible identity for each participant. These identities are stored on the public blockchain, making them decentralized, immutable, and beyond the control of any single organization.
Decentralized and Immutable:
ONCHAINIDs are stored on the public blockchain, ensuring that they cannot be hidden or deleted. This guarantees that no service or organization can remove access rights to an ONCHAINID.
Standards-Based:
ONCHAINID complies with the ERC-734 and ERC-735 standards, ensuring compatibility with any service that supports these standards. Identities are smart contracts deployed on the Polygon Network, supporting implementations that adhere to these ERC proposals.
Claims and Verifiable Credentials:
The value of an ONCHAINID comes from the information (claims) attached to it. These claims can be self-attested or issued by trusted entities known as Claim Issuers. Claims are essential for verifying that an identity has passed specific checks, such as KYC.
Unique Identifier: Each ONCHAINID has a unique address on the blockchain.
Claim Issuers: Trusted entities, approved by the Identity Owner, can issue claims about the identity. These claims are digital attestations that verify specific attributes or statuses of the identity.
Private Data: Sensitive information, such as ID card details or photos, is stored off-chain by the Claim Issuer. Only a signature of this data is stored on-chain, ensuring privacy while allowing verification.
Self-Attested Information: Some claims can be self-attested, useful for non-regulated contexts like usernames on websites.
Regulated Exchanges: For security tokens and other regulated assets, claims need to be issued by trusted entities, ensuring that the identity is linked to a real person or organization.
Authentication:
ONCHAINID enables password-less authentication with compatible websites using hardware security keys or plugins like MetaMask.
Regulated Asset Participation:
Participants can use their ONCHAINID to engage in compliant, regulated tokenized asset offerings and exchanges.
Information Management:
Identities can store and manage various types of information, including names, email addresses, and more. Information Providers can securely store this data off-chain and control access based on the Identity Owner's permissions.
Claim Management:
Claims can be managed by the Identity Owner, who can add or remove claims and control who is allowed to issue claims about their identity.
Generic and Specific Claims:
Claims can be generic, applicable across multiple tokens and issuers, or specific to particular tokens or issuers. For example, an accreditation status might be a generic claim, while eligibility for a specific token offering might be a specific claim.
Privacy and Security:
To comply with privacy regulations, sensitive data is stored off-chain. The on-chain component includes a hash of this data to ensure integrity without exposing the data itself.
Upgradeable Proxies and IdFactory:
All ONCHAINIDs are deployed as upgradeable proxies (beacon proxy) through an IdFactory contract. This factory ensures that the same user (same deployer wallet address) can deploy the same ONCHAINID on different EVM chains. This is possible because the factory is deployed at the same address on every chain and uses the CREATE2 opcode, enabling the deployment of ONCHAINID at a deterministic address. This cross-chain compatibility allows claims signed on one chain to be valid across multiple chains without requiring new signatures from claim issuers.
Multi-Chain Claims:
Most claim signatures are based on the content of the claim and the address of the ONCHAINID. By having the same ONCHAINID address across multiple chains, claims can be utilized on different chains without the need for re-signature by the claim issuer. This significantly enhances the efficiency and usability of the ONCHAINID system.
Direct Wallet Use:
ONCHAINIDs can function directly as wallets, holding tokens and interacting with smart contracts through the execute and approve functions inherited from ERC-734. This capability allows ONCHAINIDs to perform transactions and manage assets natively on the blockchain.
Compatibility with ERC-4337:
The ONCHAINID standard can be compatible with ERC-4337 (account abstraction) by implementing a userOperation function that triggers an execute call following ERC-734. This implementation would make ONCHAINID an abstract account, further enhancing its functionality and integration within the blockchain ecosystem.
The ONCHAINID interface defines the set of functions and events used to manage identities and claims on the blockchain. It extends the functionality of two key interfaces: IERC734
and IERC735
.
isClaimValid
Source: IIdentity
This function checks if a claim is valid based on the identity contract, claim topic, signature, and data provided.
Description: Validates a claim by verifying the signature and data against the specified claim topic and identity contract.
addKey
Source: IERC734
This function adds a key to the identity for a specified purpose and key type.
Description: Adds a new key to the identity, where _purpose
defines the purpose of the key (e.g., management or execution), and _keyType
specifies the type of key (e.g., an Ethereum address or a hash of a public key).
approve
Source: IERC734
This function approves an execution request.
Description: Approves or rejects an execution request identified by _id
. If approved, the execution proceeds; if not, it is cancelled.
removeKey
Source: IERC734
This function removes a key for a specified purpose.
Description: Removes a key associated with a particular purpose from the identity, effectively revoking its rights.
execute
Source: IERC734
This function executes an operation on behalf of the identity.
Description: Executes a transaction on behalf of the identity. The _to
parameter specifies the recipient address, _value
is the amount of Ether to send, and _data
contains the call data. Returns an executionId
for tracking the operation.
getKey
Source: IERC734
This function retrieves the full data for a specified key.
Description: Returns the purposes, key type, and key value for a specified key. Useful for understanding the roles and permissions associated with a key.
getKeyPurposes
Source: IERC734
This function returns the list of purposes associated with a key.
Description: Retrieves all purposes assigned to a specified key, providing insight into what the key can be used for.
getKeysByPurpose
Source: IERC734
This function returns an array of keys associated with a specific purpose.
Description: Lists all keys that serve a particular purpose, aiding in the management and audit of keys within the identity.
keyHasPurpose
Source: IERC734
This function checks if a key has a given purpose.
Description: Verifies whether a specific key is assigned a particular purpose, returning true
if it exists and false
otherwise.
addClaim
Source: IERC735
This function adds or updates a claim.
Description: Adds a new claim or updates an existing claim. The claim is associated with a _topic
, uses a _scheme
for the signature, and includes the claim's data and URI.
removeClaim
Source: IERC735
This function removes a claim from the identity.
Description: Deletes a claim identified by _claimId
, revoking the associated attestation.
getClaim
Source: IERC735
This function retrieves a claim by its ID.
Description: Returns the full details of a claim, including its topic, scheme, issuer, signature, data, and URI.
getClaimIdsByTopic
Source: IERC735
This function returns an array of claim IDs for a given topic.
Description: Lists all claim IDs associated with a specific topic, facilitating the management and audit of claims.
The Trusted Issuers Registry (TIR) is responsible for managing and verifying the list of entities authorized to issue claims. This registry ensures that only verified and trusted issuers can contribute to the identity verification process, thereby enhancing the security and reliability of the protocol.
Authorization of Issuers:
The TIR maintains a list of authorized claim issuers. These issuers are trusted entities that can issue claims verifying various aspects of an identity, such as KYC status, AML compliance, and more.
Interoperability with Identity Verification:
The TIR works in conjunction with the Identity Registry and the Claim Topics Registry to verify the claims associated with an ONCHAINID. This integration ensures that all claims are issued by recognized and trusted entities.
Dynamic Management:
The registry allows for the dynamic addition and removal of trusted issuers. This flexibility ensures that the list of trusted issuers can be updated as new issuers are verified or existing issuers are revoked.
Listing Trusted Issuers:
The TIR lists the addresses of entities authorized to issue claims. Each trusted issuer is added to the registry through a formal process to ensure their credibility and reliability.
Verification Process:
During the identity verification process, the Identity Registry checks the claims on an ONCHAINID against the list of trusted issuers in the TIR. If the claims are issued by entities listed in the TIR and meet the required claim topics, they are considered valid.
Integration with Other Components:
The TIR integrates with the Identity Registry Storage and the Claim Topics Registry to provide a comprehensive verification process. This ensures that all claims are valid and issued by trusted entities, maintaining the integrity of the protocol.
Identity Registry: The TIR provides the list of trusted issuers to the Identity Registry. This information is used to verify the claims on an ONCHAINID during the identity verification process.
Claim Topics Registry: The TIR works with the Claim Topics Registry to ensure that only claims issued by trusted entities are considered valid. This collaboration enhances the security and reliability of the verification process.
Enhanced Security:
By maintaining a list of trusted issuers, the TIR ensures that only verified and credible entities can issue claims. This reduces the risk of fraudulent claims and enhances the security of the T-REX protocol.
Regulatory Compliance:
The TIR supports regulatory compliance by ensuring that all claims used for identity verification are issued by trusted entities. This compliance is crucial for maintaining the legal integrity of the protocol.
Flexibility and Adaptability:
The ability to dynamically manage the list of trusted issuers allows the TIR to adapt to changing regulatory requirements and new entrants in the market. This flexibility ensures long-term compliance and operational efficiency.
The Claim Topics Registry (CTR) is responsible for listing the claim topics required for a token. Each token has its own Claim Topics Registry, which specifies the types of claims that must be present on an ONCHAINID for an investor to be considered eligible. The CTR works in conjunction with the Identity Registry, the Identity Registry Storage, and the Trusted Issuers Registry to ensure comprehensive compliance verification.
Definition of Required Claims:
The Claim Topics Registry lists the claim topics that are mandatory for an ONCHAINID to be eligible. These claims can include KYC, AML, accreditation, and other regulatory requirements.
Integration with Identity Verification:
The CTR plays a vital role in the identity verification process. When the isVerified
function is called on the Identity Registry, it fetches the required claim topics from the CTR to verify the ONCHAINID.
Dynamic Management:
The Claim Topics Registry allows for the dynamic addition and removal of claim topics. This ensures that the registry can adapt to evolving regulatory requirements and specific needs of different tokens.
Listing Claim Topics:
The CTR lists the claim topics required for a specific token. Each claim topic is represented by a unique identifier. These topics are essential for compliance and regulatory verification.
Verification Process:
During the verification process, the Identity Registry fetches the ONCHAINID address from the Identity Registry Storage and retrieves the list of required claim topics from the CTR.
The Identity Registry also fetches the list of Trusted Issuers from the Trusted Issuers Registry and compares the claims held on the ONCHAINID with the required claim topics.
If the ONCHAINID has the required claims and the claims are issued by trusted issuers, the isVerified
function then checks the cryptographic signatures to ensure validity.
Ensuring Compliance:
By defining the required claim topics, the CTR ensures that all participants in the ecosystem meet the necessary regulatory standards. This compliance is crucial for maintaining the integrity and legality of the token transactions.
Identity Registry: The CTR provides the necessary claim topics for the Identity Registry to verify the eligibility of ONCHAINIDs. This integration ensures that all identity verifications are based on standardized and required claims.
Identity Registry Storage: The CTR works with the Identity Registry Storage to fetch the ONCHAINID addresses. This ensures that the verification process has access to the correct identity information.
Trusted Issuers Registry: The CTR lists the required claim topics, while the Trusted Issuers Registry provides the list of entities authorized to issue these claims. This collaboration ensures that only valid claims from trusted sources are accepted.
Regulatory Compliance:
The CTR ensures that all participants comply with regulatory requirements by mandating specific claim topics. This reduces the risk of legal issues and enhances the credibility of the T-REX protocol.
Flexibility:
The ability to dynamically manage claim topics allows the CTR to adapt to changing regulatory environments. This flexibility is essential for maintaining long-term compliance and operational efficiency.
Enhanced Security:
By defining and verifying required claims, the CTR enhances the security of the T-REX protocol. It ensures that only participants with valid and verified claims can engage in token transactions.
The Claim Topics Registry interface defines the set of functions and events used to manage the required claim topics for tokens within the T-REX protocol. Below is a detailed breakdown of each function and event, explaining its purpose, source, and functionality.
ClaimTopicAdded
Event
Description: Emitted when a claim topic has been added to the Claim Topics Registry.
ClaimTopicRemoved
Event
Description: Emitted when a claim topic has been removed from the Claim Topics Registry.
addClaimTopic
Source: IClaimTopicsRegistry
Description: Adds a trusted claim topic to the Claim Topics Registry. Only callable by the owner of the contract. This function emits a ClaimTopicAdded
event.
removeClaimTopic
Source: IClaimTopicsRegistry
Description: Removes a trusted claim topic from the Claim Topics Registry. Only callable by the owner of the contract. This function emits a ClaimTopicRemoved
event.
getClaimTopics
Source: IClaimTopicsRegistry
Description: Returns the list of trusted claim topics for the token.
The Trusted Issuers Registry interface defines the set of functions and events used to manage and verify trusted claim issuers within the T-REX protocol. Below is a detailed breakdown of each function and event, explaining its purpose, source, and functionality.
TrustedIssuerAdded
Event
Description: Emitted when a trusted issuer is added to the registry.
TrustedIssuerRemoved
Event
Description: Emitted when a trusted issuer is removed from the registry.
ClaimTopicsUpdated
Event
Description: Emitted when the set of claim topics is changed for a given trusted issuer.
addTrustedIssuer
Source: ITrustedIssuersRegistry
Description: Registers a ClaimIssuer contract as a trusted claim issuer. This function can only be called by the owner of the Trusted Issuers Registry contract and emits a TrustedIssuerAdded
event.
removeTrustedIssuer
Source: ITrustedIssuersRegistry
Description: Removes the ClaimIssuer contract of a trusted claim issuer. This function can only be called by the owner of the Trusted Issuers Registry contract and emits a TrustedIssuerRemoved
event.
updateIssuerClaimTopics
Source: ITrustedIssuersRegistry
Description: Updates the set of claim topics that a trusted issuer is allowed to emit. This function can only be called by the owner of the Trusted Issuers Registry contract and emits a ClaimTopicsUpdated
event.
getTrustedIssuers
Source: ITrustedIssuersRegistry
Description: Returns an array of all claim issuers registered in the Trusted Issuers Registry.
getTrustedIssuersForClaimTopic
Source: ITrustedIssuersRegistry
Description: Returns an array of all claim issuer addresses that are allowed to issue a given claim topic.
isTrustedIssuer
Source: ITrustedIssuersRegistry
Description: Checks if a given ClaimIssuer contract is trusted.
getTrustedIssuerClaimTopics
Source: ITrustedIssuersRegistry
Description: Returns the set of claim topics that a given trusted issuer is allowed to emit.
hasClaimTopic
Source: ITrustedIssuersRegistry
Description: Checks if a given trusted issuer is allowed to emit a certain claim topic.