Welcome to Seed Hypermedia! This guide will get you from zero to publishing your first document in about 5 minutes.

    What is Seed Hypermedia?

      Seed Hypermedia (SHM) is a decentralized publishing system where:

      • You own your identity (cryptographic keys, not usernames)

      • Content is signed and verifiable

      • Documents sync peer-to-peer across the network

      • No central server can delete or censor your content

    Architecture Overview

      Empty Mermaid block

      The daemon runs locally, manages your keys, signs documents, and syncs with the network.

    Step 1: Install the Daemon

      Download the Seed daemon for your platform from the official releases, or build from source:

      # Clone the repo
      git clone https://github.com/seed-hypermedia/seed
      cd seed
      
      # Build the daemon
      go build -o seed-daemon ./backend/cmd/seed-daemon
      
      # Or download pre-built binary from releases

    Step 2: Start the Daemon

      For headless/server environments (no GUI keyring):

      SEED_FILE_KEYSTORE=1 ./seed-daemon -data-dir ~/.seed-daemon

      The daemon exposes:

      • Port 55001: HTTP API (file uploads, web interface)

      • Port 55002: gRPC API (document operations)

    Step 3: Create Your Identity

      Generate a new key (your identity):

      grpcurl -plaintext -d '{
        "name": "mykey"
      }' localhost:55002 com.seed.daemon.v1alpha.Daemon/GenMnemonic
      
      # SAVE THE MNEMONIC! It's your recovery phrase.

      Register the key:

      grpcurl -plaintext -d '{
        "name": "mykey",
        "mnemonic": "your twelve word mnemonic phrase here ..."
      }' localhost:55002 com.seed.daemon.v1alpha.Daemon/RegisterKey

      This gives you an account ID like z6MkvYf14wnNbjyxwV4rt9D6tNQ5fc8ZaUk4ucJn4mYLpCD6

    Step 4: Create Your First Document

      grpcurl -plaintext -d '{
        "account": "YOUR_ACCOUNT_ID",
        "path": "/hello-world",
        "signingKeyName": "mykey",
        "changes": [
          {"set_metadata": {"key": "name", "value": "Hello World"}},
          {"replace_block": {
            "id": "p1",
            "type": "Paragraph",
            "text": "My first Seed Hypermedia document!"
          }},
          {"move_block": {"block_id": "p1", "parent": "", "left_sibling": ""}}
        ]
      }' localhost:55002 com.seed.documents.v3alpha.Documents/CreateDocumentChange

      Congratulations! Your document is now signed and stored locally.

    Step 5: Publish to the Network

      Push to a gateway so others can see it:

      grpcurl -plaintext -d '{
        "addrs": ["/p2p/12D3KooWEDdEeuY3oHCSKtn1eC7tU9qNWjF9bb8sCtHzpuCjvomQ"],
        "resources": ["hm://YOUR_ACCOUNT_ID/hello-world"],
        "recursive": true
      }' localhost:55002 com.seed.documents.v3alpha.Resources/PushResourcesToPeer

      View it at: https://hyper.media/hm/YOUR_ACCOUNT_ID/hello-world

    Next Steps