Signatures & Approvals
Approvals
The protocol implements an approvals system that allows comment authors to delegate the ability for an app to post comments on their behalf. This enables a smooth UX by which a user signs a one time approval transaction, and the app can post comments on their behalf without the need for the user to sign each transaction. These approvals can be revoked by the user at any time.
Signatures
Comments require different signatures depending on whether the author has granted approval to the app:
With Approval: When a user has granted approval to an app, comments only need to be signed by the app. The app can post comments on the user's behalf using the pre-existing approval.
Without Approval: When no approval exists, comments must be signed by both the app and the comment author.
This means that every comment is attributable to an app and author. This enables the app to impose offchain limitations and gating on which comments it wants to co-sign, as well as allowing the app to choose whether to index and display comments from other apps or not. If interacting with the protocol directly, the user can also choose to self sign the comment, signing with their address as the app and author.