# Introduction

Snakepath is a protocol for lightweight, secure, privacy preserving message-passing between chains. Its purpose is to serve as a critical building block for bringing private data onchain in a useful yet privacy-preserving manner.

In technical terms, Snakepath is a message passing system for non-malleable, trustless interchain message passing. In more practical terms, Snakepath enables public chains to call arbitrary functions on private compute chains while preserving the privacy of the inputs and validity of the outputs. Snakepath is built using a primitive that we call TNLS ("Transport *Network* Layer Security") which is effectively a blockchain derivative of the [TLS protocol](https://en.wikipedia.org/wiki/Transport_Layer_Security).

*Snakepath itself does not store or compute over data*. Rather, it connects public blockchains and their applications to privacy-preserving computation networks. This design allows public blockchain applications to build and operate private computation contracts on privacy-preserving chains while keeping their primary smart contract logic and liquidity on public blockchains.

Ultimately, Snakepath enables the building of new applications that combine the transparency, UX, and latency benefits of public blockchains with the trust-minimized and private computation features of privacy-preserving blockchains.

**These docs provide an in-depth guide to Snakepath**, starting with the high-level architecture and then moving to each of the components of the network: the relayer and the gateways. Each section includes not just function descriptions and an architectural overview of a specific component, but also a brief developer guide to interacting with that component.

For more about [Snakepath](https://www.fortresslabs.xyz/snakepath) and privacy-preserving computation in general, see our [whitepaper](https://uploads-ssl.webflow.com/632b43ea48475213272bcef4/632dd73d6dfc1b0cba06bbd6_Snakepath_whitepaper.pdf).


---

# 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://fortress-labs.gitbook.io/snakepath/introduction.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.
