VioletID
VioletID, a critical component used by Mauve, is an onchain registry of attributes by wallet address, maintained by Violet. It serves as the foundation for the issuance of 'statuses' that represent a user's verification and trustworthiness within the Violet ecosystem. Possessing a specific status ID serves as a clear indicator of successful completion of a verification process tailored to that specific status.
Within the realm of VioletID, various significant status IDs exist, each having a distinct on-chain presence. For illustrative purposes, two noteworthy status IDs are Enrolled (statusId 1) and Mauve-Compliant (statusId 4). The first status represents successful enrollment of an individual or business within the Violet ecosystem, while the second indicates compliance with all specific requirements that a user must comply with in order to be allowed to interact with Mauve. Both of these statuses adhere to stringent compliance standards set forth by Mauve and Violet. Currently, these standards encompass Know Your Customer (KYC) and Know Your Business (KYB) processes, which individuals and businesses must diligently go through. Upon completion, Violet grants the relevant statuses to the user's address by updating the state of the registry in the VioletID smart contract.
1
Enrolled and KYC'ed in Violet
2
Present on a sanctions list
3
A US Citizen
4
Enrolled and compliant to use Mauve
5
An Accredited Investor
The table above outlines the current statuses that a wallet address can be granted in the VioletID onchain registry. Please note that this list is subject to change, and new statuses can be added at any time at the discretion of Violet to better support its partners.
Technical Implementation
Moreover, these statuses are represented on-chain as a bitmap on the VioletID Contract. A status combination ID is computed simply by summing the values obtained from 2 raised to the power of the statusId
(the index of the bit on the bitmap) for each status. For example, if a wallet address is:
Enrolled and KYC'ed in Violet (statusId 1)
Enrolled and compliant to use Mauve (statusId 4)
The calculation would be: 2^1 + 2^4 = 18. Thus, this wallet address would have a status combination ID of 18, representing the combination of the aforementioned statuses.
To inquire about the status combination of a wallet address, you can easily utilize the hasStatuses(address, uint8) function from the VioletID contract. Alternatively, you can use the hasStatus(address, uint256) function to query individual statuses of a wallet address. Both functions return a boolean value and can be employed as follows:
Is the wallet 0x123 Enrolled and KYC'ed in Violet?
hasStatus(0x123, 1)
Is the wallet 0x123 listed in a sanction list AND a US Citizen?
hasStatuses(0x123, 12)
VioletID assumes a pivotal role within Mauve's ecosystem, where trust and compliance are paramount. It ensures protocol integrity by serving as a reliable mechanism for verifying users and entities. Its impact extends beyond mere token issuance, with far-reaching implications for Mauve's ecosystem.
Additionally, VioletID provides the flexibility to assign multiple status IDs or combinations to a specific wallet. This feature empowers VioletID to represent diverse sets of compliance statuses for an individual. For example, it can indicate whether an individual operates within a regulatory environment unsupported by Mauve, such as the United States, or whether an individual appears on OFAC sanctions lists.
Role in the Escape Hatch Mechanism
Last updated