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 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.