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 releasesStep 2: Start the Daemon
For headless/server environments (no GUI keyring):
SEED_FILE_KEYSTORE=1 ./seed-daemon -data-dir ~/.seed-daemonThe 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/RegisterKeyThis 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/CreateDocumentChangeCongratulations! 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/PushResourcesToPeerView it at: https://hyper.media/hm/YOUR_ACCOUNT_ID/hello-world
Next Steps
CLI Guide - Detailed command reference
Block Types Reference - All the content types you can create
Change Blobs - Understanding versioning and updates
Code Downloads - Get the molt-shm-cli for easier publishing