diff --git a/docs/.gitbook/assets/Edge_Node_cover (1).png b/docs/.gitbook/assets/Edge_Node_cover (1).png deleted file mode 100644 index b2457b1..0000000 Binary files a/docs/.gitbook/assets/Edge_Node_cover (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/Screen Shot 2023-02-22 at 14.51.44 (1).png b/docs/.gitbook/assets/Screen Shot 2023-02-22 at 14.51.44 (1).png deleted file mode 100644 index a94dc34..0000000 Binary files a/docs/.gitbook/assets/Screen Shot 2023-02-22 at 14.51.44 (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/Screen Shot 2023-02-22 at 14.51.44 (2).png b/docs/.gitbook/assets/Screen Shot 2023-02-22 at 14.51.44 (2).png deleted file mode 100644 index a94dc34..0000000 Binary files a/docs/.gitbook/assets/Screen Shot 2023-02-22 at 14.51.44 (2).png and /dev/null differ diff --git a/docs/.gitbook/assets/Screen Shot 2023-12-15 at 12.32.41 (1).png b/docs/.gitbook/assets/Screen Shot 2023-12-15 at 12.32.41 (1).png deleted file mode 100644 index c681da5..0000000 Binary files a/docs/.gitbook/assets/Screen Shot 2023-12-15 at 12.32.41 (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/Screen Shot 2023-12-18 at 14.10.25 (1).png b/docs/.gitbook/assets/Screen Shot 2023-12-18 at 14.10.25 (1).png deleted file mode 100644 index f1de1b2..0000000 Binary files a/docs/.gitbook/assets/Screen Shot 2023-12-18 at 14.10.25 (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/V8 Timeline (1).png b/docs/.gitbook/assets/V8 Timeline (1).png deleted file mode 100644 index 7b4af39..0000000 Binary files a/docs/.gitbook/assets/V8 Timeline (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/aa (1).png b/docs/.gitbook/assets/aa (1).png deleted file mode 100644 index c7922f5..0000000 Binary files a/docs/.gitbook/assets/aa (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (16).png b/docs/.gitbook/assets/image (16).png deleted file mode 100644 index 6ae4c41..0000000 Binary files a/docs/.gitbook/assets/image (16).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (21).png b/docs/.gitbook/assets/image (21).png deleted file mode 100644 index cdfd5c9..0000000 Binary files a/docs/.gitbook/assets/image (21).png and /dev/null differ diff --git a/docs/.gitbook/assets/image (8).png b/docs/.gitbook/assets/image (8).png deleted file mode 100644 index 6bb2281..0000000 Binary files a/docs/.gitbook/assets/image (8).png and /dev/null differ diff --git a/docs/README.md b/docs/README.md index f4858a1..b06d2dd 100644 --- a/docs/README.md +++ b/docs/README.md @@ -2,7 +2,7 @@ OriginTrail is an ecosystem building **collective, trusted memory** for AI. The core ecosystem technology is the **Decentralized Knowledge Graph (DKG)**, a decentralized, permissionless network of nodes, through which both humans and machines can share knowledge, reason together, and preserve context across time. -Modern AI is powerful but ungrounded. It predicts without knowing, hallucinates, forgets what it said, and relies on data controlled by a few centralized platforms. LLMs in particular have an "explainability" problem - why did an LLM respond a certain way, based on what knowledge, coming from which source? +Modern AI is powerful but ungrounded. It predicts without knowing, hallucinates, forgets what it said, and relies on data controlled by a few centralized platforms. LLMs in particular have an "explainability" problem - why did an LLM respond a certain way, based on what knowledge, coming from which source? The **Decentralized Knowledge Graph (DKG)** hosts **Knowledge Assets** that encode facts, data provenance, and meaning in a tamper-proof way. The network is hosted by a set of independent **DKG Nodes**. Anyone can run a **DKG network Node** - organizations and individuals - contributing to the DKG and at the same time building upon their knowledge in a **privacy-preserving** way. Thus the DKG ensures that no single entity can rewrite, censor, or monopolize the collective memory. Decentralization keeps AI accountable, bias-resistant, and aligned with human diversity. @@ -13,21 +13,22 @@ The DKG grows through human participation. Researchers, developers, and citizens **Core operations** * **Publishing knowledge:** Turning data into structured, verifiable Knowledge Assets -* **Knowledge Discovery:** Querying, traversing, and monetizing knowledge in the decentralized graph and its _paranets_ +* **Knowledge discovery:** Querying, traversing, and monetizing knowledge in the decentralized graph and its _paranets_ * **Trusted sharing:** Cryptographically verify authenticity and provenance of knowledge -* **Neuro-symbolic Reasoning**: Infer new facts based on rules, leveraging graph-based reasoning in combination with LLMs and GenAI models +* **Neuro-symbolic reasoning**: Infer new facts based on rules, leveraging graph-based reasoning in combination with LLMs and GenAI models -We encourage developers to [try out the DKG Node](getting-started/decentralized-knowle-dge-graph-dkg.md) and build their first DKG based agent with it, to get a feel of what the technology can do. +We encourage developers to [try out the DKG Node](getting-started/decentralized-knowledge-graph-dkg.md) and build their first DKG based agent with it, to get a feel of what the technology can do. ### Three ways to get started -
Cover image
Build your DKG AgentBegin your journey on the Decentralized Knowledge Graph by staking TRAC and setting up your first DKG Node. This is your entry point into the verifiable knowledge economyDelegated Staking.png
Contrubute to the DKGActivate your DKG Node and join the decentralized knowledge economy by staking TRAC.DKG key concepts.pngdkg-key-concepts.md
Learn more about the DKGExplore the core concepts behind the DKG and how it powers verifiable, intelligent AI.DKG under the hood.png
+
Cover image
Build your DKG AgentBegin your journey on the Decentralized Knowledge Graph by setting up your first DKG Node and Agent. This is your entry point into the verifiable knowledge economy.Delegated Staking.png
Contribute to the DKGActivate your DKG Node and join the decentralized knowledge economy by staking TRAC.DKG key concepts.pngdkg-key-concepts.md
Learn more about the DKGExplore the core concepts behind the DKG and how it powers verifiable, intelligent AI.DKG under the hood.png
+ + {% hint style="success" %} -This site is a constantly updated, work-in-progress official OriginTrail documentation built by the OriginTrail community and core developers. +This site is a constantly updated, work-in-progress official OriginTrail documentation built by the OriginTrail community and core developers. -Find the "Edit on GitHub" button in the upper-right corner and submit your updates as pull requests (or do it directly in the [docs GitHub repo).](https://github.com/OriginTrail/dkg-docs) +Find the "Edit on GitHub" button in the upper-right corner and submit your updates as pull requests (or do it directly in the [docs GitHub repo).](https://github.com/OriginTrail/dkg-docs) We appreciate any feedback, improvement ideas, and comments. {% endhint %} - diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index a7ee982..db8f00d 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -5,7 +5,7 @@ ## Getting Started -* [Installation](getting-started/decentralized-knowle-dge-graph-dkg.md) +* [Installation — Edge Node](getting-started/decentralized-knowledge-graph-dkg.md) * [Interacting with your DKG Agent](getting-started/interacting-with-your-dkg-agent.md) * [DKG Node Services](getting-started/dkg-node-services.md) * [Basic Knowledge Asset operations](getting-started/basic-knowledge-asset-operations.md) @@ -16,6 +16,7 @@ * [Architecture](build-a-dkg-node-ai-agent/architecture.md) * [Essentials Plugin](build-a-dkg-node-ai-agent/essentials-plugin.md) +* [Using the DKG client](build-a-dkg-node-ai-agent/using-the-dkg-client.md) * [Customizing your DKG agent](build-a-dkg-node-ai-agent/customizing-your-dkg-agent.md) * [Evaluating agent responses](build-a-dkg-node-ai-agent/evaluating-agent-responses.md) * [Set up your custom DKG Node fork & update flow](build-a-dkg-node-ai-agent/set-up-your-custom-dkg-node-fork-and-update-flow.md) @@ -41,7 +42,7 @@ * [IPO voting](build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-paranets/initial-paranet-offerings-ipos/ipo-voting.md) * [Contributing a plugin](build-a-dkg-node-ai-agent/contributing-a-plugin.md) -## Contribute to the DKG +## Contribute to the DKG * [Hackathon: Scaling Trust in the Age of AI](contribute-to-the-dkg/hackathon-scaling-trust-in-the-age-of-ai/README.md) * [DKG Social Graph Query Guide](contribute-to-the-dkg/hackathon-scaling-trust-in-the-age-of-ai/dkg-social-graph-query-guide.md) @@ -68,7 +69,7 @@ * [Learn more](dkg-knowledge-hub/learn-more/README.md) * [Understanding OriginTrail](dkg-knowledge-hub/learn-more/readme/README.md) - * [OriginTrail Decentralized Knowledge Graph (DKG)](dkg-knowledge-hub/learn-more/readme/decentralized-knowle-dge-graph-dkg.md) + * [OriginTrail Decentralized Knowledge Graph (DKG)](dkg-knowledge-hub/learn-more/readme/decentralized-knowledge-graph-dkg.md) * [Development principles](dkg-knowledge-hub/learn-more/readme/development-principles.md) * [Linked data & knowledge graphs](dkg-knowledge-hub/learn-more/readme/kg.md) * [Core DKG concepts](dkg-knowledge-hub/learn-more/readme/dkg-key-concepts.md) @@ -83,7 +84,7 @@ * [Random Sampling & proofs explained](dkg-knowledge-hub/learn-more/introduction/random-sampling-dkg-proof-system/README.md) * [Random Sampling rollout](dkg-knowledge-hub/learn-more/introduction/random-sampling-dkg-proof-system/random-sampling-rollout.md) * [Random Sampling FAQ](dkg-knowledge-hub/learn-more/introduction/random-sampling-dkg-proof-system/random-sampling-faq.md) - * [Rules & token thresholds](dkg-knowledge-hub/learn-more/introduction/rules-and-token-thresholds.md) + * [Edge Vs. Core Node — Rules & token thresholds](dkg-knowledge-hub/learn-more/introduction/edge-vs.-core-node-rules-and-token-thresholds.md) * [Connected blockchains](dkg-knowledge-hub/learn-more/connected-blockchains/README.md) * [NeuroWeb Parachain](dkg-knowledge-hub/learn-more/connected-blockchains/neuroweb.md) * [Base Network (L2)](dkg-knowledge-hub/learn-more/connected-blockchains/base-blockchain/README.md) @@ -98,6 +99,7 @@ * [Protocol updates](dkg-knowledge-hub/learn-more/previous-updates/dkg-v8.0-update-guidebook/protocol-updates.md) * [Feature roadmap](dkg-knowledge-hub/learn-more/previous-updates/dkg-v8.0-update-guidebook/feature-roadmap.md) * [How to upgrade to V8?](dkg-knowledge-hub/learn-more/previous-updates/dkg-v8.0-update-guidebook/how-to-upgrade-to-v8.md) + * [Staking cap & outstanding network rewards release](dkg-knowledge-hub/learn-more/previous-updates/staking-threshold-update-and-outstanding-network-rewards-release.md) * [What is a DKG Node?](dkg-knowledge-hub/learn-more/decentralized-knowle-dge-graph-dkg.md) * [How-tos & tutorials](dkg-knowledge-hub/how-tos-and-tutorials/README.md) * [Fund your Web3 wallets](dkg-knowledge-hub/how-tos-and-tutorials/fund-your-web3-wallets.md) diff --git a/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-paranets/building-with-dkg-paranets.md b/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-paranets/building-with-dkg-paranets.md index adae5ce..49c34c6 100644 --- a/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-paranets/building-with-dkg-paranets.md +++ b/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-paranets/building-with-dkg-paranets.md @@ -6,21 +6,21 @@ Paranets are like "virtual" knowledge graphs on the OriginTrail Decentralized Kn \***A** **knowledge collection (KC)** is a **collection of Knowledge Assets.** It refers to structured data that can be stored, shared, and validated within a distributed network. {% endhint %} -To gain access to the paranet knowledge graph, you can deploy a [DKG node](../../../getting-started/decentralized-knowle-dge-graph-dkg.md) and set it up to host the paranet (or "sync" it). More information is available on the [Sync a DKG Paranet](syncing-a-dkg-paranet.md) page. +To gain access to the paranet knowledge graph, you can deploy a [DKG node](../../../getting-started/decentralized-knowledge-graph-dkg.md) and set it up to host the paranet (or "sync" it). More information is available on the [Sync a DKG Paranet](syncing-a-dkg-paranet.md) page. **A direct code example of paranets in use can be found here —** [**Paranet Demo**](https://github.com/OriginTrail/dkg.js/blob/v8/develop/examples/paranet-demo.js) ### Querying paranets -Once you have access to the paranet knowledge graph via a gateway node, you can use one of the [DKG SDKs](../dkg-sdk/) to interact with it. It is also possible to open your triple store SPARQL endpoint directly and query the paranet knowledge graph in its own repository (the paranet repository name is equivalent to the paranet profile Knowledge Asset UAL, with dash characters instead of slashes). +Once you have access to the paranet knowledge graph via a gateway node, you can use one of the [DKG SDKs](../dkg-sdk/) to interact with it. It is also possible to open your triple store SPARQL endpoint directly and query the paranet knowledge graph in its own repository (the paranet repository name is equivalent to the paranet profile Knowledge Asset UAL, with dash characters instead of slashes). -Using SPARQL, it is possible to query and integrate knowledge from multiple paranets and the entire DKG in a single query using SPARQL federated queries. +Using SPARQL, it is possible to query and integrate knowledge from multiple paranets and the entire DKG in a single query using SPARQL federated queries. ### Running paranet services Paranets enable registering and exposing both on-chain and off-chain services associated with it. A paranet service can be identified by all users of the paranet via its registry Knowledge Asset and can have multiple on-chain accounts associated with it, enabling them to engage in economic activity within the DKG. Examples of paranet services are AI agents (e.g., autonomous reasoners mining knowledge collections), chatbots (e.g., [Polkabot](https://polkabot.ai/)), oracle feeds, LLMs, dRAG APIs, etc. -Paranet operators manage the services through the Paranet Services Registry smart contracts or DKG SDK. +Paranet operators manage the services through the Paranet Services Registry smart contracts or DKG SDK. ### Paranet permissions @@ -35,6 +35,3 @@ There are three permission policies for paranet: * Knowledge Asset submission access policy: * OPEN—Any Knowledge Asset can be added to the _paranet._ * STAGING—Knowledge miners first submit the Knowledge Asset to staging, where it is reviewed by curators chosen by the paranet owner. The curators can _approve_ (and automatically add a Knowledge Asset to the paranet) or _deny the_ staged Knowledge Asset (which then doesn't get added to the paranet). - - - diff --git a/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-paranets/syncing-a-dkg-paranet.md b/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-paranets/syncing-a-dkg-paranet.md index 8eefd09..72b6e8f 100644 --- a/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-paranets/syncing-a-dkg-paranet.md +++ b/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-paranets/syncing-a-dkg-paranet.md @@ -1,10 +1,10 @@ # Sync a paranet -To interact with specific DKG paranet's knowledge graphs using your OriginTrail node, you need to configure your node to synchronize the paranet's knowledge collections. This setup can be achieved by modifying your node's configuration file to include the paranet UAL. +To interact with specific DKG paranet's knowledge graphs using your OriginTrail node, you need to configure your node to synchronize the paranet's knowledge collections. This setup can be achieved by modifying your node's configuration file to include the paranet UAL. -If you have not yet set up your node or need guidance on configuring a DKG Node, please refer to the [Installation guide](../../../getting-started/decentralized-knowle-dge-graph-dkg.md). +If you have not yet set up your node or need guidance on configuring a DKG Node, please refer to the [Installation guide](../../../getting-started/decentralized-knowledge-graph-dkg.md). -To enable your node to sync with a paranet, you will need to add `assetSync` object to your node’s `.origintrail_noderc` file. Below is an example of how to configure this (make sure to replace the UAL in the example below): +To enable your node to sync with a paranet, you will need to add `assetSync` object to your node’s `.origintrail_noderc` file. Below is an example of how to configure this (make sure to replace the UAL in the example below): ```json "assetSync": { @@ -42,4 +42,3 @@ Paranet sync: KA count from contract and in DB is the same, nothing new to sync, ``` Interacting with the paranet knowledge graph through your node is explained on [this](building-with-dkg-paranets.md) page. - diff --git a/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-sdk/README.md b/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-sdk/README.md index 7cea669..9afa300 100644 --- a/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-sdk/README.md +++ b/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-sdk/README.md @@ -10,18 +10,14 @@ OriginTrail dev tutorial: SDK walkthrough The OriginTrail SDKs are client libraries for your applications that enable your applications to interact with the OriginTrail Decentralized Knowledge Graph (DKG). -From an architectural standpoint, the SDK libraries are application interfaces into the DKG. They enable you to create and manage **Knowledge Assets** through your apps and perform network queries (such as search or SPARQL queries), as illustrated below. +From an architectural standpoint, the SDK libraries are application interfaces into the DKG. They enable you to create and manage **Knowledge Assets** through your apps and perform network queries (such as search or SPARQL queries), as illustrated below.

The interplay between your app, DKG and blockchains

- - The OriginTrail SDK currently comes in two forms: -* Javascript SDK - [**dkg.js**](dkg-v8-js-client/) -* Python SDK - [**dkg.py**](dkg-v8-py-client/)**.** - - +* Javascript SDK - [**dkg.js**](dkg-v8-js-client/) +* Python SDK - [**dkg.py**](dkg-v8-py-client/)**.** ### Try out the SDK @@ -37,16 +33,14 @@ Set up a development environment using one of the following options: * **Deploy your node on the DKG testnet (recommended):**\ This option allows you to quickly experiment with the SDK on a testnet of your choice.\ - Follow the [Installation guide](../../../getting-started/decentralized-knowle-dge-graph-dkg.md) for setup instructions. + Follow the [Installation guide](../../../getting-started/decentralized-knowledge-graph-dkg.md) for setup instructions. * **Deploy your node on a local DKG network:**\ Use this option to set up a fully localized development environment by following the [Development environment setup guide](setting-up-your-development-environment.md). - - SDKs for other programming languages would be welcome contributions to the project. The core development team is also considering including them in the roadmap. {% hint style="info" %} -Interested in building a DKG SDK in a particular programming language? We'd love to support you. +Interested in building a DKG SDK in a particular programming language? We'd love to support you. Create an [issue](https://github.com/OriginTrail/ot-node/issues) on our GitHub, and let's get the conversation started! {% endhint %} diff --git a/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-sdk/dkg-v8-js-client/README.md b/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-sdk/dkg-v8-js-client/README.md index 08f2fdb..e48f7e5 100644 --- a/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-sdk/dkg-v8-js-client/README.md +++ b/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-sdk/dkg-v8-js-client/README.md @@ -6,7 +6,7 @@ description: Javascript library for the Decentralized Knowledge Graph. If you are looking to build applications leveraging [Knowledge Assets](./#create-a-knowledge-asset) on the OriginTrail Decentralized Knowledge Graph (DKG), the dkg.js SDK library is the best place to start! -The DKG SDK is used together with an **OriginTrail gateway node** to build applications that interface with the OriginTrail DKG (the node is a dependency). Therefore, to use the SDK, you either need to run a gateway node on [your local environment](../setting-up-your-development-environment.md) or a [hosted DKG Node](../../../../getting-started/decentralized-knowle-dge-graph-dkg.md). +The DKG SDK is used together with an **OriginTrail gateway node** to build applications that interface with the OriginTrail DKG (the node is a dependency). Therefore, to use the SDK, you either need to run a gateway node on [your local environment](../setting-up-your-development-environment.md) or a [hosted DKG Node](../../../../getting-started/decentralized-knowledge-graph-dkg.md). ## Prerequisites @@ -61,7 +61,7 @@ const DKG = require('dkg.js'); OriginTrail dev tutorial: SDK walkthrough {% endembed %} -To use the DKG library, you need to connect to a running local or remote OT-node. +To use the DKG library, you need to connect to a running local or remote OT-node. ```javascript const dkg = new DKG({ @@ -109,9 +109,9 @@ The system uses default publicly available RPCs for each chain. However, because ## Create a Knowledge Asset -In this example, let’s create an example Knowledge Asset representing a city. The content contains both public and private assertions. Public assertions will be exposed publicly (replicated to other nodes), while private ones won't (stay on the node you published to only). +In this example, let’s create an example Knowledge Asset representing a city. The content contains both public and private assertions. Public assertions will be exposed publicly (replicated to other nodes), while private ones won't (stay on the node you published to only). -If you have access to the particular node that has the data, when you search for it using get or query, you will see both public and private assertions. +If you have access to the particular node that has the data, when you search for it using get or query, you will see both public and private assertions. ```javascript const content = { @@ -346,7 +346,7 @@ The response of the get operation will be the assertion graph: ## Querying Knowledge Asset data with SPARQL -Querying the DKG is done by using the SPARQL query language, which is very similar to SQL applied to graph data. +Querying the DKG is done by using the SPARQL query language, which is very similar to SQL applied to graph data. _(If you have SQL experience, SPARQL should be relatively easy to get started with. More information_[ _can be found here_](https://www.w3.org/TR/rdf-sparql-query/)_)._ @@ -378,7 +378,7 @@ The returned response will contain an array of n-quads: } -As the OriginTrail node leverages a fully fledged graph database (a triple store supporting RDF), you can run arbitrary SPARQL queries on it. +As the OriginTrail node leverages a fully fledged graph database (a triple store supporting RDF), you can run arbitrary SPARQL queries on it. To learn more about querying the DKG, go [here](../../querying-the-dkg.md). @@ -390,7 +390,7 @@ We can divide operations done by SDK into 3 types: * Smart contract call (non-state-changing interaction) * Smart contract transaction (state-changing interaction) -Non-state-changing interactions with smart contracts are free and can be described as contract-getters. They don’t require transactions on the blockchain. This means they do not incur transaction fees. +Non-state-changing interactions with smart contracts are free and can be described as contract-getters. They don’t require transactions on the blockchain. This means they do not incur transaction fees. Smart contract transactions are state-changing operations. This means they change the state of the smart contract memory, which requires some blockchain-native gas tokens (such as ETH, NEURO, etc.). diff --git a/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-sdk/dkg-v8-py-client/README.md b/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-sdk/dkg-v8-py-client/README.md index dc819f4..81ced4d 100644 --- a/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-sdk/dkg-v8-py-client/README.md +++ b/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-sdk/dkg-v8-py-client/README.md @@ -6,7 +6,7 @@ description: Python library for interacting with the DKG If you are looking to build applications leveraging [Knowledge Assets](./#create-a-knowledge-collection) on the OriginTrail Decentralized Knowledge Graph (DKG), the dkg.py library is the best place to start! -The DKG SDK is used together with an **OriginTrail gateway node** to build applications that interface with the OriginTrail DKG (the node is a dependency). Therefore, you either need to run a gateway node on [your local environment](../setting-up-your-development-environment.md) or a [hosted DKG Node](../../../../getting-started/decentralized-knowle-dge-graph-dkg.md), in order to use the SDK. +The DKG SDK is used together with an **OriginTrail gateway node** to build applications that interface with the OriginTrail DKG (the node is a dependency). Therefore, you either need to run a gateway node on [your local environment](../setting-up-your-development-environment.md) or a [hosted DKG Node](../../../../getting-started/decentralized-knowledge-graph-dkg.md), in order to use the SDK. ## Prerequisites @@ -37,7 +37,7 @@ poetry add dkg==8.0.1 ## :snowboarder: Quickstart -This package includes both synchronous and asynchronous versions of the DKG client. +This package includes both synchronous and asynchronous versions of the DKG client. The synchronous client is designed for applications that accept blocking calls. It operates sequentially, making it simpler to integrate into existing codebases that do not use asynchronous programming. @@ -45,7 +45,7 @@ The asynchronous client is built for non-blocking operations, making it ideal fo ### Synchronous DKG client -To use the Synchronous DKG library, you need to connect to a running local or remote OT-node. +To use the Synchronous DKG library, you need to connect to a running local or remote OT-node.
from dkg import DKG
 from dkg.providers import BlockchainProvider, NodeHTTPProvider
@@ -127,7 +127,7 @@ The system supports multiple blockchain networks, which can be configured using
 
 ## Create a Knowledge Collection
 
-In this example, let’s create an example Knowledge Collection representing a city. The content contains both public and private assertions. Public assertions will be exposed publicly (replicated to other nodes), while private ones won't (stay on the node you published to only). If you have access to the particular node that has the data, when you search for it using get or query, you will see both public and private assertions. 
+In this example, let’s create an example Knowledge Collection representing a city. The content contains both public and private assertions. Public assertions will be exposed publicly (replicated to other nodes), while private ones won't (stay on the node you published to only). If you have access to the particular node that has the data, when you search for it using get or query, you will see both public and private assertions.
 
 ```python
 const content = {
@@ -312,7 +312,7 @@ The response of the get operation will be the assertion graph:
 
 ## Querying Knowledge Asset data with SPARQL
 
-Querying the DKG is done by using the SPARQL query language, which is very similar to SQL applied to graph data. 
+Querying the DKG is done by using the SPARQL query language, which is very similar to SQL applied to graph data.
 
 _(If you have SQL experience, SPARQL should be relatively easy to get started with. More information_[ _can be found here_](https://www.w3.org/TR/rdf-sparql-query/)_)._
 
@@ -346,7 +346,7 @@ The returned response will contain an array of n-quads:
 }
 ```
 
-As the OriginTrail node leverages a fully fledged graph database (a triple store supporting RDF), you can run arbitrary SPARQL queries on it. 
+As the OriginTrail node leverages a fully fledged graph database (a triple store supporting RDF), you can run arbitrary SPARQL queries on it.
 
 To learn more about querying the DKG, go [here](../../querying-the-dkg.md).
 
@@ -358,7 +358,7 @@ We can divide operations done by SDK into 3 types:
 * Smart contract call (non-state-changing interaction)
 * Smart contract transaction (state-changing interaction)
 
-Non-state-changing interactions with smart contracts are free and can be described as contract-getters. They don’t require transactions on the blockchain. This means they do not incur transaction fees. 
+Non-state-changing interactions with smart contracts are free and can be described as contract-getters. They don’t require transactions on the blockchain. This means they do not incur transaction fees.
 
 Smart contract transactions are state-changing operations. This means they change the state of the smart contract memory, which requires some blockchain-native gas tokens (such as ETH, NEURO, etc.).
 
diff --git a/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-sdk/setting-up-your-development-environment.md b/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-sdk/setting-up-your-development-environment.md
index 51523a5..67b28f7 100644
--- a/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-sdk/setting-up-your-development-environment.md
+++ b/docs/build-a-dkg-node-ai-agent/advanced-features-and-toolkits/dkg-sdk/setting-up-your-development-environment.md
@@ -6,7 +6,7 @@ description: How to setup a local and shared development environment
 
 ## Running node engines on the DKG testnet (recommended)
 
-We recommend following the [Installation guide](../../../getting-started/decentralized-knowle-dge-graph-dkg.md) for testnet setup instructions.
+We recommend following the [Installation guide](../../../getting-started/decentralized-knowledge-graph-dkg.md) for testnet setup instructions.
 
 ## Running a local DKG network
 
@@ -50,7 +50,7 @@ Then, install the required dependencies by running:
 npm install
 ```
 
-Next, create a file called  `.env` and add the following lines:
+Next, create a file called `.env` and add the following lines:
 
 ```sh
 NODE_ENV=development
@@ -61,7 +61,7 @@ RPC_ENDPOINT_BC2=http://127.0.0.1:9545
 To start the local DKG network, run the **local network setup** script to install multiple node engines in the local environment. To ensure stability of operation, it is recommended to run at least 5 node engines (1 bootstrap and 4 subsequent node engines).
 
 {% hint style="warning" %}
-The scripts below only work for macOS and Linux (or Windows WSL). 
+The scripts below only work for macOS and Linux (or Windows WSL).
 
 If you need help with the setup, contact the core development team on [Discord](https://discord.com/invite/FCgYk2S).
 {% endhint %}
@@ -79,14 +79,12 @@ To start the local DKG network on **Linux**, run the following command:
 ./tools/local-network-setup/setup-linux-environment.sh --nodes=5
 ```
 
-
-
 {% hint style="info" %}
-### Contributing
+#### Contributing
 
 These setup instructions are a work in progress and are subject to change. The core development team expects to introduce improvements in setting up the DKG node engine in the local environment in the future.
 
-As DKG Node is open source, we **happily invite you to contribute to building the Decentralized Knowledge Graph.** We're excited about your contributions! 
+As DKG Node is open source, we **happily invite you to contribute to building the Decentralized Knowledge Graph.** We're excited about your contributions!
 
 Please visit the [GitHub](https://github.com/OriginTrail/ot-node) repo for more info.
 {% endhint %}
diff --git a/docs/build-a-dkg-node-ai-agent/contributing-a-plugin.md b/docs/build-a-dkg-node-ai-agent/contributing-a-plugin.md
index 25ed279..4857842 100644
--- a/docs/build-a-dkg-node-ai-agent/contributing-a-plugin.md
+++ b/docs/build-a-dkg-node-ai-agent/contributing-a-plugin.md
@@ -150,7 +150,7 @@ Learn more in Turborepo docs.
 
 ### Further resources
 
-👥 OriginTrail Discord server
+👥 OriginTrail [Discord](https://discord.com/invite/xCaY7hvNwD) server
 
 📖 **Expo framework:**
 
@@ -165,4 +165,3 @@ Learn more in Turborepo docs.
 * [Filtering](https://turborepo.com/docs/crafting-your-repository/running-tasks#using-filters)
 * [Configuration Options](https://turborepo.com/docs/reference/configuration)
 * [CLI Usage](https://turborepo.com/docs/reference/command-line-reference)
-
diff --git a/docs/build-a-dkg-node-ai-agent/essentials-plugin.md b/docs/build-a-dkg-node-ai-agent/essentials-plugin.md
index 6c50817..8fad8a0 100644
--- a/docs/build-a-dkg-node-ai-agent/essentials-plugin.md
+++ b/docs/build-a-dkg-node-ai-agent/essentials-plugin.md
@@ -16,6 +16,7 @@ The **DKG Node Essentials Plugin** ships preinstalled with every DKG Node. It pr
 
 * **DKG Knowledge Asset create tool** - basic too to publish Knowledge assets from a JSON-LD object with `public` or `private` visibility
 * **DKG Knowledge Asset get** tool - retrieve a Knowledge asset by it's **UAL**.
+* **DKG SPARQL query tool** - execute SPARQL SELECT and CONSTRUCT queries on the DKG to search and retrieve knowledge.
 
 Publishing Knowledge assets with the "public" visibility, will replicate their content to the entirety of the DKG - making it **publicly visible**. When creating private knowledge assets, their content never leaves your node - only knowledge asset registration material (such as the cryptographic hash and UALs) will be published publicly.
 
@@ -72,7 +73,7 @@ DKG Explorer link: https://dkg-testnet.origintrail.io/explore?ual=did:dkg:otp:20
 
 ***
 
-#### 2) DKG Knowledge Asset **get**
+#### 2) DKG Knowledge Asset get
 
 **Purpose**\
 Fetch a **KA or KC** by **UAL**.
@@ -126,9 +127,75 @@ did:dkg:otp:20430/0xABCDEF0123456789/12345/67890
 }
 ```
 
+#### 3) **DKG SPARQL query tool**
+
+**Purpose**\
+Execute SPARQL queries on the DKG to search, filter, and retrieve knowledge. Supports both SELECT queries (tabular results) and CONSTRUCT queries (graph/N-triples output).
+
+**Inputs**
+
+* `query` _(string, required)_ — a valid SPARQL SELECT or CONSTRUCT query.
+
+**Returns**
+
+All tools return an **MCP-formatted** payload:
+
+* `content` _(array)_ — one item containing:
+  * For **SELECT** queries: JSON-formatted bindings with the query results.
+  * For **CONSTRUCT** queries: N-triples formatted graph data.
+
+**Example input (SELECT query)**
+
+```
+SELECT ?name ?description
+WHERE {
+  ?s  ?name .
+  ?s  ?description .
+}
+LIMIT 10
+```
+
+**Typical response (SELECT)**
+
+```json
+{
+  "data": [
+    {
+      "name": "\"Hello DKG\"",
+      "description": "\"My first Knowledge Asset on the Decentralized Knowledge Graph!\""
+    },
+    {
+      "name": "\"DKG Example KA\"",
+      "description": "\"The best KA example on the DKG\""
+    }
+  ]
+}
+```
+
+**Example input (CONSTRUCT query)**
+
+```
+CONSTRUCT { ?s  ?name }
+WHERE { ?s  ?name }
+LIMIT 10
+```
+
+**Typical response (CONSTRUCT)**
+
+```
+  "Jane Doe" .
+  "John Smith" .
+  "Alice Wonder" .
+```
+
+**Notes**
+
+* Only **SELECT** and **CONSTRUCT** query types are supported. UPDATE operations (INSERT, DELETE, MODIFY) are not allowed.
+* Invalid SPARQL syntax will return a validation error before execution.
+* Results are automatically formatted based on query type for optimal readability.
+
 ### Coming soon (preview)
 
-* **DKG query & retrieve** - generate/execute Schema.org-based **SPARQL** queries on the DKG.
 * **Document → JSON/Markdown** - convert PDFs/Word/TXT/… into JSON/Markdown for downstream processing.
 * **JSON/Markdown → JSON-LD** - transform structured text into a **schema.org** knowledge graph ready for publishing.
 
diff --git a/docs/build-a-dkg-node-ai-agent/set-up-your-custom-dkg-node-fork-and-update-flow.md b/docs/build-a-dkg-node-ai-agent/set-up-your-custom-dkg-node-fork-and-update-flow.md
index f3cff38..2da3f4f 100644
--- a/docs/build-a-dkg-node-ai-agent/set-up-your-custom-dkg-node-fork-and-update-flow.md
+++ b/docs/build-a-dkg-node-ai-agent/set-up-your-custom-dkg-node-fork-and-update-flow.md
@@ -75,13 +75,13 @@ Your custom DKG Node repository is now set up with:
 
 ## Configure and start your custom DKG Node project
 
-Once this setup process is complete, you are ready to configure and run your custom DKG Node using the `dkg-cli`. The `dkg-cli` provides automated installation, configuration management, and service control for your DKG Node. Detailed instructions on how to use `dkg-cli` to configure your node, and manage its services are available in the [**Installation**](../getting-started/decentralized-knowle-dge-graph-dkg.md#id-1-install-cli) page under "Getting started" section.
+Once this setup process is complete, you are ready to configure and run your custom DKG Node using the `dkg-cli`. The `dkg-cli` provides automated installation, configuration management, and service control for your DKG Node. Detailed instructions on how to use `dkg-cli` to configure your node, and manage its services are available in the [**Installation**](../getting-started/decentralized-knowledge-graph-dkg.md#id-1-install-cli) page under "Getting started" section.
 
-## Update your custom DKG Node project  
+## Update your custom DKG Node project 
 
 When a new version of DKG Node is released, follow the process steps below to update your custom DKG Node project.
 
-**1. Fetch the latest changes from upstream:** 
+**1. Fetch the latest changes from upstream:**
 
 ```sh
 git fetch upstream
@@ -103,7 +103,7 @@ Most projects will encounter differences between upstream and local changes. Rev
 git push origin main
 ```
 
-## You’re up to date 
+## You’re up to date
 
 At this point, your codebase is synced with the latest official [DKG Node](https://github.com/OriginTrail/dkg-node) while keeping your customizations intact.
 
diff --git a/docs/build-a-dkg-node-ai-agent/using-the-dkg-client.md b/docs/build-a-dkg-node-ai-agent/using-the-dkg-client.md
new file mode 100644
index 0000000..301f57f
--- /dev/null
+++ b/docs/build-a-dkg-node-ai-agent/using-the-dkg-client.md
@@ -0,0 +1,568 @@
+---
+description: >-
+  Learn how to use the DKG client (ctx.dkg) in your plugins to query, retrieve, 
+  and publish Knowledge Assets on the OriginTrail Decentralized Knowledge Graph.
+---
+
+# Using the DKG client
+
+When building plugins for your DKG Node, you have access to `ctx.dkg` — a powerful client that lets you interact directly with the OriginTrail Decentralized Knowledge Graph. This page covers the core operations you'll use most often: **querying**, **getting**, and **publishing** Knowledge Assets.
+
+{% hint style="info" %}
+💡 **Quick Reference:** The `ctx.dkg` client is an instance of [dkg.js](advanced-features-and-toolkits/dkg-sdk/dkg-v8-js-client/) that's pre-configured and injected into every plugin via the `defineDkgPlugin` function.
+{% endhint %}
+
+## Accessing the DKG client
+
+Inside your plugin, you receive `ctx` as the first argument to `defineDkgPlugin`. The DKG client is available at `ctx.dkg`:
+
+```ts
+import { defineDkgPlugin } from "@dkg/plugins";
+
+export default defineDkgPlugin((ctx, mcp, api) => {
+  // ctx.dkg is your DKG client instance
+  // ctx.blob is the blob storage for file handling
+  
+  // Register tools and routes that use ctx.dkg...
+});
+```
+
+***
+
+## Querying the DKG with SPARQL
+
+The most powerful way to explore and retrieve data from the DKG is through SPARQL queries. SPARQL is a query language for RDF data — think of it like SQL, but for graph databases.
+
+### Basic query syntax
+
+Use `ctx.dkg.graph.query()` to execute SPARQL queries:
+
+```ts
+const result = await ctx.dkg.graph.query(
+  `PREFIX schema: 
+   SELECT ?subject ?name
+   WHERE {
+     ?subject schema:name ?name .
+   }`,
+  "SELECT"  // Query type: SELECT, CONSTRUCT, ASK, or DESCRIBE
+);
+```
+
+### Query types
+
+| Type        | Description                              | Returns                                 |
+| ----------- | ---------------------------------------- | --------------------------------------- |
+| `SELECT`    | Returns variable bindings (rows of data) | Array of objects with variable bindings |
+| `CONSTRUCT` | Builds a new RDF graph from results      | RDF triples in JSON-LD format           |
+| `ASK`       | Boolean query — does a pattern exist?    | `true` or `false`                       |
+| `DESCRIBE`  | Returns RDF data about a resource        | RDF description of the resource         |
+
+### Query response structure
+
+```ts
+{
+  "status": "COMPLETED",
+  "data": [
+    { "subject": "https://example.org/entity1", "name": "Example Entity" },
+    { "subject": "https://example.org/entity2", "name": "Another Entity" }
+  ]
+}
+```
+
+### Example: Building a query tool
+
+Here's a complete example of registering an MCP tool that queries the DKG:
+
+```ts
+import { defineDkgPlugin } from "@dkg/plugins";
+import { z } from "@dkg/plugins/helpers";
+
+export default defineDkgPlugin((ctx, mcp) => {
+  mcp.registerTool(
+    "search-entities",
+    {
+      title: "Search DKG Entities",
+      description: "Search for entities by name in the DKG",
+      inputSchema: {
+        searchTerm: z.string().describe("Name or partial name to search for"),
+      },
+    },
+    async ({ searchTerm }) => {
+      const query = `
+        PREFIX schema: 
+        PREFIX dkg: 
+        
+        SELECT ?entity ?name ?type
+        WHERE {
+          GRAPH  {
+            ?g dkg:hasNamedGraph ?kaGraph .
+          }
+          GRAPH ?kaGraph {
+            ?entity schema:name ?name .
+            OPTIONAL { ?entity a ?type }
+            FILTER(CONTAINS(LCASE(STR(?name)), LCASE("${searchTerm}")))
+          }
+        }
+        LIMIT 20
+      `;
+      
+      const result = await ctx.dkg.graph.query(query, "SELECT");
+      
+      return {
+        content: [{
+          type: "text",
+          text: JSON.stringify(result.data, null, 2)
+        }],
+      };
+    }
+  );
+});
+```
+
+### Common query patterns
+
+#### Query all current Knowledge Assets
+
+Use `` to filter for currently valid Knowledge Assets (KAs):
+
+```sparql
+PREFIX schema: 
+PREFIX dkg: 
+
+SELECT ?subject ?predicate ?object
+WHERE {
+  GRAPH  {
+    ?g dkg:hasNamedGraph ?kaGraph .
+  }
+  GRAPH ?kaGraph {
+    ?subject ?predicate ?object .
+  }
+}
+LIMIT 100
+```
+
+#### Query within a specific paranet
+
+Restrict queries to a paranet scope:
+
+```sparql
+PREFIX dkg: 
+
+SELECT ?kaGraph ?subject ?predicate ?object
+WHERE {
+  GRAPH  {
+     dkg:hasNamedGraph ?kaGraph .
+  }
+  GRAPH ?kaGraph {
+    ?subject ?predicate ?object .
+  }
+}
+```
+
+#### Query by publisher
+
+Find all KAs published by a specific wallet:
+
+```sparql
+PREFIX dkg: 
+
+SELECT ?kaGraph
+WHERE {
+  GRAPH  {
+    ?kc dkg:publishedBy  .
+    ?kc dkg:hasNamedGraph ?kaGraph .
+  }
+}
+```
+
+#### Query by date range
+
+Filter KAs by publish time:
+
+```sparql
+PREFIX dkg: 
+
+SELECT ?kaGraph ?publishTime
+WHERE {
+  GRAPH  {
+    ?kc dkg:publishTime ?publishTime .
+    FILTER(?publishTime >= "2025-01-01T00:00:00Z"^^xsd:dateTime)
+    FILTER(?publishTime < "2025-02-01T00:00:00Z"^^xsd:dateTime)
+    ?kc dkg:hasNamedGraph ?kaGraph .
+  }
+}
+```
+
+{% hint style="success" %}
+**Pro Tip:** For more complex queries and advanced SPARQL patterns, see the [Query the DKG](advanced-features-and-toolkits/querying-the-dkg.md) documentation.
+{% endhint %}
+
+***
+
+## Getting Knowledge Assets
+
+To retrieve a specific Knowledge Asset by its UAL (Uniform Asset Locator), use `ctx.dkg.asset.get()`.
+
+### Basic get operation
+
+```ts
+const result = await ctx.dkg.asset.get(ual);
+```
+
+### Get with options
+
+```ts
+const result = await ctx.dkg.asset.get(ual, {
+  includeMetadata: true,  // Include metadata about the KA
+});
+```
+
+### Response structure
+
+```ts
+{
+  "assertion": [
+    {
+      "@id": "https://example.org/entity",
+      "http://schema.org/name": [{ "@value": "Example Entity" }],
+      "@type": ["http://schema.org/Thing"]
+    }
+  ],
+  "operation": {
+    "get": {
+      "operationId": "uuid-here",
+      "status": "COMPLETED"
+    }
+  }
+}
+```
+
+### Example: Get tool implementation
+
+```ts
+import { defineDkgPlugin } from "@dkg/plugins";
+import { z } from "@dkg/plugins/helpers";
+
+export default defineDkgPlugin((ctx, mcp) => {
+  mcp.registerTool(
+    "get-knowledge-asset",
+    {
+      title: "Get Knowledge Asset",
+      description: "Retrieve a Knowledge Asset by its UAL",
+      inputSchema: {
+        ual: z.string().describe("The UAL of the Knowledge Asset"),
+      },
+    },
+    async ({ ual }) => {
+      try {
+        const result = await ctx.dkg.asset.get(ual, {
+          includeMetadata: true,
+        });
+        
+        return {
+          content: [{
+            type: "text",
+            text: JSON.stringify(result, null, 2)
+          }],
+        };
+      } catch (error) {
+        throw new Error(`Failed to get asset: ${error.message}`);
+      }
+    }
+  );
+});
+```
+
+### Understanding UALs
+
+A UAL (Uniform Asset Locator) uniquely identifies a Knowledge Asset:
+
+```
+did:dkg:base:84532/0xd5550173b0f7b8766ab2770e4ba86caf714a5af5/10310
+```
+
+Components:
+
+* `did:dkg` — DID method prefix
+* `base:84532` — Blockchain name and chain ID
+* `0xd555...` — Contract address
+* `10310` — Asset ID (Knowledge Collection ID + optional Asset ID)
+
+***
+
+## Publishing Knowledge Assets
+
+Use `ctx.dkg.asset.create()` to publish new Knowledge Assets to the DKG.
+
+### Basic create operation
+
+```ts
+const content = {
+  public: {
+    "@context": "http://schema.org",
+    "@id": "https://example.org/my-entity",
+    "@type": "Thing",
+    "name": "My First Knowledge Asset",
+    "description": "An example entity on the DKG"
+  }
+};
+
+const result = await ctx.dkg.asset.create(content, {
+  epochsNum: 2,  // How many epochs (months) to keep the asset
+});
+```
+
+### Public vs private content
+
+You can publish content as **public** (replicated across the network) or **private** (stays on your node only):
+
+```ts
+const content = {
+  public: {
+    "@context": "http://schema.org",
+    "@id": "https://example.org/entity",
+    "@type": "Organization",
+    "name": "Public Company Name"
+  },
+  private: {
+    "@context": "http://schema.org",
+    "@id": "https://example.org/entity",
+    "@type": "OrganizationPrivateData",
+    "revenue": "$10M",
+    "employeeCount": 150
+  }
+};
+
+const result = await ctx.dkg.asset.create(content, {
+  epochsNum: 6,
+});
+```
+
+### Create options
+
+| Option                                     | Description                                  | Default  |
+| ------------------------------------------ | -------------------------------------------- | -------- |
+| `epochsNum`                                | Number of epochs (months) to store the asset | Required |
+| `minimumNumberOfFinalizationConfirmations` | Confirmations needed before finalized        | 3        |
+| `minimumNumberOfNodeReplications`          | Minimum nodes to replicate to                | 1        |
+
+### Response structure
+
+```ts
+{
+  "UAL": "did:dkg:base:84532/0xd555.../10310",
+  "datasetRoot": "0x09d73283...",
+  "operation": {
+    "mintKnowledgeAsset": {
+      "transactionHash": "0x1a9f6b95...",
+      "blockNumber": 20541620,
+      "status": true
+    },
+    "publish": {
+      "operationId": "uuid-here",
+      "status": "PUBLISH_REPLICATE_END"
+    },
+    "finality": { "status": "FINALIZED" }
+  }
+}
+```
+
+### Example: Create tool implementation
+
+```ts
+import { defineDkgPlugin } from "@dkg/plugins";
+import { z } from "@dkg/plugins/helpers";
+
+export default defineDkgPlugin((ctx, mcp) => {
+  mcp.registerTool(
+    "publish-knowledge-asset",
+    {
+      title: "Publish Knowledge Asset",
+      description: "Create and publish a new Knowledge Asset to the DKG",
+      inputSchema: {
+        jsonld: z.string().describe("JSON-LD content to publish"),
+        privacy: z.enum(["public", "private"]).default("private"),
+        epochs: z.number().min(1).max(24).default(2),
+      },
+    },
+    async ({ jsonld, privacy, epochs }) => {
+      try {
+        const content = JSON.parse(jsonld);
+        const wrapped = { [privacy]: content };
+        
+        const result = await ctx.dkg.asset.create(wrapped, {
+          epochsNum: epochs,
+          minimumNumberOfFinalizationConfirmations: 3,
+          minimumNumberOfNodeReplications: 1,
+        });
+        
+        const ual = result?.UAL;
+        
+        return {
+          content: [{
+            type: "text",
+            text: `✅ Knowledge Asset published!\n\nUAL: ${ual}\nPrivacy: ${privacy}\nEpochs: ${epochs}`
+          }],
+        };
+      } catch (error) {
+        throw new Error(`Failed to publish: ${error.message}`);
+      }
+    }
+  );
+});
+```
+
+### JSON-LD best practices
+
+When creating Knowledge Assets, follow these JSON-LD conventions:
+
+1. **Always include `@context`** — Use `http://schema.org` or a custom ontology
+2. **Use `@id` for unique identification** — URIs that uniquely identify your entity
+3. **Specify `@type`** — The type of entity (e.g., `Person`, `Organization`, `Product`)
+4. **Use schema.org vocabulary** — Prefer standard properties for interoperability
+
+```ts
+{
+  "@context": "http://schema.org",
+  "@id": "urn:myapp:products:12345",
+  "@type": "Product",
+  "name": "Wireless Headphones",
+  "brand": {
+    "@type": "Brand",
+    "name": "AudioTech"
+  },
+  "offers": {
+    "@type": "Offer",
+    "price": "99.99",
+    "priceCurrency": "USD"
+  }
+}
+```
+
+***
+
+## Complete DKG plugin example
+
+Here's a full MCP tool that demonstrates all three operations:
+
+```ts
+import { defineDkgPlugin } from "@dkg/plugins";
+import { z } from "@dkg/plugins/helpers";
+
+export default defineDkgPlugin((ctx, mcp, api) => {
+  // 1. Query Tool
+  mcp.registerTool(
+    "dkg-search",
+    {
+      title: "Search DKG",
+      description: "Search the DKG using a SPARQL query",
+      inputSchema: {
+        query: z.string().describe("SPARQL query to execute"),
+        queryType: z.enum(["SELECT", "CONSTRUCT", "ASK", "DESCRIBE"]).default("SELECT"),
+      },
+    },
+    async ({ query, queryType }) => {
+      const result = await ctx.dkg.graph.query(query, queryType);
+      return {
+        content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
+      };
+    }
+  );
+
+  // 2. Get Tool
+  mcp.registerTool(
+    "dkg-get",
+    {
+      title: "Get Knowledge Asset",
+      description: "Retrieve a Knowledge Asset by UAL",
+      inputSchema: {
+        ual: z.string().describe("UAL of the Knowledge Asset"),
+      },
+    },
+    async ({ ual }) => {
+      const result = await ctx.dkg.asset.get(ual);
+      return {
+        content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
+      };
+    }
+  );
+
+  // 3. Create Tool
+  mcp.registerTool(
+    "dkg-publish",
+    {
+      title: "Publish Knowledge Asset",
+      description: "Publish a new Knowledge Asset",
+      inputSchema: {
+        content: z.string().describe("JSON-LD content"),
+        privacy: z.enum(["public", "private"]).default("private"),
+      },
+    },
+    async ({ content, privacy }) => {
+      const parsed = JSON.parse(content);
+      const result = await ctx.dkg.asset.create({ [privacy]: parsed }, {
+        epochsNum: 2,
+      });
+      return {
+        content: [{ type: "text", text: `Published! UAL: ${result.UAL}` }],
+      };
+    }
+  );
+
+  // 4. REST API endpoint for querying
+  api.post("/query", async (req, res) => {
+    try {
+      const { query, queryType = "SELECT" } = req.body;
+      const result = await ctx.dkg.graph.query(query, queryType);
+      res.json({ success: true, data: result });
+    } catch (error: any) {
+      res.status(500).json({ success: false, error: error.message });
+    }
+  });
+});
+```
+
+***
+
+## Additional DKG client methods
+
+Beyond the core operations, `ctx.dkg` provides additional functionality:
+
+| Method                              | Description                                      |
+| ----------------------------------- | ------------------------------------------------ |
+| `ctx.dkg.node.info()`               | Get information about the connected DKG node     |
+| `ctx.dkg.asset.update()`            | Update an existing Knowledge Asset               |
+| `ctx.dkg.asset.increaseAllowance()` | Pre-approve token spending for faster publishing |
+| `ctx.dkg.asset.decreaseAllowance()` | Revoke token spending authorization              |
+
+***
+
+## Error handling
+
+Always wrap DKG operations in try-catch blocks:
+
+```ts
+try {
+  const result = await ctx.dkg.asset.get(ual);
+  // Handle success
+} catch (error) {
+  ctx.logger?.error("DKG operation failed:", error);
+  throw new Error(`Operation failed: ${error.message}`);
+}
+```
+
+Common error scenarios:
+
+* **Network errors** — Node unreachable or timeout
+* **Invalid UAL** — Malformed or non-existent asset
+* **Insufficient funds** — Not enough tokens for publishing
+* **Invalid JSON-LD** — Malformed content structure
+
+***
+
+## Next steps
+
+* [**Query the DKG**](advanced-features-and-toolkits/querying-the-dkg.md) — Deep dive into SPARQL query patterns
+* [**DKG JavaScript SDK**](advanced-features-and-toolkits/dkg-sdk/dkg-v8-js-client/) — Full SDK documentation
+* [**Customizing your DKG Agent**](customizing-your-dkg-agent.md) — Build custom plugins
+* [**Essentials Plugin**](essentials-plugin.md) — Reference implementation for DKG tools
diff --git a/docs/contribute-to-the-dkg/delegated-staking/README.md b/docs/contribute-to-the-dkg/delegated-staking/README.md
index 6a1e771..060e61d 100644
--- a/docs/contribute-to-the-dkg/delegated-staking/README.md
+++ b/docs/contribute-to-the-dkg/delegated-staking/README.md
@@ -13,7 +13,7 @@ As a decentralized system, the OriginTrail Decentralized Knowledge Graph (DKG) e
 
 ## TRAC delegated staking mechanics
 
-For a DKG Core Node to be eligible to host a portion of the DKG and receive TRAC network rewards, its TRAC stake plays a crucial role. Set at a minimum of 50,000 TRAC on a particular blockchain, the stake has an important role in ensuring the security of the DKG. The DKG Core Node operators can contribute to the node stake on their own or by attracting more TRAC to their stake through delegated staking. 
+For a DKG Core Node to be eligible to host a portion of the DKG and receive TRAC network rewards, its TRAC stake plays a crucial role. Set at a minimum of 50,000 TRAC on a particular blockchain, the stake has an important role in ensuring the security of the DKG. The DKG Core Node operators can contribute to the node stake on their own or by attracting more TRAC to their stake through delegated staking.
 
 There are 2 roles involved in delegated staking: **Core Node operators** and **TRAC delegators.**
 
@@ -33,7 +33,7 @@ Contrary to inflationary systems, TRAC staking is strictly utility-based, and re
 
 As knowledge publishers create Knowledge Assets on the DKG, they lock an appropriate amount of TRAC tokens in the DKG smart contracts. The TRAC amount offered has to be high enough to ensure that enough DKG Core Nodes will store it for a specific amount of time. The nodes then commit to storing the Knowledge Assets for a specific amount of time, measured in **30-day periods called epochs**.
 
-At the end of each epoch, DKG nodes "prove" that they are providing DKG services to the DKG smart contracts, which in turn unlocks TRAC rewards initially locked by the knowledge publisher. 
+At the end of each epoch, DKG nodes "prove" that they are providing DKG services to the DKG smart contracts, which in turn unlocks TRAC rewards initially locked by the knowledge publisher.
 
 Many Core Nodes can compete for the same TRAC reward on the basis of their total stake, node ask, and publishing factor. Node rewards are a function of 4 parameters in order of importance:
 
@@ -49,15 +49,13 @@ After claiming rewards, the rewards are **automatically restaked, increasing the
 To introduce a level of predictability into network operations, token withdrawals are subject to a 28-day unbonding period.
 
 {% hint style="warning" %}
-If you want to withdraw tokens in order to delegate to another node on the same network (blockchain), you **do not** have to wait 28 days! [See here >](redelegating-stake.md) 
+If you want to withdraw tokens in order to delegate to another node on the same network (blockchain), you **do not** have to wait 28 days! [See here >](redelegating-stake.md)
 {% endhint %}
 
 {% hint style="success" %}
 Delegated staking is a non-custodial system, so the Core Node operator has no access to the locked TRAC tokens at any time.
 {% endhint %}
 
-
-
 Each Core Node operator can also set an “**operator fee,**” which is a percentage of the TRAC rewards deducted each time a node claims rewards from a Knowledge Asset. The remaining TRAC fee is then split proportionally to the share of staked tokens across all delegators.
 
 {% hint style="info" %}
@@ -118,6 +116,6 @@ To understand how to set up your operator fee, follow the [Core Node setup](../.
 
 ## **Have questions?**
 
-Drop by our [Discord](https://discord.gg/aNpBjf97) or [Telegram group](https://t.me/origintrail), and feel free to ask your questions there. Make sure to follow our official announcements, and stay safe!
+Drop by our [Discord](https://discord.com/invite/xCaY7hvNwD) or [Telegram group](https://t.me/origintrail), and feel free to ask your questions there. Make sure to follow our official announcements, and stay safe!
 
 Happy staking! 🚀
diff --git a/docs/contribute-to-the-dkg/delegated-staking/redelegating-stake.md b/docs/contribute-to-the-dkg/delegated-staking/redelegating-stake.md
index ab532db..ed013d4 100644
--- a/docs/contribute-to-the-dkg/delegated-staking/redelegating-stake.md
+++ b/docs/contribute-to-the-dkg/delegated-staking/redelegating-stake.md
@@ -11,7 +11,7 @@ If you want **move your delegated TRAC stake from one DKG node to another**, you
 ## Keep in mind
 
 * The DKG is multichain. However, **TRAC tokens can only be redelegated within nodes on the same blockchain**
-* The amount of stake (TRAC) that you want to redelegate **should not exceed the second node's remaining capacity** (a node can have a maximum of 2,000,000 TRAC stake delegated to it).
+* The amount of stake (TRAC) that you want to redelegate **should not exceed the second node's remaining capacity** (a node can have a maximum of 5,000,000 TRAC stake delegated to it).
 
 ***
 
@@ -21,18 +21,16 @@ If you want **move your delegated TRAC stake from one DKG node to another**, you
 2. Go to the **'My delegation**' tab to see available nodes that you can redelegate from.
 3. Optionally, use the **'Filter by blockchain'** dropdown to select the desired blockchain, which will filter and display nodes on this network along with their staking information.
 4. Once you've decided which node you want to redelegate your TRAC from, click on the **'Manage stake'** button next to the desired node on the right side of the table. Make sure you read the disclaimer.
-5. When the staking pop-up opens, you'll have the option to **Delegate, Redelegate,** or **Withdraw** TRAC tokens from the node. Proceed by selecting '**Redelegate**'.       
+5. When the staking pop-up opens, you'll have the option to **Delegate, Redelegate,** or **Withdraw** TRAC tokens from the node. Proceed by selecting '**Redelegate**'.
 
 

Use the redelegate button in the popup to redelegate your stake

- - -6. After clicking on 'Redelegate', a field to enter the amount of TRAC you wish to redelegate to another node will appear on the right side of the pop-up, as well as the select box, for selecting the other node — the one that will receive the TRAC. **Enter the amount of TRAC you want redelegated and select the node you want to redelegate to.** +6. After clicking on 'Redelegate', a field to enter the amount of TRAC you wish to redelegate to another node will appear on the right side of the pop-up, as well as the select box, for selecting the other node — the one that will receive the TRAC. **Enter the amount of TRAC you want redelegated and select the node you want to redelegate to.**
{% hint style="warning" %} -You can stake your TRAC only to nodes that have less than 2,000,000 TRAC stake delegated to them. +You can stake your TRAC only to nodes that have less than 5,000,000 TRAC stake delegated to them. {% endhint %} {% hint style="info" %} @@ -44,8 +42,7 @@ Only the nodes from the same network with the remaining capacity greater than ze
8. Once both transactions are signed and confirmed, you should see a **'Stake redelegated successfully'** message appear. -9. To confirm that the process was successful, **check your TRAC delegation** by going to the 'My delegations' tab above the table with the nodes and verifying that your delegations are listed there. Additionally, ensure that the stake amount on the node has decreased and the amount on the other node has increased following the successful redelegation.\ - +9. To confirm that the process was successful, **check your TRAC delegation** by going to the 'My delegations' tab above the table with the nodes and verifying that your delegations are listed there. Additionally, ensure that the stake amount on the node has decreased and the amount on the other node has increased following the successful redelegation.\\ {% hint style="info" %} If you encounter any issues during the staking process or require assistance, please get in touch with the OriginTrail community in [Discord](https://discord.gg/xCaY7hvNwD). diff --git a/docs/contribute-to-the-dkg/delegated-staking/step-by-step-staking.md b/docs/contribute-to-the-dkg/delegated-staking/step-by-step-staking.md index 8b9b752..5d5aadc 100644 --- a/docs/contribute-to-the-dkg/delegated-staking/step-by-step-staking.md +++ b/docs/contribute-to-the-dkg/delegated-staking/step-by-step-staking.md @@ -8,14 +8,14 @@ Welcome to the step-by-step TRAC delegated staking guide! First, lets start with ## Prerequisites -1. You need to have some TRAC tokens to delegate. See ['How to get on TRAC(k)?' section of this website >](https://origintrail.io/get-started/trac-token) +1. You need to have some TRAC tokens to delegate. See ['How to get on TRAC(k)?' section of this website >](https://origintrail.io/get-started/trac-token) 2. You need to decide which blockchain you want to stake on. The DKG supports multiple blockchains: * [Base Blockchain](../../dkg-knowledge-hub/learn-more/connected-blockchains/base-blockchain/) * [NeuroWeb](../../dkg-knowledge-hub/learn-more/connected-blockchains/neuroweb.md) * [Gnosis Chain](../../dkg-knowledge-hub/learn-more/connected-blockchains/gnosis-chain/) 3. Bridge your TRAC to the chosen blockchain. See instructions for bridging: * [Base Blockchain](../../dkg-knowledge-hub/learn-more/connected-blockchains/base-blockchain/) - * [NeuroWeb](../../graveyard/everything/teleport-instructions-neuroweb.md) + * [NeuroWeb](../../dkg-knowledge-hub/learn-more/connected-blockchains/neuroweb.md) * [Gnosis Chain](../../dkg-knowledge-hub/learn-more/connected-blockchains/gnosis-chain/) 4. Have some gas fee tokens available on the chosen network: * Base Mainnet: ETH on Base @@ -36,46 +36,46 @@ For the purpose of this tutorial we used the Metamask wallet extension. Once you have confirmed that you have both gas tokens and TRAC tokens available in your wallet, you can proceed to the Staking Dashboard at [https://staking.origintrail.io/](https://staking.origintrail.io/) and follow the steps below: -### **Step 1:** +### **Step 1:** Click on the **'Connect wallet'** button in the top right corner of the navigation bar and follow the prompts to connect your wallet to the interface.
-### **Step 2:** +### **Step 2:** -Make sure you have selected the right blockchain in your wallet. +Make sure you have selected the right blockchain in your wallet.
-### **Step 3:** +### **Step 3:** The Staking Dashboard shows a list of all the Core Nodes hosting the DKG. This table shows different information, such as: -* The node name, -* Which blockchain it's connected to, -* How much stake does a node have, -* The node's ask, -* The node's operator fee, -* Reward statistics, and other. +* The node name, +* Which blockchain it's connected to, +* How much stake does a node have, +* The node's ask, +* The node's operator fee, +* Reward statistics, and other. -**To delegate your TRAC tokens, you need to pick one or more nodes you believe are going to perform best for the network** (on the basis of criteria explained [here](./)). The chosen node has to have **enough "room" to take TRAC,** meaning less than 2M TRAC already staked. 2M is the maximum amount of TRAC staked per node. +**To delegate your TRAC tokens, you need to pick one or more nodes you believe are going to perform best for the network** (on the basis of criteria explained [here](./)). The chosen node has to have **enough "room" to take TRAC,** meaning less than 5M TRAC already staked. 5M is the maximum amount of TRAC staked per node.
-### **Step 4:** +### **Step 4:** Once you click on a Core Node, a staking pop-up opens with the option to delegate or withdraw TRAC tokens from the node. Proceed by pressing the **'Delegate'** button

Delegating popup

-### **Step 5:** +### **Step 5:** Enter the amount of TRAC you would like to delegate and press the **'Delegate TRAC'** button. The delegation process will require two transactions: one to increase the allowance and another to confirm the contract interaction.
-### **Step 6:** +### **Step 6:** To confirm that the process was successful, check your TRAC delegation by going to the **'My delegations'** tab above the table with the nodes and verify that your delegation is listed there. Additionally, ensure that the stake amount on the node has increased following the successful delegation. diff --git a/docs/contribute-to-the-dkg/hackathon-scaling-trust-in-the-age-of-ai/README.md b/docs/contribute-to-the-dkg/hackathon-scaling-trust-in-the-age-of-ai/README.md index 24d37b5..95f152b 100644 --- a/docs/contribute-to-the-dkg/hackathon-scaling-trust-in-the-age-of-ai/README.md +++ b/docs/contribute-to-the-dkg/hackathon-scaling-trust-in-the-age-of-ai/README.md @@ -2,6 +2,7 @@ description: >- 🧠 Code trust & verifiability into AI. Join the global hackathon to build a collective digital immune system for the AI era. 🚀 +hidden: true --- # Hackathon: Scaling Trust in the Age of AI diff --git a/docs/contribute-to-the-dkg/hackathon-scaling-trust-in-the-age-of-ai/dkg-social-graph-query-guide.md b/docs/contribute-to-the-dkg/hackathon-scaling-trust-in-the-age-of-ai/dkg-social-graph-query-guide.md index a2531e6..a7adea9 100644 --- a/docs/contribute-to-the-dkg/hackathon-scaling-trust-in-the-age-of-ai/dkg-social-graph-query-guide.md +++ b/docs/contribute-to-the-dkg/hackathon-scaling-trust-in-the-age-of-ai/dkg-social-graph-query-guide.md @@ -80,20 +80,26 @@ Represents a social media account's core identity: "@graph": [ { "@type": ["schema:Person", "foaf:Person", "prov:Agent"], - "@id": "https://ca.investing.com", + "@id": "https://youtube.com/channel/UCY1kMZp36IQSyNx_9h4mpCg", "schema:identifier": [ { "@type": "schema:PropertyValue", "schema:propertyID": "creatorId", - "schema:value": "news::ca.investing.com" + "schema:value": "youtube::UCY1kMZp36IQSyNx_9h4mpCg" }, { "@type": "schema:PropertyValue", "schema:propertyID": "platform", - "schema:value": "news" + "schema:value": "youtube" + }, + { + "@type": "schema:PropertyValue", + "schema:propertyID": "userId", + "schema:value": "UCY1kMZp36IQSyNx_9h4mpCg" } ], - "schema:dateCreated": "1970-01-21T09:19:38.440Z" + "schema:dateCreated": "2025-11-13T19:55:47.000Z", + "prov:generatedAtTime": "2025-11-13T19:55:47.000Z" } ] } @@ -113,37 +119,76 @@ Captures time-series data about account activity and connections: "@graph": [ { "@type": ["prov:Entity", "schema:Observation"], - "@id": "urn:uuid:25499e5d-7c9a-53d7-85c6-acc1cdac6ba8", - "prov:generatedAtTime": "1970-01-21T09:19:38.440Z", + "@id": "urn:uuid:d103990f-b092-5f73-952c-b7c3554add43", + "prov:generatedAtTime": "2025-11-13T19:55:47.000Z", + "schema:observationDate": "2025-11-13T19:55:47.000Z", "schema:about": { - "@id": "https://twitter.com/i/user/748244810692104192" + "@id": "https://youtube.com/channel/UCY1kMZp36IQSyNx_9h4mpCg" + }, + "prov:specializationOf": { + "@id": "https://youtube.com/channel/UCY1kMZp36IQSyNx_9h4mpCg" }, "foaf:knows": [ { "@type": "foaf:Person", - "@id": "https://x.com/9to5mac", - "schema:name": "9to5mac", + "@id": "https://www.youtube.com/@pondermusic", + "schema:name": "pondermusic", "schema:additionalProperty": { "@type": "schema:PropertyValue", "schema:name": "connectionStrength", - "schema:value": 17 + "schema:value": 60 } } ], + "schema:expertise": [ + { + "@type": "schema:Thing", + "@id": "https://lunarcrush.com/api4/public/topic/money/v1", + "schema:name": "money", + "schema:additionalProperty": [ + { + "@type": "schema:PropertyValue", + "schema:name": "creatorRank", + "schema:value": 4572 + }, + { + "@type": "schema:PropertyValue", + "schema:name": "postCount", + "schema:value": 2 + }, + { + "@type": "schema:PropertyValue", + "schema:name": "percent", + "schema:value": 0.98 + } + ] + } + ], + "prov:hadPrimarySource": { + "@type": "prov:Entity", + "@id": "https://lunarcrush.com/api4/public/creator/youtube/UCY1kMZp36IQSyNx_9h4mpCg/v1" + }, "foaf:accountProfileInfo": { "@type": "schema:Person", - "schema:name": "Ryan Christoffel", - "schema:alternateName": "iryantldr", + "@id": "https://youtube.com/channel/UCY1kMZp36IQSyNx_9h4mpCg", + "schema:name": "Mark Rober", + "foaf:name": "Mark Rober", + "schema:alternateName": "markrober", + "foaf:nick": "markrober", "schema:image": { "@type": "schema:ImageObject", - "schema:url": "https://pbs.twimg.com/profile_images/..." + "schema:url": "https://yt3.ggpht.com/ytc/AIdro_ksXY2REjZ6gYKSgnWT5jC_zT9mX900vyFtVinR8KbHww=s88-c-k-c0x00ffffff-no-rj", + "foaf:depiction": "https://yt3.ggpht.com/ytc/AIdro_ksXY2REjZ6gYKSgnWT5jC_zT9mX900vyFtVinR8KbHww=s88-c-k-c0x00ffffff-no-rj" } }, + "schema:rank": 2099, "schema:interactionStatistic": [ { "@type": "schema:InteractionCounter", - "schema:interactionType": {"@type": "schema:FollowAction"}, - "schema:userInteractionCount": 208065784 + "schema:interactionType": { + "@type": "schema:FollowAction" + }, + "schema:userInteractionCount": 71700000 } ] } @@ -165,25 +210,39 @@ Core metadata about a social media post: "@graph": [ { "@type": ["schema:SocialMediaPosting", "sioc:Post", "prov:Entity"], - "@id": "https://247sports.com/college/notre-dame/article/...", + "@id": "https://youtube.com/watch?v=6zU2rLYHLhw", "schema:author": [ - {"@id": "https://twitter.com/i/user/151595281"} + { + "@id": "https://youtube.com/channel/UCY1kMZp36IQSyNx_9h4mpCg", + "prov:agent": "https://youtube.com/channel/UCY1kMZp36IQSyNx_9h4mpCg" + } ], + "schema:image": [], "schema:identifier": { "@type": "schema:PropertyValue", "schema:propertyID": "postId", - "schema:value": "247sports.com-1025526375" + "schema:value": "6zU2rLYHLhw" }, - "schema:datePublished": "1970-01-21T08:57:14.089Z", - "schema:url": "https://247sports.com/...", - "schema:genre": "news", - "schema:headline": "Notre Dame Notebook: Irish Defense...", - "schema:description": "Notre Dame's defense dominated...", - "schema:keywords": "notre dame,north carolina", + "prov:wasAttributedTo": { + "@id": "https://youtube.com/channel/UCY1kMZp36IQSyNx_9h4mpCg" + }, + "schema:datePublished": "2025-01-23T16:08:11.000Z", + "prov:generatedAtTime": "2025-01-23T16:08:11.000Z", + "sioc:created_at": "2025-01-23T16:08:11.000Z", + "schema:dateCreated": "2025-10-30T13:40:03.000Z", + "schema:url": "https://youtube.com/watch?v=6zU2rLYHLhw", + "foaf:page": "https://youtube.com/watch?v=6zU2rLYHLhw", + "schema:genre": "youtube-video", + "sioc:post_type": "youtube-video", + "schema:headline": "The Fastest Way To Make A Salad!", + "schema:description": "The Fastest Way To Make A Salad! w/@NickDiGiovanni", + "schema:keywords": [ + "make a" + ], "schema:about": [ { "@type": "schema:Thing", - "@id": "https://lunarcrush.com/api4/public/topic/notre%20dame/v1" + "@id": "https://lunarcrush.com/api4/public/topic/make%20a/v1" } ] } @@ -204,27 +263,49 @@ Engagement metrics tracked over time: "@graph": [ { "@type": ["prov:Entity", "schema:Observation"], - "@id": "urn:uuid:de0e9046-5754-5a22-b5a9-1f3a520a846b", - "prov:generatedAtTime": "1970-01-21T09:19:38.340Z", - "schema:about": { - "@id": "https://9to5mac.com/2025/10/16/i-love-my-iphone-air..." - }, - "prov:specializationOf": { - "@id": "https://9to5mac.com/2025/10/16/i-love-my-iphone-air..." - }, + "@id": "urn:uuid:60330101-6002-59bf-a26b-97d1a8384766", + "prov:generatedAtTime": "2025-10-30T13:40:04.000Z", + "schema:observationDate": "2025-10-30T13:40:04.000Z", "schema:interactionStatistic": { "@type": "schema:InteractionCounter", "schema:interactionType": "schema:InteractAction", - "schema:userInteractionCount": 35921, + "schema:userInteractionCount": 62659943, "schema:description": "Total interactions" }, + "schema:reviewRating": { + "@type": "schema:Rating", + "schema:ratingValue": "3.00", + "schema:bestRating": 5, + "schema:worstRating": 1, + "schema:description": "Sentiment score" + }, "schema:variableMeasured": [ { "@type": "schema:PropertyValue", - "schema:name": "detailedMetrics", - "schema:value": "{\"views\":35744,\"quotes\":2,\"replies\":20,\"retweets\":5,\"bookmarks\":13,\"favorites\":137}" + "schema:name": "likes", + "schema:value": 2129894 + }, + { + "@type": "schema:PropertyValue", + "schema:name": "views", + "schema:value": 60527488 + }, + { + "@type": "schema:PropertyValue", + "schema:name": "comments", + "schema:value": 2561 } - ] + ], + "schema:about": { + "@id": "https://youtube.com/watch?v=6zU2rLYHLhw" + }, + "prov:specializationOf": { + "@id": "https://youtube.com/watch?v=6zU2rLYHLhw" + }, + "prov:hadPrimarySource": { + "@type": "prov:Entity", + "@id": "https://lunarcrush.com/api4/public/posts/youtube-video/6zU2rLYHLhw/v1" + } } ] } @@ -244,15 +325,15 @@ Basic topic information: "@graph": [ { "@type": ["schema:Thing", "skos:Concept", "foaf:Topic"], - "@id": "https://lunarcrush.com/api4/public/topic/%240992hk/v1", - "schema:name": "Lenovo Group Limited", - "foaf:name": "Lenovo Group Limited", - "schema:alternateName": "$0992hk", - "skos:notation": "$0992hk", + "@id": "https://lunarcrush.com/api4/public/topic/money/v1", + "schema:name": "Money", + "foaf:name": "Money", + "schema:alternateName": "money", + "skos:notation": "money", "schema:identifier": { "@type": "schema:PropertyValue", "schema:propertyID": "topicSlug", - "schema:value": "$0992hk" + "schema:value": "money" } } ] @@ -272,48 +353,171 @@ Topic trends, rankings, and sentiment over time: "@graph": [ { "@type": ["prov:Entity", "schema:Observation"], - "@id": "urn:uuid:42422e77-aef8-5621-8350-5175e64b929b", - "prov:generatedAtTime": "1970-01-21T09:19:53.508Z", + "@id": "urn:uuid:08ff5e69-85b9-5bba-80fb-dd76348a1043", + "prov:generatedAtTime": "2025-11-13T19:55:47.000Z", + "schema:observationDate": "2025-11-13T19:55:47.000Z", "schema:about": { - "@id": "https://lunarcrush.com/api4/public/topic/postgame/v1" + "@id": "https://lunarcrush.com/api4/public/topic/money/v1" + }, + "prov:specializationOf": { + "@id": "https://lunarcrush.com/api4/public/topic/money/v1" }, "schema:relatedLink": [ - {"@id": "https://lunarcrush.com/api4/public/topic/blue%20jays/v1"}, - {"@id": "https://lunarcrush.com/api4/public/topic/toronto/v1"} + {"@id": "https://lunarcrush.com/api4/public/topic/coins%20layer%201/v1"}, + {"@id": "https://lunarcrush.com/api4/public/topic/investment/v1"}, + {"@id": "https://lunarcrush.com/api4/public/topic/coins%20pow/v1"} + ], + "schema:category": [ + "Finance" ], - "schema:rank": 1223, + "prov:hadPrimarySource": { + "@type": "prov:Entity", + "@id": "https://lunarcrush.com/api4/public/topic/money/v1" + }, + "schema:rank": 5, "schema:additionalProperty": [ { "@type": "schema:PropertyValue", "schema:name": "numContributors", - "schema:value": 1762 + "schema:value": 225169 }, { "@type": "schema:PropertyValue", "schema:name": "numPosts", - "schema:value": 1762 + "schema:value": 225169 }, { "@type": "schema:PropertyValue", "schema:name": "interactions24h", - "schema:value": 16461825 + "schema:value": 803878895 }, { "@type": "schema:PropertyValue", "schema:name": "trend", - "schema:value": "up" + "schema:value": "down" } ], + "schema:genre": "Finance", "schema:variableMeasured": [ { "@type": "schema:PropertyValue", - "schema:name": "postTypeDistribution", - "schema:value": "{\"news\":293,\"tweet\":17606,\"reddit-post\":10608}" + "schema:name": "postTypeDistribution:news", + "schema:value": 10737 + }, + { + "@type": "schema:PropertyValue", + "schema:name": "postTypeDistribution:tweet", + "schema:value": 1030324 + }, + { + "@type": "schema:PropertyValue", + "schema:name": "postTypeDistribution:reddit-post", + "schema:value": 68340 + }, + { + "@type": "schema:PropertyValue", + "schema:name": "postTypeDistribution:tiktok-video", + "schema:value": 773815 + }, + { + "@type": "schema:PropertyValue", + "schema:name": "postTypeDistribution:youtube-video", + "schema:value": 830036 }, { "@type": "schema:PropertyValue", - "schema:name": "sentimentByType", - "schema:value": "{\"news\":74,\"tweet\":59,\"reddit-post\":18}" + "schema:name": "interactionsByType:news", + "schema:value": 143137968 + }, + { + "@type": "schema:PropertyValue", + "schema:name": "interactionsByType:tweet", + "schema:value": 159234882 + }, + { + "@type": "schema:PropertyValue", + "schema:name": "interactionsByType:reddit-post", + "schema:value": 1045990 + }, + { + "@type": "schema:PropertyValue", + "schema:name": "interactionsByType:tiktok-video", + "schema:value": 168630892 + }, + { + "@type": "schema:PropertyValue", + "schema:name": "interactionsByType:youtube-video", + "schema:value": 331829163 + }, + { + "@type": "schema:PropertyValue", + "schema:name": "sentimentByType:news", + "schema:value": 98 + }, + { + "@type": "schema:PropertyValue", + "schema:name": "sentimentByType:tweet", + "schema:value": 64 + }, + { + "@type": "schema:PropertyValue", + "schema:name": "sentimentByType:reddit-post", + "schema:value": 67 + }, + { + "@type": "schema:PropertyValue", + "schema:name": "sentimentByType:tiktok-video", + "schema:value": 74 + }, + { + "@type": "schema:PropertyValue", + "schema:name": "sentimentByType:youtube-video", + "schema:value": 76 + }, + { + "@type": "schema:PropertyValue", + "schema:name": "sentimentDetail:news", + "schema:value": { + "neutral": 4229, + "negative": 2484, + "positive": 4024 + } + }, + { + "@type": "schema:PropertyValue", + "schema:name": "sentimentDetail:tweet", + "schema:value": { + "neutral": 414100, + "negative": 219356, + "positive": 396868 + } + }, + { + "@type": "schema:PropertyValue", + "schema:name": "sentimentDetail:reddit-post", + "schema:value": { + "neutral": 29674, + "negative": 12815, + "positive": 25851 + } + }, + { + "@type": "schema:PropertyValue", + "schema:name": "sentimentDetail:tiktok-video", + "schema:value": { + "neutral": 346694, + "negative": 109220, + "positive": 317901 + } + }, + { + "@type": "schema:PropertyValue", + "schema:name": "sentimentDetail:youtube-video", + "schema:value": { + "neutral": 347658, + "negative": 118169, + "positive": 364209 + } } ] } diff --git a/docs/dkg-key-concepts.md b/docs/dkg-key-concepts.md index b3241f7..412f1ba 100644 --- a/docs/dkg-key-concepts.md +++ b/docs/dkg-key-concepts.md @@ -9,15 +9,15 @@ description: >- ## DKG Network & Nodes -OriginTrail Decentralized Knowledge Graph (DKG) is a permissionless, multi-chain infrastructure designed to host and interlink semantically-rich “[Knowledge Assets](dkg-key-concepts.md#knowledge-assets)” - structured containers of machine-readable data (e.g., RDF-based graphs) that are discoverable, verifiable, and owned by their creators.\ +OriginTrail Decentralized Knowledge Graph (DKG) is a permissionless, multi-chain infrastructure designed to host and interlink semantically-rich “[Knowledge Assets](dkg-key-concepts.md#knowledge-assets)” — structured containers of machine-readable data (e.g., RDF-based graphs) that are discoverable, verifiable, and owned by their creators.\ \ The DKG enables AI-agents and applications to query, connect, and build upon distributed knowledge while preserving provenance and trust through blockchain-anchored proof systems. -The DKG Network is comprised of network nodes, running on different servers and devices. **There are two primary node types that enable the network’s operation**. The first is **the DKG Core Node**, which hosts the public DKG, persistently stores and serves knowledge assets, participates in random-sampling proofs and token incentives, and requires a minimum stake (e.g., 50,000 TRAC) to participate.\ +The DKG Network is comprised of network nodes, running on different servers and devices. **There are** [**two primary node types**](dkg-knowledge-hub/learn-more/introduction/edge-vs.-core-node-rules-and-token-thresholds.md) **that enable the network’s operation**. The first is **the DKG Core Node**, which hosts the public DKG, persistently stores and serves knowledge assets, participates in random-sampling proofs and token incentives, and requires a minimum stake (e.g., 50,000 TRAC) to participate.\ \ -The second is the **DKG Edge Node**, which runs on devices at the “edge” (e.g., laptops, phones, IoT, and even servers, if deployed that way) and enables local knowledge processing, private-graph handling, and integration with AI-pipelines (via APIs like dRAG), allowing owners to retain control of their data while still contributing to the global DKG. +The second is the [**DKG Edge Node**](getting-started/decentralized-knowledge-graph-dkg.md), which runs on devices at the “edge” (e.g., laptops, phones, IoT, and even servers, if deployed that way) and enables local knowledge processing, private-graph handling, and integration with AI-pipelines (via APIs like dRAG), allowing owners to retain control of their data while still contributing to the global DKG. -Together, Core and Edge Nodes form the network and exchange knowledge, facilitated by the blockchain. They share the same codebas,e however, so **it is possible to turn a DKG Edge Node into a DKG Core node (more on that later in the docs)**. +Together, Core and Edge Nodes form the network and exchange knowledge, facilitated by the blockchain. They share the same codebase, however, so **it is possible to turn a DKG Edge Node into a DKG Core Node (more on that** [**here**](dkg-knowledge-hub/learn-more/introduction/edge-vs.-core-node-rules-and-token-thresholds.md)**)**. ## Knowledge Assets @@ -30,8 +30,6 @@ More precisely, a Knowledge Asset is a web resource identified by a unique Unifo * **Uniform Asset Locator**: Globally unique URI with assigned ownership using blockchain accounts, implemented as a non-fungible token (NFT) on the blockchain. * **Derivable vector embeddings**: These facilitate the neuro-symbolic features - such as link prediction, entity prediction, similarity search, and others. - -
Knowledge content can be observed as a time series of knowledge content states or **assertions**. Each assertion can be independently verified for integrity by the verifier recomputing the cryptographic fingerprint and comparing if the computed result matches the corresponding blockchain fingerprint record. @@ -48,7 +46,7 @@ Similar to distributed databases, the OriginTrail DKG applies replication mechan ## What is a UAL? -Uniform Asset Locators (UALs) are ownable identifiers on the DKG, similar to URLs in the traditional web. The UALs follow the DID URL specification and are used to identify and locate a specific Knowledge Asset within the OriginTrail DKG. +Uniform Asset Locators (UALs) are ownable identifiers on the DKG, similar to URLs in the traditional web. The UALs follow the DID URL specification and are used to identify and locate a specific Knowledge Asset within the OriginTrail DKG. UAL consists of 5 parts: @@ -82,22 +80,22 @@ The Trace token (TRAC) is the utility token that powers the OriginTrail Decentra ## Decentralized Retrieval Augmented Generation -Patrick Lewis coined the term Retrieval-Augmented Generation (RAG) in a [2020 paper](https://arxiv.org/pdf/2005.11401.pdf). It is a technique for enhancing the accuracy and reliability of GenAI models with facts fetched from external sources. This allows artificial intelligence (AI) solutions to dynamically fetch relevant information before the generation process, enhancing the accuracy of responses by limiting the generation to re-working the retrieved inputs. \ +Patrick Lewis coined the term Retrieval-Augmented Generation (RAG) in a [2020 paper](https://arxiv.org/pdf/2005.11401.pdf). It is a technique for enhancing the accuracy and reliability of GenAI models with facts fetched from external sources. This allows artificial intelligence (AI) solutions to dynamically fetch relevant information before the generation process, enhancing the accuracy of responses by limiting the generation to re-working the retrieved inputs.\ \ **Decentralized Retrieval Augmented Generation (dRAG) advances the model by organizing external sources in a DKG with verifiable sources made available for AI models to use.** The framework enables a hybrid AI system that brings together neural (e.g., LLMs) and symbolic (e.g., Knowledge Graph) methodologies. Contrary to using a solely neural AI approach based on vector embedding representations, a symbolic AI approach enhances it with the strength of Knowledge Graphs by introducing a basis in symbolic representations. -dRAG is, therefore, a framework that allows AI solutions to tap into the strengths of both paradigms: +dRAG is, therefore, a framework that allows AI solutions to tap into the strengths of both paradigms: -* The powerful learning and generalization capabilities of neural networks, and -* The precise, rule-based processing of symbolic AI. +* The powerful learning and generalization capabilities of neural networks, and +* The precise, rule-based processing of symbolic AI. It operates on two core components: -(1) the DKG paranets and +(1) the DKG paranets and -(2) AI models. +(2) AI models. -The dRAG applications framework is entirely compatible with the existing techniques, tools, and RAG frameworks and supports all major data formats. +The dRAG applications framework is entirely compatible with the existing techniques, tools, and RAG frameworks and supports all major data formats. ## Knowledge mining @@ -125,6 +123,6 @@ If you are interested in learning more about NFTs, you can find out more [here]( The next building block of the DKG is **AI para-networks** or **paranets**. -**AI para-networks** or **paranets** are autonomously operated structures in the DKG, owned by their community as a paranet operator. In paranets, we find **assemblies of Knowledge Assets** driving use cases with associated **paranet-specific AI services** and an **incentivization model** to reward knowledge miners fueling its growth. +**AI para-networks** or **paranets** are autonomously operated structures in the DKG, owned by their community as a paranet operator. In paranets, we find **assemblies of Knowledge Assets** driving use cases with associated **paranet-specific AI services** and an **incentivization model** to reward knowledge miners fueling its growth. -**To see the DKG in action, continue to the** [**Installation section**](getting-started/decentralized-knowle-dge-graph-dkg.md)**.** +**To see the DKG in action, continue to the** [**Installation section**](getting-started/decentralized-knowledge-graph-dkg.md)**.** diff --git a/docs/dkg-knowledge-hub/how-tos-and-tutorials/README.md b/docs/dkg-knowledge-hub/how-tos-and-tutorials/README.md index 4d9f0fc..fa3f13e 100644 --- a/docs/dkg-knowledge-hub/how-tos-and-tutorials/README.md +++ b/docs/dkg-knowledge-hub/how-tos-and-tutorials/README.md @@ -8,6 +8,6 @@ description: >- #### Pages in this section -* [**DKG V8.1.X Update Guidebook**](https://app.gitbook.com/o/-McnF-Jcg4utndKcdeko/s/-McnEkhdd7JlySeckfHM/~/changes/408/dkg-knowledge-hub/how-tos-and-tutorials/dkg-v8.1.x-update-guidebook) – A detailed walkthrough for updating your DKG Node to the latest release. -* [**Bridging to Moonbeam**](https://app.gitbook.com/o/-McnF-Jcg4utndKcdeko/s/-McnEkhdd7JlySeckfHM/~/changes/408/dkg-knowledge-hub/how-tos-and-tutorials/bridging-to-moonbeam) – How to connect OriginTrail components to Moonbeam for multi-chain deployments. -* [**Builder tutorials**](https://app.gitbook.com/o/-McnF-Jcg4utndKcdeko/s/-McnEkhdd7JlySeckfHM/~/changes/408/dkg-knowledge-hub/how-tos-and-tutorials/tutorials) – Practical tutorials and examples for publishing data, creating Knowledge Assets, and integrating with applications. +* [**DKG V8.1.X Update Guidebook**](dkg-v8.1.x-update-guidebook.md) – A detailed walkthrough for updating your DKG Node to the latest release. +* [**Bridging to Moonbeam**](bridging-to-moonbeam.md) – How to connect OriginTrail components to Moonbeam for multi-chain deployments. +* [**Builder tutorials**](tutorials.md) – Practical tutorials and examples for publishing data, creating Knowledge Assets, and integrating with applications. diff --git a/docs/dkg-knowledge-hub/learn-more/connected-blockchains/neuroweb.md b/docs/dkg-knowledge-hub/learn-more/connected-blockchains/neuroweb.md index 60fba2c..ad45942 100644 --- a/docs/dkg-knowledge-hub/learn-more/connected-blockchains/neuroweb.md +++ b/docs/dkg-knowledge-hub/learn-more/connected-blockchains/neuroweb.md @@ -14,9 +14,10 @@ More information on NEURO can be found in the [official NeuroWeb documentation]( ## Bridging TRAC to NeuroWeb -To use TRAC tokens on NeuroWeb for powering your nodes, staking, or other activities, you need to bridge TRAC to NeuroWeb. +To use TRAC tokens on NeuroWeb for powering your nodes, staking, or other activities, you need to bridge TRAC to NeuroWeb. -You can transfer TRAC tokens from Ethereum to NeuroWeb and vice versa via [Snowbridge](https://app.snowbridge.network/). +You can transfer TRAC tokens from Ethereum to NeuroWeb and vice versa via [Snowbridge](https://app.snowbridge.network/). \ +Bridging instructions are available in the [NeuroWeb official documentation](https://docs.neuroweb.ai/ethereum-neuroweb-trac-bridge). ## Adding TRAC on NeuroWeb to your wallet @@ -24,7 +25,7 @@ Here are step-by-step instructions for adding the TRAC token on NeuroWeb to your TRAC token address: 0xFfFFFFff00000000000000000000000000000001 -### **Step 1:** +### **Step 1:** Open Metamask that is connected to NeuroWeb (connection details available here), then under the Assets tab, click on `Import tokens`. @@ -39,4 +40,3 @@ On the import tokens page, you need to add the TRAC token contract address. Usua ### Step 3: After you get all the fields filled with the right information (as in the image above), you click **'Add custom tokens'** and your TRAC balance will be displayed in Metamask. - diff --git a/docs/dkg-knowledge-hub/learn-more/decentralized-knowle-dge-graph-dkg.md b/docs/dkg-knowledge-hub/learn-more/decentralized-knowle-dge-graph-dkg.md index 916a032..d14230b 100644 --- a/docs/dkg-knowledge-hub/learn-more/decentralized-knowle-dge-graph-dkg.md +++ b/docs/dkg-knowledge-hub/learn-more/decentralized-knowle-dge-graph-dkg.md @@ -18,7 +18,7 @@ The DKG Node is the next evolution of the OriginTrail node software — your int In the OriginTrail ecosystem, there are two types of roles your DKG Node can fulfill: * **The DKG Edge Node** is designed to operate at the network "edge" and can be set up on anything from laptops and phones to the cloud. They can enrich and utilize DKG knowledge and can operate agents, but are not responsible for hosting the DKG state. Therefore, DKG Edge Nodes do not require TRAC token stake to run — Edge Nodes can fully publish, query, and verify knowledge, but are not eligible for a share of protocol fees (via delegated stake) as they do not contribute DKG services to the wider network, and therefore do not require a high uptime. -* **DKG Core Nodes** can do everything Edge Nodes can, but are intended to run as the "network core" — they are running the DKG and maintain its state, which requires high uptime. A DKG Core Node, therefore, needs a minimum of 50,000 TRAC staked as an economic guarantee, which can be "sponsored" by any ecosystem stakeholder willing to delegate TRAC to it. Once a DKG Core Node is set up and contributing to the network, it earns network publishing fees based on its contribution to the network. +* **DKG Core Nodes** can do everything Edge Nodes can, but are intended to run as the "network core" — they are running the DKG and maintain its state, which requires high uptime. A DKG Core Node, therefore, needs a minimum of 50,000 TRAC staked as an economic guarantee, which can be "sponsored" by any ecosystem stakeholder willing to delegate TRAC to it. Once a DKG Core Node is set up and contributing to the network, it earns network publishing fees based on its contribution to the network.
@@ -31,7 +31,7 @@ Running a DKG Node is designed to be accessible — but like any powerful techno * **AI agent concepts** – Knowing how agents interact with external data (like the DKG) will help you design better applications. * **Basic terminal & server skills** – Installing and managing a node requires comfort with the command line and deploying services on a VPS. -We recommend exploring our [introductory resources or tutorials if any of these areas are new to you](https://app.gitbook.com/o/-McnF-Jcg4utndKcdeko/s/-McnEkhdd7JlySeckfHM/~/changes/408/dkg-knowledge-hub). And remember — you’re not alone. The OriginTrail Discord community is active and welcoming, with dedicated channels where you can ask questions, troubleshoot issues, and share ideas as you learn. +We recommend exploring our [introductory resources or tutorials if any of these areas are new to you](/broken/pages/NiPXKCuxKbkBdWfF6pBd). And remember — you’re not alone. The OriginTrail Discord community is active and welcoming, with dedicated channels where you can ask questions, troubleshoot issues, and share ideas as you learn. *** diff --git a/docs/dkg-knowledge-hub/learn-more/introduction/rules-and-token-thresholds.md b/docs/dkg-knowledge-hub/learn-more/introduction/edge-vs.-core-node-rules-and-token-thresholds.md similarity index 100% rename from docs/dkg-knowledge-hub/learn-more/introduction/rules-and-token-thresholds.md rename to docs/dkg-knowledge-hub/learn-more/introduction/edge-vs.-core-node-rules-and-token-thresholds.md diff --git a/docs/dkg-knowledge-hub/learn-more/previous-updates/staking-threshold-update-and-outstanding-network-rewards-release.md b/docs/dkg-knowledge-hub/learn-more/previous-updates/staking-threshold-update-and-outstanding-network-rewards-release.md new file mode 100644 index 0000000..c734790 --- /dev/null +++ b/docs/dkg-knowledge-hub/learn-more/previous-updates/staking-threshold-update-and-outstanding-network-rewards-release.md @@ -0,0 +1,60 @@ +# Staking cap & outstanding network rewards release + +**TL;DR** + +* We’re **increasing the staking cap from 5,000,000 $TRAC to 10,000,000 $TRAC to accommodate more stake delegations** on the best-performing DKG nodes. +* To ensure staking doesn’t outweigh other performance drivers (e.g., node publishing factor), we will **publish an RFC with an updated rewards formula before the updated staking cap goes live**. The formula update is planned for the **end of the next epoch (around February 10)**. +* With the last epoch of previously allocated V6 rewards expiring on January 9th (today), the conditions to begin **releasing outstanding network rewards are met**. The rewards deployment is scheduled for **the end of epoch 13 (around February 10)**. + +#### What’s changing and why + +As the network continues to grow, we’re seeing increased delegation demand—especially toward the best-performing DKG nodes. To better accommodate this and reduce delegation bottlenecks, we’re updating the staking parameters used for delegations. + +**1) Staking cap increases to 10,000,000 $TRAC** + +To support more stake delegations on top-performing nodes, the staking cap on the DKG nodes will increase from 5,000,000 $TRAC to 10,000,000 $TRAC. + +This change is intended to make it easier for delegators to stake with high-performing nodes without hitting the previous threshold as quickly. + +**2) Rewards formula update will be introduced via RFC** + +We also want to maintain a balanced incentive structure—where staking is important, but does not overshadow other network performance factors, such as the node publishing factor. + +To retain that balance: + +* We will introduce a change to the rewards formula via a public RFC (Request for Comments) before implementation. +* The goal is transparency and feedback prior to rollout. +* The formula change is planned to be implemented at the end of the next epoch (around February 10). + +**3) Outstanding network rewards will be released after a snapshot** + +There are outstanding network rewards to be released. To do this cleanly and fairly: + +* After the current epoch ends on January 10, we will take a network snapshot. +* That snapshot will be used to implement the distribution. +* The outstanding network rewards will be released at the end of the next epoch (around February 10). + + + +#### Key dates and timeline + +* **January 9 - Epoch 12 ends** + * A network snapshot will be taken at the end of the epoch. +* **\~February 10 (at end of epoch 13)** + * Outstanding network rewards released + * Formula update implemented (after the RFC is published and reviewed) + * Staking cap increased on DKG nodes from 5M to 10M $TRAC. + +_(All “around” dates are aligned to epoch timing.)_ + +#### What this means for delegators + +* More capacity to delegate to the best-performing DKG nodes, due to the higher cap (10M $TRAC). +* No immediate action is required purely because of this announcement — your delegation remains as-is unless you choose to adjust it. +* If you care about how staking weight vs. publishing/performance factors are balanced, you’ll be able to review and comment on the upcoming RFC before the formula change is implemented. + +#### What this means for node operators + +* The network is **reinforcing a performance-based model: stake matters, and publishing/performance factors continue to matter**. +* Please **keep an eye out for the RFC** outlining the formula update, and be ready to provide feedback. +* The snapshot and rewards release timeline is now clearly defined: snapshot after Jan 9, distribution around Feb 10. diff --git a/docs/dkg-knowledge-hub/learn-more/readme/README.md b/docs/dkg-knowledge-hub/learn-more/readme/README.md index 1f3820b..6609dd6 100644 --- a/docs/dkg-knowledge-hub/learn-more/readme/README.md +++ b/docs/dkg-knowledge-hub/learn-more/readme/README.md @@ -14,12 +14,12 @@ coverY: 0 > > Hari Seldon, **Foundation series by Isaac Asimov (1951)** -OriginTrail is building a verifiable knowledge layer for AI, where knowledge is traceable, memory is decentralized, and humans remain in control. It aims to achieve this by organizing all human knowledge in a **Decentralized Knowledge Graph (DKG)** through a **collective neuro-symbolic AI** approach. +OriginTrail is building a verifiable knowledge layer for AI, where knowledge is traceable, memory is decentralized, and humans remain in control. It aims to achieve this by organizing all human knowledge in a **Decentralized Knowledge Graph (DKG)** through a **collective neuro-symbolic AI** approach. -A collective neuro-symbolic AI combines structured and connected information from symbolic AI (DKG) with the creativity of neural AI technologies (LLMs), building a **robust decentralized AI infrastructure.** +A collective neuro-symbolic AI combines structured and connected information from symbolic AI (DKG) with the creativity of neural AI technologies (LLMs), building a **robust decentralized AI infrastructure.** -This provides a powerful substrate for **trusted, human-centric AI solutions** to tackle some of humanity's most pressing challenges. It also **drives AI agents’ autonomous memories and trusted intents**, as both AI agents and robots become potent enough to act on behalf of humans. +This provides a powerful substrate for **trusted, human-centric AI solutions** to tackle some of humanity's most pressing challenges. It also **drives AI agents’ autonomous memories and trusted intents**, as both AI agents and robots become potent enough to act on behalf of humans. ### Choose your learning path -
Cover image
Delegated stakingStake your TRAC tokens to support the network and earn rewards through delegated participation.Delegated Staking.png
DKG key concepts Explore the core ideas behind the DKG and learn how it enables trusted, verifiable, and AI-ready data.DKG key concepts.pngdkg-key-concepts.md
The DKG & MCPGet a quick look at the architecture and components that power the DKG.DKG under the hood.png
+
Cover image
Delegated stakingStake your TRAC tokens to support the network and earn rewards through delegated participation.Delegated Staking.png
DKG key conceptsExplore the core ideas behind the DKG and learn how it enables trusted, verifiable, and AI-ready data.DKG key concepts.pngdkg-key-concepts.md
The DKG & MCPGet a quick look at the architecture and components that power the DKG.DKG under the hood.png
diff --git a/docs/dkg-knowledge-hub/learn-more/readme/decentralized-knowle-dge-graph-dkg.md b/docs/dkg-knowledge-hub/learn-more/readme/decentralized-knowledge-graph-dkg.md similarity index 97% rename from docs/dkg-knowledge-hub/learn-more/readme/decentralized-knowle-dge-graph-dkg.md rename to docs/dkg-knowledge-hub/learn-more/readme/decentralized-knowledge-graph-dkg.md index 3b5af11..054e641 100644 --- a/docs/dkg-knowledge-hub/learn-more/readme/decentralized-knowle-dge-graph-dkg.md +++ b/docs/dkg-knowledge-hub/learn-more/readme/decentralized-knowledge-graph-dkg.md @@ -16,12 +16,12 @@ Modern AI applications increasingly demand: The DKG meets these needs by uniting the **trust layer of blockchains**, the **semantic expressiveness of knowledge graphs (symbolic AI),** and **state-of-the-art generative AI models (neural AI).** -### Why use Blockchain? +### Why use blockchain? Blockchains enable: * **Trustless verification:** Every claim is anchored to a consensus-verified state -* **Decentralized Computation**: Blockchains enable consensus-based execution of code (e.g., via smart contracts) across decentralized networks, with no single point of control, making them ideal for building decentralized protocols like OriginTrail. +* **Decentralized computation**: Blockchains enable consensus-based execution of code (e.g., via smart contracts) across decentralized networks, with no single point of control, making them ideal for building decentralized protocols like OriginTrail. * **Data integrity and auditability:** Through cryptographic hashing and timestamping of data records on a blockchain, making it possible to verifiably track the origin of records and their update trail * **Tokenization:** Enabling decentralized participation and support of the system through the TRAC token, as well as the ability to tokenize data through Knowledge Assets @@ -69,7 +69,7 @@ In short, the DKG is an essential infrastructure layer for building trusted, int ## System architecture -OriginTrail synergizes blockchains, knowledge graphs (symbolic AI), and LLMs (neural AI) in a 3-layer architecture, where each layer is implemented as a decentralized network. +OriginTrail synergizes blockchains, knowledge graphs (symbolic AI), and LLMs (neural AI) in a 3-layer architecture, where each layer is implemented as a decentralized network. The **trust layer leverages blockchains as trust networks,** established to enable reliable computation through **decentralized consensus**, operating as a global, dependable computer. It is used to track the origin of knowledge, its provenance, and integrity, and enable decentralized economic interactions in the system. diff --git a/docs/dkg-knowledge-hub/learn-more/readme/dkg-key-concepts.md b/docs/dkg-knowledge-hub/learn-more/readme/dkg-key-concepts.md index e999148..5067636 100644 --- a/docs/dkg-knowledge-hub/learn-more/readme/dkg-key-concepts.md +++ b/docs/dkg-knowledge-hub/learn-more/readme/dkg-key-concepts.md @@ -20,8 +20,6 @@ More precisely, a Knowledge Asset is a web resource identified by a unique Unifo * **Uniform Asset Locator**: Globally unique URI with assigned ownership using blockchain accounts, implemented as a non-fungible token (NFT) on the blockchain. * **Derivable vector embeddings**: These facilitate the neuro-symbolic features - such as link prediction, entity prediction, similarity search, and others. - -
Knowledge content can be observed as a time series of knowledge content states or **assertions**. Each assertion can be independently verified for integrity, by recomputing the cryptographic fingerprint by the verifier and comparing if the computed result matches with the corresponding blockchain fingerprint record. @@ -49,22 +47,22 @@ The Trace token (TRAC) is the utility token that powers the OriginTrail Decentra ## Decentralized Retrieval Augmented Generation -Patrick Lewis coined the term Retrieval-Augmented Generation (RAG) in a [2020 paper](https://arxiv.org/pdf/2005.11401.pdf). It is a technique for enhancing the accuracy and reliability of GenAI models with facts fetched from external sources. This allows artificial intelligence (AI) solutions to dynamically fetch relevant information before the generation process, enhancing the accuracy of responses by limiting the generation to re-working the retrieved inputs. \ +Patrick Lewis coined the term Retrieval-Augmented Generation (RAG) in a [2020 paper](https://arxiv.org/pdf/2005.11401.pdf). It is a technique for enhancing the accuracy and reliability of GenAI models with facts fetched from external sources. This allows artificial intelligence (AI) solutions to dynamically fetch relevant information before the generation process, enhancing the accuracy of responses by limiting the generation to re-working the retrieved inputs.\ \ **Decentralized Retrieval Augmented Generation (dRAG) advances the model by organizing external sources in a DKG with verifiable sources made available for AI models to use.** The framework enables a hybrid AI system that brings together neural (e.g., LLMs) and symbolic (e.g., Knowledge Graph) methodologies. Contrary to using a solely neural AI approach based on vector embedding representations, a symbolic AI approach enhances it with the strength of Knowledge Graphs by introducing a basis in symbolic representations. -dRAG is, therefore, a framework that allows AI solutions to tap into the strengths of both paradigms: +dRAG is, therefore, a framework that allows AI solutions to tap into the strengths of both paradigms: -* The powerful learning and generalization capabilities of neural networks, and -* The precise, rule-based processing of symbolic AI. +* The powerful learning and generalization capabilities of neural networks, and +* The precise, rule-based processing of symbolic AI. It operates on two core components: -(1) the DKG paranets and +(1) the DKG paranets and -(2) AI models. +(2) AI models. -The dRAG applications framework is entirely compatible with the existing techniques, tools, and RAG frameworks and supports all major data formats. +The dRAG applications framework is entirely compatible with the existing techniques, tools, and RAG frameworks and supports all major data formats. ## Knowledge mining @@ -90,7 +88,7 @@ If you are interested in learning more about NFTs, you can find out more [here]( ## What is a UAL? -Uniform Asset Locators (UALs) are ownable identifiers of the DKG, similar to URLs in the traditional web. The UALs follow the DID URL specification and are used to identify and locate a specific Knowledge Asset within the OriginTrail DKG. +Uniform Asset Locators (UALs) are ownable identifiers of the DKG, similar to URLs in the traditional web. The UALs follow the DID URL specification and are used to identify and locate a specific Knowledge Asset within the OriginTrail DKG. UAL consists of 5 parts: @@ -115,6 +113,6 @@ More information on DID URLs can be found [here](https://www.w3.org/TR/did-core/ The next building block of the DKG is **AI para-networks** or **paranets**. -**AI para-networks** or **paranets** are autonomously operated structures in the DKG, owned by their community as a paranet operator. In paranets, we find **assemblies of Knowledge Assets** driving use cases with associated **paranet-specific AI services** and an **incentivization model** to reward knowledge miners fueling its growth. +**AI para-networks** or **paranets** are autonomously operated structures in the DKG, owned by their community as a paranet operator. In paranets, we find **assemblies of Knowledge Assets** driving use cases with associated **paranet-specific AI services** and an **incentivization model** to reward knowledge miners fueling its growth. -**To see the DKG in action, continue to the** [**Installation guide**](../../../getting-started/decentralized-knowle-dge-graph-dkg.md)**.** +**To see the DKG in action, continue to the** [**Installation guide**](../../../getting-started/decentralized-knowledge-graph-dkg.md)**.** diff --git a/docs/dkg-knowledge-hub/learn-more/readme/kg.md b/docs/dkg-knowledge-hub/learn-more/readme/kg.md index 9c8c32c..3f5074e 100644 --- a/docs/dkg-knowledge-hub/learn-more/readme/kg.md +++ b/docs/dkg-knowledge-hub/learn-more/readme/kg.md @@ -27,8 +27,8 @@ As humans, we can quickly understand that this data is related to the same **thi ### What is linked data and the Semantic Web? -> _"The Semantic Web isn't just about putting data on the web. It is about making links, so that a person or machine can explore the web of data. With linked data, when you have some of it, you can find other, related, data."_ \ -> _- Tim Berners-Lee, the father of the World Wide Web and Semantic Web_ +> _"The Semantic Web isn't just about putting data on the web. It is about making links, so that a person or machine can explore the web of data. With linked data, when you have some of it, you can find other, related, data."_\ +> &#xNAN;_- Tim Berners-Lee, the father of the World Wide Web and Semantic Web_ The core idea behind linked data is to represent all **things** with **relationships** between them in a common graph. Linked data is built on primitives called "**triples",** which connect a **subject entity** with an **object entity** via a **relationship**. @@ -42,15 +42,13 @@ Integrating the two above-mentioned example datasets according to the principles ![](../../../.gitbook/assets/3.jpg) - - -Having such a "semantic network" of data, we inherently add context and enable easy extensions. The semantic graph can be easily queried in many ways and enables growing a body of _knowledge_ around things rather than keeping "tables of strings". +Having such a "semantic network" of data, we inherently add context and enable easy extensions. The semantic graph can be easily queried in many ways and enables growing a body of _knowledge_ around things rather than keeping "tables of strings". In the coming sections, we will show you how to use the OriginTrail Decentralized Knowledge Graph (DKG) for data discovery and querying. However, let's first explain what a knowledge graph is. ### What is a knowledge graph? -There are many definitions of knowledge graphs (KGs), all slightly different. Without emphasizing precision, all of them describe a knowledge graph as a network of entities — physical & digital objects, events, or concepts — illustrating the relationship between them (aka a semantic network). KGs are used by major companies such as [Amazon](http://lunadong.com/talks/PG.pdf), [Google](https://en.wikipedia.org/wiki/Google_Knowledge_Graph), [Uber](https://www.youtube.com/watch?v=r3yMSl5NB_Q), [IBM](https://www.ibm.com/cloud/learn/knowledge-graph), etc., for various applications: search, data integration, knowledge reasoning, recommendation engines, analytics, machine learning, and AI, etc. +There are many definitions of knowledge graphs (KGs), all slightly different. Without emphasizing precision, all of them describe a knowledge graph as a network of entities — physical & digital objects, events, or concepts — illustrating the relationship between them (aka a semantic network). KGs are used by major companies such as [Amazon](http://lunadong.com/talks/PG.pdf), [Google](https://en.wikipedia.org/wiki/Google_Knowledge_Graph), [Uber](https://www.youtube.com/watch?v=r3yMSl5NB_Q), [IBM](https://www.ibm.com/cloud/learn/knowledge-graph), etc., for various applications: search, data integration, knowledge reasoning, recommendation engines, analytics, machine learning, and AI, etc. Key characteristics of knowledge graphs are: @@ -62,7 +60,6 @@ For the moment, we restrict this document only to a high-level introduction and ![An illustration of a Knowledge Graph and it's entities](https://lh4.googleusercontent.com/1rOyzC751vA96QcoPOOavfy_RlkKuEofhJ8M9I9KHSK_XCPuW5HxAvIioqSqFROkNMbEqD0Muq0yGKAHSA4ZqIYQgtsz-J0pmBJ64bzZARoHXOdMMNoA3VdD40yoTTLbhyyPfn4Rs7CS) -**Knowledge graphs are commonly deployed within the domain of one organization and are designed to capture knowledge from various sources both from within and outside of the organization.** These centralized knowledge graphs generate huge value for their owners, yet a decentralized globally shared knowledge graph brings orders of magnitude higher value to everyone participating. - -We present the **OriginTrail Decentralized Knowledge Graph (DKG)** as the first permissionless, global, open decentralized knowledge graph. Learn more about the [OriginTrail DKG here](decentralized-knowle-dge-graph-dkg.md). +**Knowledge graphs are commonly deployed within the domain of one organization and are designed to capture knowledge from various sources both from within and outside of the organization.** These centralized knowledge graphs generate huge value for their owners, yet a decentralized globally shared knowledge graph brings orders of magnitude higher value to everyone participating. +We present the **OriginTrail Decentralized Knowledge Graph (DKG)** as the first permissionless, global, open decentralized knowledge graph. Learn more about the [OriginTrail DKG here](decentralized-knowledge-graph-dkg.md). diff --git a/docs/dkg-knowledge-hub/learn-more/readme/usdtrac-token.md b/docs/dkg-knowledge-hub/learn-more/readme/usdtrac-token.md index 7f61eb2..540b034 100644 --- a/docs/dkg-knowledge-hub/learn-more/readme/usdtrac-token.md +++ b/docs/dkg-knowledge-hub/learn-more/readme/usdtrac-token.md @@ -49,6 +49,6 @@ Your node needs **both** to operate — TRAC to publish verifiable data and the Now that you understand what a DKG Node is and how it’s powered by $TRAC, you’re ready to take action. -If you’d like to start building right away, jump ahead to the “[Installation](../../../getting-started/decentralized-knowle-dge-graph-dkg.md)” section — where you’ll set up, install, and configure your own DKG Node to connect with AI models. +If you’d like to start building right away, jump ahead to the “[Installation](../../../getting-started/decentralized-knowledge-graph-dkg.md)” section — where you’ll set up, install, and configure your own DKG Node to connect with AI models. Or, if you want to learn more about tokenomics first, continue to “[Delegated staking](../../../contribute-to-the-dkg/delegated-staking/)” to explore how staking works across the OriginTrail ecosystem and how it powers trust, security, and participation. diff --git a/docs/dkg-knowledge-hub/useful-resources/test-token-faucet.md b/docs/dkg-knowledge-hub/useful-resources/test-token-faucet.md index 8b59fe5..ddb5e64 100644 --- a/docs/dkg-knowledge-hub/useful-resources/test-token-faucet.md +++ b/docs/dkg-knowledge-hub/useful-resources/test-token-faucet.md @@ -6,7 +6,7 @@ description: Learn how to get testnet tokens from the OriginTrail Discord faucet The OriginTrail Decentralized Knowledge Graph (DKG) provides a testing environment on the NeuroWeb testnet, Gnosis Chiado, and Base Sepolia blockchains. To perform various blockchain operations on these testnets, users need both **test TRAC on the chosen network** and the **test utility token** of their chosen blockchain for gas. -The **OriginTrail faucet service**, which provides test tokens, is deployed on the [**OriginTrail Discord server**](https://discord.com/invite/WaeSb5Mxj6) and located in the [**#faucet-bot**](https://discord.com/invite/WaeSb5Mxj6) channel. +The **OriginTrail faucet service**, which provides test tokens, is deployed on the [**OriginTrail Discord server**](https://discord.gg/D9n4TeTaKG) and located in the [**#faucet-bot**](https://discord.gg/c8NSEmND) channel. To view the available faucet options, run the following command in the chat of the **#faucet-bot** channel: @@ -31,4 +31,3 @@ Currently, depending on your requirements, you can request tokens for the follow {% endhint %} If you experience any issues with the Faucet Bot, please tag the core developers in one of the Discord channels. - diff --git a/docs/getting-started/basic-knowledge-asset-operations.md b/docs/getting-started/basic-knowledge-asset-operations.md index 4c7d827..942b4b2 100644 --- a/docs/getting-started/basic-knowledge-asset-operations.md +++ b/docs/getting-started/basic-knowledge-asset-operations.md @@ -9,7 +9,7 @@ description: >- ## **Creating and retrieving your first Knowledge Asset** -This simple exercise demonstrates the basic end-to-end flow of the DKG - from AI-assisted publishing to knowledge retrieval (something like "Hello world"). I +This simple exercise demonstrates the basic end-to-end flow of the DKG — from AI-assisted [Knowledge Asset](../dkg-key-concepts.md#knowledge-assets) publishing via the [Edge Node](decentralized-knowledge-graph-dkg.md) to knowledge retrieval (something like "Hello world"). ### Create your first Knowledge Assets diff --git a/docs/getting-started/decentralized-knowle-dge-graph-dkg.md b/docs/getting-started/decentralized-knowledge-graph-dkg.md similarity index 86% rename from docs/getting-started/decentralized-knowle-dge-graph-dkg.md rename to docs/getting-started/decentralized-knowledge-graph-dkg.md index 8514866..4c055c0 100644 --- a/docs/getting-started/decentralized-knowle-dge-graph-dkg.md +++ b/docs/getting-started/decentralized-knowledge-graph-dkg.md @@ -1,7 +1,23 @@ +--- +description: DKG Edge Node +--- + # Installation +The **DKG Edge Node** is your gateway to verifiable AI. It's an intuitive, app-style node that lets you create and interact with verifiable knowledge effortlessly. + +With the Edge Node, you can: + +* Publish knowledge in the DKG as [Knowledge Assets](../dkg-key-concepts.md#knowledge-assets) +* Retrieve knowledge from the DKG +* Build reliable AI applications powered by the Decentralized Knowledge Graph (DKG) with ease through the [DKG Node AI Agent](/broken/pages/i91ic9qprIOpVgGjUy0a). + +The DKG Edge Node runs on devices at the “edge” (e.g., laptops, phones, IoT, and even servers, if deployed that way). It enables local knowledge processing, private-graph handling, and integration with AI pipelines (via APIs such as dRAG), allowing owners to retain control of their data while still contributing to the global DKG. + {% hint style="info" %} If you are new to OriginTrail, DKG, knowledge graphs, or blockchains, we highly recommend becoming familiar with the [DKG—Key concepts](../dkg-key-concepts.md) before proceeding. + +To understand the difference between the DKG Edge Node and Core Node [check here](../dkg-knowledge-hub/learn-more/introduction/edge-vs.-core-node-rules-and-token-thresholds.md). {% endhint %} ### What are we installing today? @@ -12,7 +28,7 @@ To install the **DKG Edge Node**, we will be using the DKG CLI (`dkg-cli`) - a s ### The DKG utilizes blockchain -The DKG Network utilizes blockchains as a trusted environment for incentivisation and securing data exchanges. It's a multichain network, so DKG Nodes support 3 blockchains, but can currently be deployed on a **single blockchain at a time** (multichain deployment support is on the way). +The DKG Network utilizes blockchains as a trusted environment for incentivisation and securing data exchanges. It's a multichain network, so DKG Nodes support 3 blockchains, but can currently be deployed on a **single blockchain at a time** (multichain deployment support is on the way). If you're not too familiar with blockchain technology, and not sure which blockchain to pick to get started with the DKG Node, which one is better for you etc - don't worry, a default blockchain will be chosen for you and you will be able to learn as you go (the DKG Node abstracts a lot of the complexities of blockchain for you). You shouldn't notice a big difference between blockchains while you are in development — this choice matters most when you are ready for your DKG Node deployment to mainnet. @@ -25,7 +41,7 @@ For now, you need to know the following: ### What do you need for the installation? * A **macOS** or **Linux** machine with at least 8GB RAM and 20GB storage space (Windows version is on the way) -* Node.js **v22.20.0** or higher installed +* NVM and Node.js **v22.20.0** or higher installed * About 15-30 minutes of your time to complete all the steps ### OK, let's go! @@ -38,7 +54,7 @@ npm install -g dkg-cli #### 2. Generate the DKG Node Configuration -Your DKG Node allows for rich configuration (more on that in the **Configuration** section later), however this setup focuses on a minimal default configuration. +Your DKG Node allows for rich configuration (more on that in the **Configuration** section later), however this setup focuses on a minimal default configuration. We recommend setting up your project folder and starting with the default development setup on DKG testnet. @@ -65,14 +81,20 @@ All DKG node wallets require native blockchain tokens, while the publishing wall
+**MySQL configuration:** + +If you have an existing MySQL database already configured on your environment, please make sure to pass your root password to `DB_PASSWORD` parameter in the setup .env file. + +If you do not have MySQL installed, password passed this parameter will be set as your root password. + #### 3. Funding wallets -As mentioned previously, your DKG Node requires tokens to be able to create Knowledge Assets. +As mentioned previously, your DKG Node requires tokens to be able to create Knowledge Assets. **To get tokens for the DKG testnet, use the** [**testnet token faucet**](../dkg-knowledge-hub/useful-resources/test-token-faucet.md)**.** For DKG Mainnet deployments, we suggest visiting the [TRAC token](https://origintrail.io/technology/trac-token) page to check for its availability. {% hint style="warning" %} -Make sure to fund your node keys with tokens before running the `dkg-cli install` command; otherwise, your DKG node might not function correctly. +Make sure to fund your node keys with tokens before running the `dkg-cli install` command; otherwise, your DKG node might not function correctly. {% endhint %} Here's an overview of supported blockchains and the required tokens per key type. @@ -95,14 +117,14 @@ The installation can take a few minutes. It installs the DKG Node in the same di #### 5. Configure your DKG Agent -Run the agent setup script to enable LLM features. You'll be prompted for your LLM provider, API key, model name, and DKG environment (must match your setup-config choice: testnet or mainnet). The agent supports multiple providers; examples are listed below. +Run the agent setup script to enable LLM features. You'll be prompted for your LLM provider, API key, model name, and DKG environment (must match your setup-config choice: testnet or mainnet). ```sh cd dkg-node dkg-cli agent-setup ``` -DKG Node supports various LLM providers. Some examples include: +DKG Agent supports various LLM providers. Some examples include: | Provider | API Key Link | | -------------------------- | ------------------------------------------------------------------------------------ | @@ -190,7 +212,7 @@ All commands work from any directory and automatically detect your operating sys A `createUser` is also possible via the `dkg-cli` included to simplify the creation of additional user accounts. ```sh -cd dkg-node/apps/agent +cd dkg-node dkg-cli create-user # Enter: email, password, permissions (e.g., `mcp llm blob scope123`) ``` @@ -202,7 +224,7 @@ dkg-cli create-user * Contains sensitive data (wallet keys, passwords, API keys) * Never commit to version control -**Services and Ports**\ +**Services and ports**\ The following list provides an overview of which services are running locally and the ports they listen on: * **8081** — Web UI & API @@ -214,4 +236,4 @@ The following list provides an overview of which services are running locally an * 📖 [Documentation](https://docs.origintrail.io/) * 🐛 [Report issues](https://github.com/OriginTrail/dkg-node-installer/issues) -* 💬 [Discord community](https://discord.gg/aNpBjf97) +* 💬 [Discord community](https://discord.com/invite/xCaY7hvNwD) diff --git a/docs/getting-started/dkg-node-services.md b/docs/getting-started/dkg-node-services.md index f1f4009..668244f 100644 --- a/docs/getting-started/dkg-node-services.md +++ b/docs/getting-started/dkg-node-services.md @@ -7,7 +7,7 @@ description: >- # DKG Node Services -## Run[^1]ning your DKG Node in development mode +## Running your DKG Node in development mode You will be running your DKG Node in **development mode** while building, experimenting, and customizing your DKG Node, before deploying it in production. In this mode, the system automatically reloads on code changes, streams real-time logs, and gives you immediate feedback as you work. @@ -24,7 +24,7 @@ This will: * Help you debug and iterate quickly in a local environment. {% hint style="info" %} -## Troubleshooting +### Troubleshooting If `npm install` fails, try: @@ -40,7 +40,7 @@ Also confirm your Node.js version is **v22+**. Once your dev server is up (`npm run dev`), several powerful tools become available through your browser. These interfaces let you **manage, inspect, and debug** every part of your DKG Node. -### **DKG Node & Agent UI** +### **DKG Node & Agent UI** [**http://localhost:8081/**](http://localhost:8081/) @@ -67,7 +67,7 @@ It allows: If your DKG Node is the “brain,” the MCP server is the **communication layer** - it’s what lets AI systems talk to your node programmatically. -### **Swagger UI (API Explorer)** +### **Swagger UI (API Explorer)** [**http://localhost:9200/swagger**](http://localhost:9200/swagger) @@ -94,9 +94,3 @@ It allows you to: {% hint style="danger" %} If you’re using the Brave browser, please disable Shields when accessing Drizzle Studio - otherwise you may not be able to view the database records. {% endhint %} - - - - - -[^1]: diff --git a/docs/getting-started/interacting-with-your-dkg-agent.md b/docs/getting-started/interacting-with-your-dkg-agent.md index aeddcfa..9f63aaf 100644 --- a/docs/getting-started/interacting-with-your-dkg-agent.md +++ b/docs/getting-started/interacting-with-your-dkg-agent.md @@ -1,12 +1,12 @@ # Interacting with your DKG Agent {% hint style="info" %} -This section assumes you have finished [Installation](decentralized-knowle-dge-graph-dkg.md) and will guide you through trying out the basic DKG Agent that comes bundled with the DKG Node. +This section assumes you have finished [Installation](decentralized-knowledge-graph-dkg.md) and will guide you through trying out the basic DKG Agent that comes bundled with the DKG Node. {% endhint %} Each DKG node includes a **collocated neuro-symbolic AI agent** that combines neural model capabilities (e.g., LLMs) with symbolic reasoning over RDF-based graph data. This enables DKG nodes not only to publish and query semantic knowledge but also to perform knowledge graph reasoning, summarization, and data transformation tasks directly on locally or remotely stored knowledge. -The **DKG Agent** is built around a modular **plugin system** centered on the **Model Context Protocol (MCP)**. Plugins define how the agent interacts with external tools, APIs, and reasoning systems. A generic DKG Node ships with a base set of plugins for common operations — such as knowledge publishing, retrieval, and validation — **while developers can extend functionality by creating custom plugins**. +The **DKG Agent** is built around a modular **plugin system** centered on the **Model Context Protocol (MCP)**. Plugins define how the agent interacts with external tools, APIs, and reasoning systems. A generic DKG Node ships with a base set of plugins for common operations — such as knowledge publishing, retrieval, and validation — **while developers can extend functionality by creating custom plugins**. Each plugin may expose both **MCP endpoints** (for agentic interoperability) and **classic REST/gRPC APIs** (for programmatic access). Example plugin types include ontology-specific retrieval tools (e.g., “social media query” modules), **knowledge-mining pipelines** for crafting Knowledge Assets aligned with domain ontologies, and **reasoning plugins** that apply declarative rule sets to infer new knowledge. @@ -16,13 +16,13 @@ If you want to jump right into building your custom plugins, head over to the [" Your DKG Node comes with a built-in agent interface serving two core purposes: -* **Secure authentication portal** → OAuth 2.1 login system for accessing your DKG Node +* **Secure authentication portal** → OAuth 2.1 login system for accessing your DKG Node * **AI agent interface** → Direct chat with your DKG-Node-powered agent The interface is built with **React Native (Expo)** for cross-platform compatibility, enabling a seamless interaction with your agent and the Decentralized Knowledge Graph (DKG). {% hint style="info" %} -If you are following this guide, make sure your [**DKG Node is running**](decentralized-knowle-dge-graph-dkg.md#id-7.-start-the-node), if it’s not already active. +If you are following this guide, make sure your [**DKG Node is running**](decentralized-knowledge-graph-dkg.md#id-7.-start-the-node), if it’s not already active. {% endhint %}
@@ -91,4 +91,3 @@ Your DKG Node **uses a** **standard MCP server** (with OAuth 2.1 over HTTPS), so **Microsoft Copilot Studio** * Follow [Microsoft’s MCP integration docs](https://learn.microsoft.com/en-us/microsoft-copilot-studio/mcp-add-existing-server-to-agent). - diff --git a/docs/graveyard/everything/dkg-edge-node/customize-and-build-with-the-edge-node.md b/docs/graveyard/everything/dkg-edge-node/customize-and-build-with-the-edge-node.md index 605d1b7..7f5022e 100644 --- a/docs/graveyard/everything/dkg-edge-node/customize-and-build-with-the-edge-node.md +++ b/docs/graveyard/everything/dkg-edge-node/customize-and-build-with-the-edge-node.md @@ -14,10 +14,9 @@ Users can add custom variables to the `UserConfig` table, making them accessible ## Local environment setup with forked services -To begin customizing and building your own solution using the OriginTrail Edge Node stack, we recommend the following local development setup:\ +To begin customizing and building your own solution using the OriginTrail Edge Node stack, we recommend the following local development setup:\\ - -1. ### Fork Core Edge Node Repositories +1. #### Fork Core Edge Node Repositories In order to fully tailor the Edge Node to your specific use case, it is recommended that you **fork the following components** into your own GitHub account: @@ -32,20 +31,16 @@ To begin customizing and building your own solution using the OriginTrail Edge N 👉 Fork this if you want to modify business logic, expose new routes, or integrate additional microservices. 4. **Edge Node UI**\ The user-facing interface of the Edge Node.\ - 👉 Fork this to customize branding, UX, workflows, or connect it with your own backend services.\ - -2. ### Authentication Service (Optional Fork) - 1. **Edge Node Authentication Service**\ - This handles user sessions and tokens.\ - Recommended to use as-is for most cases to keep things simple and aligned with best practices.\ - 🛠️ Optional: You may fork this if you need: - - 1. Custom authentication methods (e.g., biometric login, enterprise SSO) - 2. Integration with external identity providers - 3. Custom logic for Verifiable Credential issuance or DID resolution - - -3. ### Forked Repositories Setup + 👉 Fork this to customize branding, UX, workflows, or connect it with your own backend services.\\ +2. #### Authentication Service (Optional Fork) + 1. **Edge Node Authentication Service**\ + This handles user sessions and tokens.\ + Recommended to use as-is for most cases to keep things simple and aligned with best practices.\ + 🛠️ Optional: You may fork this if you need: + 1. Custom authentication methods (e.g., biometric login, enterprise SSO) + 2. Integration with external identity providers + 3. Custom logic for Verifiable Credential issuance or DID resolution +3. #### Forked Repositories Setup Once you’ve successfully forked the core Edge Node repositories and tested the default setup using the official public repos, you’ll need to **clean your local environment** before installing your customized versions. @@ -58,12 +53,10 @@ To begin customizing and building your own solution using the OriginTrail Edge N After pruning the default Edge Node setup, your environment will be reset: 1. All previously cloned **Edge Node service repositories** will be deleted - 2. All **Edge Node databases** will be dropped\ - + 2. All **Edge Node databases** will be dropped\\ 2. **Switch to Your Forked Repositories** 1. **Open your `.env` file** located at the root of the project. - 2. Replace the official repository URLs with the links to your **forked repositories.**\ - + 2. Replace the official repository URLs with the links to your **forked repositories.**\\ 3. **Install Your Custom Edge Node** 1. Run Edge node installer script which will install services based on your forked repos. 2. If your Edge node is set on MacOS, execute following script to run your services:\ @@ -108,7 +101,7 @@ A **DAG** defines the execution order of tasks within a **pipeline**, while a ** * optionally: If _airflow webserver_ is used, it should also be restarted * **Unpause** your pipeline\ `airflow dags unpause ${YOUR_DAG_NAME}`\ - &#xNAN;_e.g. If your pipeline filename is xlsx\_to\_jsonld.py, unpause command should be "airflow dags unpause xlsx\_to\_jsonld"_\ + \&#xNAN;_e.g. If your pipeline filename is xlsx\_to\_jsonld.py, unpause command should be "airflow dags unpause xlsx\_to\_jsonld"_\ \ **NOTE:** If you are using Airflow webserver, you should be able to see your pipeline on http://localhost:8080 (or any other port you selected for the service) inside of "unpaused DAGS" * **Registering the pipeline** @@ -121,11 +114,11 @@ A **DAG** defines the execution order of tasks within a **pipeline**, while a ** * **Convert science paper PDFs to JSON-LD using a bibliographic ontology**\ Extract metadata from science paper PDFs, such as title, authors, publication date, and references, and convert the data into JSON-LD following a bibliographic ontology like BIBO. This allows for structured, machine-readable representation of academic papers for easier citation management and searchability. * **Convert supply chain Excel documents to JSON-LD using GS1 standard ontology**\ - Parse supply chain-related data from Excel files (e.g., product lists, inventory records) and convert it into JSON-LD using the GS1 standard ontology. + Parse supply chain-related data from Excel files (e.g., product lists, inventory records) and convert it into JSON-LD using the GS1 standard ontology. * **Convert images to JSON-LD using OCR**\ - Use Optical Character Recognition (OCR) to extract text and metadata from image files and represent it as JSON-LD. + Use Optical Character Recognition (OCR) to extract text and metadata from image files and represent it as JSON-LD. * **Convert videos to Knowledge Assets by transcribing the audio and extracting key points**\ - Transcribe the audio from videos and extract key points or insights, then represent this information as JSON-LD knowledge assets. + Transcribe the audio from videos and extract key points or insights, then represent this information as JSON-LD knowledge assets. * If you need to support a different file type: * Create a new variable for the file type, e.g., `kmining_xlsx_pipeline_id` * adapt the code in [Edge Node API - kMiningService](https://github.com/OriginTrail/edge-node-api/blob/main/services/kMiningService.js) to handle the new variable based on the input file's MIME type @@ -153,7 +146,7 @@ The native query language for interacting with the DKG is SPARQL, as we use a tr ``` * **Creating your dRAG** * The app currently contains two dRAGs as a demonstration of how natural language questions can be understood, processed, and answered using SPARQL and vector similarity search - * Creating a new dRAG is basically creating a new API route in the app, and those steps are recommended but not mandatory: \ + * Creating a new dRAG is basically creating a new API route in the app, and those steps are recommended but not mandatory:\ NOTE: (_you can create your own path as long as they are compatible with Edge Node interface, which also can be customized by your needs_) * Create a new Controller in the controllers directory * Create your dRAG method in Controller @@ -176,8 +169,7 @@ The native query language for interacting with the DKG is SPARQL, as we use a tr * **Feedback-loop-based SPARQL refinement:** Combine the LLM's natural language to SPARQL conversion with a feedback loop, in which the AI iteratively enhances the generated SPARQL queries, ensuring they align with the ontology and avoid errors. * **Hybrid search — Combine vector and symbolic search:** Use a hybrid approach in which vector search (for semantic similarity) and symbolic search (e.g., SPARQL) work in tandem. Balancing structured queries with open-ended search results in this way can help ensure both accuracy and broad coverage. * **Ontology-aware LLM fine-tuning:** Create a system to fine-tune a large language model (LLM) specifically on a given ontology. This approach involves providing the LLM with structured data from the ontology, including relationships, entities, and definitions, so it can learn to generate responses that align with the specific concepts and rules of the ontology. Then, use the trained model to formulate SPARQL queries based on the natural language. -* You should now be ready to test your setup. Visit the Edge Node interface, go to the "AI Assistant" page, ask a question, and verify that your dRAG can answer it based on your custom logic.\ - +* You should now be ready to test your setup. Visit the Edge Node interface, go to the "AI Assistant" page, ask a question, and verify that your dRAG can answer it based on your custom logic.\\ | Feature | dRAG | Pipeline | | ----------------- | ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | diff --git a/docs/graveyard/everything/dkg-edge-node/deploy-your-edge-node-based-project/README.md b/docs/graveyard/everything/dkg-edge-node/deploy-your-edge-node-based-project/README.md index fda13b9..41e58d8 100644 --- a/docs/graveyard/everything/dkg-edge-node/deploy-your-edge-node-based-project/README.md +++ b/docs/graveyard/everything/dkg-edge-node/deploy-your-edge-node-based-project/README.md @@ -12,4 +12,4 @@ You can deploy the Edge Node using the Automated Installer (more methods coming Choose the method that best fits your needs to continue the installation process: -
Deploy your Edge node with the automated installerhttps___files.gitbook.com_v0_b_gitbook-x-prod.appspot.com_o_spaces%2F-McnEkhdd7JlySeckfHM%2Fuploads%2F1LB2XdwetIONYxxI3xj3%2FAutomated%20environment%20setup (1).pngautomated-deployment-with-installer.md
+
Deploy your Edge node with the automated installerautomated-deployment-with-installer.md