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.

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.

Partners and developers can seamlessly integrate with VioletID to leverage all compliance requirements from Violet by simply checking the status of a wallet on-chain. For further information, please refer to Violet website:

Role in the Escape Hatch Mechanism

VioletID also plays a pivotal role in the Escape Hatch Mechanism, a critical security feature of Mauve. This mechanism ensures that even in the unlikely event of a compromise to the Violet subsystem by an attacker, user wallets cannot have their funds locked within the protocol. The emergency mode, facilitated by VioletID, enables users to execute actions without requiring an Ethereum Access Token (EAT), as long as their wallet maintains the correct statuses within the VioletID smart contract. This emergency mode serves as a failsafe, preserving the user's ability to interact with the protocol under exceptional circumstances.

If you seek a deeper understanding of how VioletID operates behind the scenes or wish to integrate with this vital component, we encourage you to reach out to us via Discord. We are more than happy to provide guidance and support to facilitate a seamless integration and address any inquiries you may have regarding VioletID and its role in Mauve's ecosystem.

Last updated