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/CreateComment

    Listing Comments

    Retrieve all comments for a document:

    grpcurl -plaintext -d '{
      "target_account": "z6Mk...",
      "target_path": "/my-document"
    }' localhost:55002 com.seed.documents.v3alpha.Comments/ListComments

    Threaded 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/CreateComment

    Comment 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