# DACT-v2 Messaging Protocol

<figure><img src="/files/peKR6EUp7t9BueErNtcT" alt="" width="563"><figcaption><p>DACt-v2</p></figcaption></figure>

SurferMonkey's Decentralized Agnostic Compliance Technology (DACT-v2) messaging protocol is the next-generation evolution of the Decentralized Agnostic Cross-Chain Transfer (DACT-v1) system. Building on the strengths of the original DACT-v1 protocol, SurferMonkey's DACT-v2 messaging protocol enables developers to create private applications that are interoperable across multiple blockchain ecosystems. Our messaging protocol is anonymous, agnostic, and interoperable, allowing users to send anonymous messages on single and multi-blockchain systems. DACT-v2 provides a seamless user experience, enabling users to communicate privately and securely without compromising their privacy or security.

One of the key improvements in the DACT-v2 protocol is the support for auditability by an external observer. This feature allows for increased transparency and trust in the system while maintaining the privacy and security that the DACT protocol is known for.

SurferMonkey uses Proofs of Memberships shield with Zero Knowledge Proofs. Our messaging protocol has two phases to break the transaction graph analysis. First, there's the deposit phase, where the transaction is added to a group. Then, there's the withdraw phase where the user sends its ZKP proof to be part of the group without revealing its member. This is where the agnostic call happens to the specific dapp with the specific user intentions (function, parameters).

With SurferMonkey's DACT-v2 messaging protocol, developers can create private applications that are interoperable across multiple blockchain ecosystems. And users can send anonymous messages on single and multi-blockchain systems, without any risk of compromise.

EPFL University research report (DACT-v1)

[www.arxiv.org/abs/2210.13242](https://surfermonkey.gitbook.io/litepaper/www.arxiv.org/abs/2210.13242)


---

# 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://surfermonkey.gitbook.io/litepaper/dact-v2-messaging-protocol.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.
