During various VC and VP use scenarios, users need to sign specific data to assert their identity or display their authorization. These scenarios include:

Consequently, a reliable, stable, and user-friendly signature system is necessary. In response to this need, we have implemented the EIP-712 Proposal.

Implementation

Our implementation adheres to EIP-712, structuring the data to be encoded and signed as follows:

encode(domainSeparator, message : 𝕊) = "**\\x19\\x01" ‖ domainSeparator** ‖ hashStruct(message)

The 'version specific data' is the 32-byte domain separator domainSeparator

The 'data to sign' is the 32-byte hashStruct(message).

domainSeparator = hashStruct(eip712Domain)

eip712Domain can include one or more of the following fields: