Contributing a plugin
Find out how to actively participate in improving the DKG Node itself — from submitting bug reports to contributing code, or plugins. Perfect for developers who want to help shape the ecosystem.
Publish a plugin
We welcome contributions from the community! Whether you’ve built a plugin you want to share, fixed a bug, or improved the codebase, your contributions help the DKG Node and agents grow.
This guide explains how to contribute your work to the official DKG Node repository.
How to contribute
1. Fork the repo
Go to the official DKG Node GitHub repo.
Click Fork (top right).
This creates your own copy of the repo under your GitHub account.
2. Clone your fork
git clone https://github.com/YOUR_USER/dkg-node.git
cd dkg-node3. Create a new branch
git checkout -b my-contribution4. Make your changes
Implement your plugin, fix, or feature.
Run tests if applicable.
5. Push changes to your fork
git push origin my-contribution6. Open a Pull Request (PR)
Go to your fork on GitHub.
Click Compare & pull request.
On the PR page, make sure the branches are correct:
base repository:
OriginTrail/dkg-nodebase:
main(or other target branch)compare:
my-contribution
Fill in a clear PR description. A good template:
What: brief summary of the change
Why: the problem it solves / motivation
How: key implementation details
Tests: how you verified it (commands, screenshots)
Breaking changes/migration: if any
Click Create pull request.
The OriginTrail core developer team will review your PR. If everything looks good, it will be merged and published. 🎉
Creating an official DKG Node plugin
If you’ve built a plugin and want it included in the official DKG Node repo:
1. Scaffold a plugin package
From the repo root, run:
turbo gen pluginName it starting with
plugin-(e.g.plugin-custom).A new package will be created at:
packages/plugin-<your-name>/src/index.ts
2. Develop your plugin
Add your logic inside
index.ts.Your package name will be:
@dkg/plugin-<your-name>
3. Submit via PR
Commit your work.
Push it to your fork.
Open a pull request as described above.
Once reviewed and merged, your plugin will be published to npm under the @dkg/ namespace for the community to use.
📖 To learn more about writing plugins, see Create a custom plugin.
Working with packages in the DKG Node monorepo
The DKG Node repo is a Turborepo that contains multiple packages — not just plugins.
Explore packages
Run:
turbo lsYou’ll see entries like:
@dkg/agent→ Example of a DKG agent (Expo UI + MCP Server)@dkg/plugins→ Utility package for creating DKG plugins@dkg/eslint-config→ Shared ESLint configuration@dkg/typescript-config→ Shared TypeScript configs@dkg/plugin-oauth→ OAuth 2.1 module for the DKG Node
Add new packages
Use
turbo gento generate new packages.New packages will be published under the
@dkg/namespace once reviewed and merged.
Repo utilities
The DKG Node monorepo comes with powerful tools preconfigured:
Turborepo → build system with caching
TypeScript → static type checking
Remote caching with Vercel
By default, builds are cached locally. Enable remote caching to share build caches across your team or CI/CD:
npx turbo login # authenticate with your Vercel account
npx turbo link # link this repo to remote cacheLearn more in Turborepo docs.
Further resources
👥 OriginTrail Discord server
📖 Expo framework:
⚡Turborepo:
Last updated
Was this helpful?