# Bound Witness

## What is a Bound Witness in the XYO Network?

A Bound Witness is a critical concept that supports trustless validation of real-world data. It allows devices to cryptographically prove that they were in proximity and that the data they exchanged was genuine. This forms the backbone of XYO's Proof of Origin system, enabling decentralized and tamper-resistant location verification.

### Core Concept

At its simplest, a Bound Witness Interaction is an electronic “handshake” between two devices. When these devices—such as Sentinels and Bridges—interact, they mutually record the event, sign it, and add it to their individual ledgers. This creates a trustless, verifiable record of the interaction.

If both devices record the same interaction, cryptographic proof ensures the data is valid and unaltered. This forms the foundation for Proof of Origin and Proof of Location, enabling secure, decentralized data verification.

### A Deeper Look

A Bound Witness is established when two devices (nodes) in the XYO Network interact in a bidirectional manner. During this interaction, they exchange **data** and **public keys**, each signing the event and storing a record. This mutual cosigning proves that the devices were in proximity, producing a zero-knowledge proof of interaction.

This proof is the first step in establishing a secure and verifiable chain of data known as a Proof of Origin Chain. These chains ensure that the data used within the XYO ecosystem originated from trustworthy interactions.

### Two Parties Observing The Same Event

{% @mermaid/diagram content="flowchart TD

```
DeviceA --> BW1[Exchange Data + Public Address]
DeviceB --> BW1
```

BW1 --> SignAndStoreA\[Device A + Device B:<br> Stores and Signs Transaction]

SignAndStoreA --> BoundWitnessCreated@{shape: flip-tri	, "label": Signed Bound Witness Between 2 Parties}

```
classDef boundWitness fill:#fff176,stroke:#fbc02d,stroke-width:2px,color:#000;
classDef noteStyle fill:#fff5ad,stroke:#decc93,color:#000;" %}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.xyo.network/xyo-layer-one/xyo-layer-one-features/bound-witness.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
