ERC 735: Claim Holder Registry vs. in contract

Tyler Yasaka edited this page Sep 25, 2018 · 10 revisions


This is part of the discussion for (Related comment) This is a collaborative list of PROs and CONs to gather advantages for both sides.

Central claim registry


  • standardised, e.g. functionality known which prevents cheating
  • central reference point
  • claim addition and removal can have complex processes, all standardised


  • will mainly be useful for pure ethereum accounts or smart contracts. There is no advantage over in-contract claims when adding signatures to them
  • Will be hard to change, or to improve over time, as the code once deployed is fixed, or needs a complicated upgrade mechanism

In-Contract claims


  • Claims are at the spot where people interact with the identity itself (this is what the third party receives as info anyway when interacting with this identity/person)
  • Behaviour how claims are added can be customised (e.g. an identity would approve added claims, an ICO smart contract may just accept any without approval to show validity)
  • Claims are verified through signatures, not the adding logic (as it can not be controlled)
  • Claims can be removed/made invalid, if the issuer removes the key he signed with from its identity.
  • The claim scheme can be more freely arranged
  • as the focus is on signatures, those can be new types in the future, and interaction is not necessarily (Ethereum) blockchain specific.


  • Claim addition can't be trusted (validation of the signature count is important)
  • verifying claim signatures on chain can be costly.
  • claims retrieval can be not follow standers and causes issues (leads to invalid/incompatible standard)
  • Adds a lot of complexity/is more complicated to implement
  • Requires more gas due to added complexity

Please feel free to add. Be aware that one claim or key can easily reference a claim registry, so these standards could work perfectly along side each other.

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.