> For the complete documentation index, see [llms.txt](https://qualitax.gitbook.io/interop/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://qualitax.gitbook.io/interop/bridging-approaches/function-calls.md).

# Function Calls

Direct function calls between smart contract environments:

* Smart contracts on two chains can call each other directly if they support the same programming environments (e.g. EVM chains).
* This allows passing data, triggering asset transfers, updating state etc. across chains via function calls.
* Security models like cryptographic proofs can be used to pass verified data between contracts.
* Oracles can be used to trigger crosschain operations based on external data.
* Hashed timelock mechanisms can enable atomic operations across chains.
* Chains just need some common interface standards to interpret crosschain function calls.

However, potential limitations are:

* Chains must support compatible contract environments. Won't work between all chains.
* Direct calls can congest the two chains if not designed efficiently.
* More complex to coordinate multi-step transactions.

Direct crosschain function calls are feasible to connect compatible smart contract platforms but may have limitations compared to bridges and relayers in terms of interoperability across diverse chains.&#x20;
