Seed Hypermedia includes a built-in commenting system that allows anyone to add annotations, discussions, and feedback to documents. Comments are cryptographically signed and can be threaded for conversations.
How Comments Work
Comments are separate signed blobs that reference a specific document version. Key properties:
Tied to a specific document version (target_version) - ensures context is preserved
Signed by the commenter's key - verifiable authorship
Support threading via reply_parent - for conversations
Use the same block structure as documents - rich formatting
Creating a Comment
Use the Comments service to create comments via gRPC:
grpcurl -plaintext -d '{
"target_account": "z6Mk...",
"target_path": "/my-document",
"target_version": "bafy2bz...",
"content": [
{
"block": {
"id": "comment-block-1",
"type": "Paragraph",
"text": "Great explanation! One thing to add..."
}
}
],
"signing_key_name": "my-key"
}' localhost:55002 com.seed.documents.v3alpha.Comments/CreateCommentListing Comments
Retrieve all comments for a document:
grpcurl -plaintext -d '{
"target_account": "z6Mk...",
"target_path": "/my-document"
}' localhost:55002 com.seed.documents.v3alpha.Comments/ListCommentsThreaded Replies
To reply to an existing comment, include the reply_parent field with the parent comment's ID:
grpcurl -plaintext -d '{
"target_account": "z6Mk...",
"target_path": "/my-document",
"target_version": "bafy2bz...",
"reply_parent": "z6Mk.../z6FGG...",
"content": [...],
"signing_key_name": "my-key"
}' localhost:55002 com.seed.documents.v3alpha.Comments/CreateCommentComment Capabilities
Anyone can create comments on any document, but having a capability makes your comments propagate with the content. The optional capability field in CreateCommentRequest allows trusted commenters to have their comments automatically distributed.
Managing Comments
The Comments service provides additional operations:
GetComment - retrieve a specific comment by ID
UpdateComment - modify your own comment's content
DeleteComment - remove a comment
ListCommentsByAuthor - find all comments by a specific author
GetCommentReplyCount - get reply count for threading UI
Use Cases
Comments enable several collaboration patterns:
Documentation annotations - add tips and warnings to guides
Peer review - provide feedback on research or proposals
Discussion threads - have conversations about content
Errata - note corrections without modifying the original