# anyCall V7

{% hint style="info" %}
anyCall V7 is the latest version of anyCall. This version is recommended as it contains useful features and innovations which make it perfect for your cross-chain dapps.
{% endhint %}

## What is anyCall?

AnyCall is a permissionless generic cross-chain message protocol that allows cross-chain messages and contract calling from chain A to chain B. anyCall is secured by the Multichain SMPC network which is used to secure billions of assets.

### Features and Updates include:

* Permissionless Deployments (No whitelisting)
* Flexible contract designs
* Chained anyCall allowed. You can call anyCall to Chain B, then to Chain C

### **anyCall V7 Workflow**

The anyCall protocol is made up of three main functions `anyCall` , `anyExec` . These two methods exist in our deployed anyCall contracts.

DAPPS need to develop and deploy a sender contract on chain A and a receiver contract on chain B. On the receiver contract, **a function named** `anyExecute`  **needs to be present and it will be called**.

&#x20;<mark style="color:green;">**DAPPS sender contract(Chain A)**</mark>**&#x20;->** `anyCall`(Chain A) **->** *SMPC Network* **->** `anyExec`(Chain B) **->`AnyCallExecutor` ->** `anyExecute` by <mark style="color:green;">**DAPP receiver contract(Chain B)**</mark>

DAPPS sender contract call `anyCall` on the Chain A. Then SMPC network will relay anyCall event which will call **`AnyCallExecutor`**  to make the final execution of the  `anyExecute`  function on the DAPP receiver contract. Hence a function named `anyExecute`  needs to be present in the DAPP receiver contract.

If the `anyExec` contract execution failed on Chain B, it can call `_fallback` function to send messages back to Chain A.&#x20;

&#x20;`anyExecute` <mark style="color:red;">**DAPP receiver contract(Chain B failed)**</mark>**&#x20;-> anyCall**(Chain B) **->** *SMPC Network* **-> anyExec**(Chain A) **->** `anyFallback` <mark style="color:green;">**DAPP sender contract(Chain A)**</mark>&#x20;


---

# 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.multichain.org/developer-guide/anycall-v7.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.
