# Overview

Nomad is an interoperability protocol for sending arbitrary messages between blockchains.

In the same way [TCP](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) was built to facilitate *reliable* packet-routing in traditional IP networking, Nomad enables applications to transmit data to each other across various blockchains.&#x20;

Analogous to how the application layer in [the Internet protocol](https://en.wikipedia.org/wiki/Internet_protocol_suite) treats the transport layer as a black-box, Nomad developers can deploy cross-chain applications (xApps) without needing to know how the cross-chain transport layer works.&#x20;

Developers only need to implement [send and receive functions](/developers/quickstart.md) and Nomad will securely deliver messages between chains.

## Architecture&#x20;

As described above, Nomad separates the transport and application layers so that application developers do not have to reason about the guts of cross-chain communications.

To that extent, when we describe the Nomad protocol, we only mean the message-passing layer, which is application agnostic. To learn more about the application layer and building cross-chain apps, [check out the Developers section](/developers/quickstart.md).

### On-chain and Off-chain Components

The Nomad protocol consists of two core components, on-chain smart contracts and off-chain agents:

* [On-chain smart contracts](/the-nomad-protocol/smart-contracts.md) implement Nomad's messaging API on-chain, enabling developers to enqueue messages and access replicated state on different chains.
* [Off-chain agents](/the-nomad-protocol/off-chain-agents.md) secure and relay state across chains, forming the backbone of the messaging layer.

Developers need not interface with off-chain agents directly, as the core contracts enforce logic around optimistic verification and ensure messages are securely transmitted.

### Optimistic Verification

Nomad uses an optimistic verification mechanism, which is patterned after optimistic systems. It sees an attestation of some data, and accepts it as valid after a timer elapses. While the timer is running, honest participants (ie. [Watchers](/the-nomad-protocol/off-chain-agents/watchers.md)) have a chance to respond to the attestation and submit fraud proofs.

Read more about [optimistic verification](/the-nomad-protocol/verification-mechanisms/optimistic-verification.md) and how it compares to other [verification mechanisms](/the-nomad-protocol/verification-mechanisms.md).


---

# 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.nomad.xyz/the-nomad-protocol/overview.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.
