# Symbiosis Core Smart Contracts Overview

{% hint style="info" %}

* If you are curious to see the Symbiosis Protocol in action, check out \
  [Symbiosis WebApp](https://app.symbiosis.finance/swap?chainIn=Ethereum\&tokenIn=ETH).
* The Symbiosis Core Smart Contracts are open source and available at\
  <https://github.com/symbiosis-finance/core-contracts>.
* For security audits, please refer to [Security Audits](/main-concepts/security-audits.md).
  {% endhint %}

The Symbiosis Core Smart Contracts implement the on-chain logic for cross-chain operations. These smart contracts are deployed across all blockchain networks supported by Symbiosis and are fine-tuned to handle requests specific to each network. When the smart contracts process a request, they generate events called Oracle requests. These events contain all the necessary data to execute the next steps of cross-chain operations on other chains and are key triggers for the relayers’ activity.

The Symbiosis protocol has two slightly different sets of smart contracts: Scheme 1.

<figure><img src="/files/bztrEid4nS0scNvf29Bu" alt=""><figcaption><p>Scheme 1. The Symbiosis Core Contracts.</p></figcaption></figure>

Let's see what each contract does:

1. The **MetaRouterGateway** contract secures the interactions of the MetaRouter contract with users’ ERC20 tokens. <mark style="background-color:purple;">Users’ ERC20 tokens should only be approved for this contract.</mark>&#x20;
2. The **MetaRouter** contract manages calls to other Symbiosis contracts on one blockchain within a  cross-chain operation.&#x20;
3. The **Portal** contract locks and unlocks users' stablecoins during cross-chain operations.
4. The **BridgeV2** contract is a proxy between the Symbiosis Relayers Network and the Synthesis/Portal contracts.
5. The **Synthesis** contract mints and burns sTokens during cross-chain operations.&#x20;
6. A **Symbiosis Octopool** is an AMM liquidity pool containing several types of tokens of the same nominal value. For more information, see [Symbiosis Octopools](/crosschain-liquidity-engine/symbiosis-octopools.md).&#x20;
7. The **MulticallRouter** contract manages calls to Symbiosis contracts on on the Symbiosis Host Chain within a cross-chain operation, when the Symbiosis Host Chain isn't the source or destination blockchain of the cross-chain operation.

[Symbiosis Routing Contracts](/crosschain-liquidity-engine/symbiosis-routing-contracts.md) document explains how the Core Smart Contracts interact during cross-chain operations.&#x20;

## More Information

* sTokens (sStable tokens, sWETH, sWBTC, etc.) are explained here: [Symbiosis sTokens and Supported Chains](/main-concepts/wrapped-tokens.md).
* Here is an explanation of how the Symbiosis Protocol handles cross-chain operations [Symbiosis Routing Contracts](/crosschain-liquidity-engine/symbiosis-routing-contracts.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.symbiosis.finance/crosschain-liquidity-engine/symbiosis-core-smart-contracts-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.
