Turn your Obsidian vault into a verifiable, shareable knowledge graph.
Sync your Markdown notes into a local OriginTrail DKG v10 node: private by default, with explicit, per-note sharing into collaborative projects.
Note
DKG v10 is live on mainnet. The plugin talks only to your own local node and works entirely in its free memory layers, so regular use never spends TRAC. The one exception: registering an open (public) project on-chain can require a TRAC deposit on real networks β see Privacy & safety.
- Why use it?
- Features
- Requirements
- Installation
- Getting started
- How it works
- Commands
- Settings
- Development
- DKG API surface
- Privacy & safety
- Roadmap
- License
Obsidian is already one of the best tools for building a personal knowledge base: a second brain where notes, ideas, and references compound over time.
This plugin takes that further. It connects your local-first vault to the OriginTrail Decentralized Knowledge Graph, so selected knowledge can become structured, linked, provenance-aware memory that humans and AI agents can discover, verify, and build on together.
Intelligence is power. Intelligence shared is power multiplied.
You keep writing in Obsidian. The DKG becomes the trust and knowledge-graph layer underneath, and you decide, note by note, what stays private and what gets shared.
- π§ Vault β knowledge graph: every Markdown note is imported into a DKG project named after your vault.
- π Private by default: notes live only on your node until you explicitly share them.
- π Live auto-sync: edits, creates, renames, and deletes are mirrored to the DKG (debounced, not on every keystroke).
- π€ Per-note & per-folder sharing: share an individual note to a project, or route a whole folder to one automatically.
- π Collaborative projects: create or join shared projects (context graphs) and manage members.
- π Discover: browse notes others have shared into a project you're subscribed to.
- π Dashboard & status bar: see your project, sync state, and project readiness at a glance.
- πͺ Guided setup: a 3-step wizard handles connection and the first import.
- Obsidian 1.5.0 or newer.
- A local OriginTrail DKG v10 node (v10.0.7 or newer), up and running and reachable by the plugin (default
http://127.0.0.1:9200), plus its auth token. v10.0.7 is the rootless-Knowledge-Asset release, where sharing a note became seal-then-share and an edited note re-shares cleanly; earlier nodes reject the sharing calls this plugin makes. Notes written by a node older than v10.0.7 stay readable but can no longer be updated - re-import them under a fresh vault to bring them onto the current write path.
Installing and running the node is covered in the OriginTrail DKG repo (npm install -g @origintrail-official/dkg installs the stable mainnet release). Once it's running, grab its base URL and auth token; that's all the plugin needs to connect.
A Community Plugins listing is on the roadmap. Until then, install via BRAT or directly from this repo: the built plugin (
main.js,manifest.json,styles.css) is published on every GitHub Release and committed to the repo, so no build step is needed.
- Install the BRAT plugin from Community Plugins.
- Run BRAT: Add a beta plugin for testing and enter
jakepel03/obsidian-dkg-plugin. - Enable OriginTrail DKG under Settings β Community plugins.
BRAT installs the latest GitHub Release and keeps the plugin updated.
From a clone of this repo, point install at your vault:
make install VAULT="/path/to/your vault"This copies the plugin into <vault>/.obsidian/plugins/origintrail-dkg/. Then enable
it in Obsidian under Settings β Community plugins (turn off Restricted mode if asked).
-
Download
main.js,manifest.json, andstyles.cssfrom the latest release (or from this repo). -
Copy them into your vault at:
<your vault>/.obsidian/plugins/origintrail-dkg/ -
In Obsidian, go to Settings β Community plugins and enable OriginTrail DKG.
If you don't see the plugin, confirm the folder is named exactly
origintrail-dkgwith the three files directly inside it, then fully restart Obsidian.
The first time you open a vault with the plugin enabled, a setup wizard runs (you can re-open it any time with the command Connect this vault):
- Connect: enter your DKG node URL and auth token, then Test the connection.
- Import: links a DKG project to your vault and imports all existing Markdown notes into it.
- Done: auto-sync is now on. Everything is private to your node until you share a note.
Your vault, your graph. Connecting your vault creates a DKG project (context graph) named after your vault and imports your notes into it. This graph is private to your own node.
Edits keep it fresh. Once auto-sync is on, saving a note re-imports it after a short debounce, so the graph tracks your latest writing without syncing on every keystroke.
Sharing is explicit. Nothing leaves your node automatically. You choose what to share:
- Per note: Share current note to a project writes a
shared_tomarker in the note's frontmatter and pushes a copy to that project. - Per folder: define folder β project rules so notes under a folder are shared to a project automatically.
- Stop anytime: Stop sharing current note makes it private again.
Collaborate. Create a project to share into, or join someone else's. Subscribed projects show their sync/readiness state, and Discover lets you browse notes others have shared into a project you've joined.
Important
New projects are curated (invite-only) by default, which is free. Choosing an open (public) project additionally registers it on-chain so anyone can subscribe and read its shared content β and on real networks (mainnet/testnet) that registration can require a TRAC deposit, paid from your node's wallet. On a local development chain registration is free.
All commands are available from the command palette under the OriginTrail DKG prefix.
| Command | What it does |
|---|---|
| Open dashboard | Open the dashboard panel in the right sidebar (also the ribbon icon). |
| Test connection | Verify the plugin can reach your node with the current credentials. |
| Connect this vault | Launch the 3-step setup wizard. |
| Sync current note | Manually sync the active note. |
| Create shared project | Create a new shared project (context graph). |
| Join shared project | Join / subscribe to an existing project. |
| Discover shared notes from a project | Browse notes shared into a subscribed project. |
| Share current note to a project | Share the active note to a chosen project. |
| Stop sharing current note | Make the active note private again. |
Open Settings β OriginTrail DKG:
| Setting | Description |
|---|---|
| DKG node URL | Base URL of your local node (default http://127.0.0.1:9200). |
| Auth token | Token from your DKG node (stored only in this vault's local plugin data). |
| Auto-sync | Mirror note changes to the DKG automatically. |
| Sync debounce | How long to wait after an edit before syncing (default 1.5s). |
| Your projects | Projects you've created or joined, with owner/member roles. |
| Folder rules | Folder β project routing for automatic per-folder sharing. |
pnpm install
pnpm build # type-check + production build β main.js
pnpm test # Vitest suite
pnpm lint # ESLint
pnpm format # Prettier (writes)The Makefile bundles the everyday tasks (run make for the full list):
| Target | Description |
|---|---|
make install VAULT="β¦" |
Copy the committed build into a vault (no rebuild). |
make build |
Type-check + production build. |
make dev |
esbuild watch (rebuilds on save). |
make deploy |
Build + copy into local DKG-testing* vaults (with hot-reload marker). |
make test / make lint / make format |
Test, lint, format. |
The build emits exactly the three files Obsidian loads: main.js, manifest.json,
and styles.css. main.js is committed and CI fails if it drifts from source, so run
pnpm build and commit the result when you change src/.
HTTP endpoints this plugin calls on the DKG node
GET /api/status: node health / connection testGET /api/agent/identity: local agent identityGET /api/context-graph/list: list context graphs (projects)POST /api/context-graph/create: create a projectPOST /api/context-graph/register: register a public/open project on-chain so members can read shared note content (one-time; may require a TRAC registration deposit on real networks)POST /api/context-graph/subscribe: subscribe to a projectPOST /api/context-graph/unsubscribe: drop a project subscriptionPOST /api/context-graph/{id}/request-join,/sign-join,/approve-join,/reject-join,/join-requests: join flowGET /api/context-graph/{id}/participants,POST .../add-participant,.../remove-participant: membership / allowlistPOST /api/knowledge-assets/{name}/wm/import-file: import a note as an assertion (Markdown upload)GET /api/knowledge-assets/{name}/wm/extraction-status: extraction progressPOST /api/knowledge-assets/{name}/swm/share: share (promote) an assertion to shared memoryPOST /api/knowledge-assets/{name}/wm/discard: remove an assertion (cleanup on rename / delete)POST /api/knowledge-assets/semantic-enrichment/write: append resolved-wikilink triples with provenancePOST /api/knowledge-assets/import-artifact/read-markdown: read back a locally-imported note's original MarkdownPOST /api/knowledge-assets/import-artifact/read: fetch a shared note's source Markdown from a peer over P2P (Discover / Fork)POST /api/query: read-only SPARQL query
- Notes are imported into your own node's vault graph and stay private there.
- Sharing is opt-in and explicit, per note or per folder; nothing is published automatically.
- The DKG auth token is stored only in the vault's local plugin data, never transmitted elsewhere.
- Regular use never spends TRAC: notes flow through the node's free memory layers. The single on-chain action is registering an open (public) project, which on real networks may require a TRAC registration deposit from your node's wallet.
- On-chain / Verified Memory publishing is intentionally out of scope.
- Obsidian Community Plugins submission.
- Friendlier in-plugin DKG token discovery.
MIT Β© Jaka Pelko


