This article expands on the EIP-712 article written by my teammate, Ivo Zieliński —

To summarise the validation flow on Indorse, the following steps take place:

The user creates a claim for his coding skills, Indorse records the claim creation onto a smart contract Indorse BE invites the registered expert developers (called Validators) to vote on this claim Validators cast their vote on the smart contract within the claim deadline (currently 48 hours)

To process a specific claim result, we need at least 6 votes. Nevertheless, we faced a number of issues in this workflow. Top of the list being transaction costs borne by the end user. We also found that a number of votes would time out in instances where the vote cast was during a peak period, thereby missing the voting deadline.

With the use of EIP-712, the UX of our vote casting was vastly improved. We next proceeded to tackle how to reduce the on-chain transactions.

Merkle trees, as data structures, are used heavily in the blockchain space — from SPV clients to mining pools. Indeed, they provide a very efficient way to verify the consistency of data.

Indorse collects signatures from claims & votes (EIP-712) and organizes them into a Merkle tree. At the end of each day, we commit the root of this tree to a smart contract.

Leaves of the tree are the signatures we have collected using the EIP-712 format. C1Sig : Claim signature from Indorse.

C1V1… C1V(n): Vote signature from Validators.

A single tree could have C(n) signatures for claims and possibly C(n)V(n) vote signatures. Thereby reducing all the transactions which would have gone on-chain. Proofs can be generated for any of the leaf nodes to verify the validity of data.

In future iterations, signature and data will be published to a 3rd party storage like IPFS (and referenced in the smart contract), thereby removing dependency from Indorse and making the whole process even more transparent!

With the use of EIP-712 standard, UX changed drastically, and as described above, the transaction/voting journey was completely refined and upgraded. This was mainly done for our users, and the feedback from our Validators confirmed that we’re on the right track in terms of usability!

“so smooth process, this is how dapps are meant to be developed, i like this, great job guys” “Very few things are that smooth, loved it.” “that process was so clean I need to do it again lol. Especially seeing what I’m signing in JSON format, I think that change to the dApp workflow will be game changing for ETH.”

If you’re a fellow programmer, feel free to create your profile on the Indorse platform and have your code evaluated by expert programmers, for free. On Indorse, it all starts with a claim!