The architecture of the Milkomeda Protocol for the Cardano deployment.

Validator Node

Transaction Executor
Responsible for checking the validity of a request in one network and generating the required transaction in the other network. The output of this sub-module is given to the Cardano Multisig Coordinator/EVM Multisig Coordinator in order to broadcast it in the other network.
For example, when moving a token from Cardano to the sidechain, the Transaction Executor will check the validity of this request, and if passed it will generate a transaction in the sidechain network and pass this transaction to the EVM Multisig Coordinator to broadcast it in the sidechain network
Wrapped Contract Executor
Similar to the Transaction Executor but rather than watching for a specific smart contract to transfer tokens, this watches wrapped interfaces that are used to interact with wrapped smart contracts on the sidechain.
Cardano Multisig Coordinator
This sub-module supports modules like the Transaction Executor and the Wrapped Contract Executor to build transactions to be posted on the Cardano network. The coordination between validators is done on the sidechain and then the result is sent to the Cardano mainnet.
EVM Multisig Coordinator
Similar to the Cardano Multisig Coordinator, but the validators all agree to sign a sidechain transaction rather than a Cardano transaction.
Multichain Syncer
This module encompasses the components (sub-modules) that are required to keep the validator nodes up to date with everything that happens in Cardano, the C1 sidechain, and future sidechains.
ETH Node + DB / GraphQL
Part of the Multichain Syncer module. This component contains an ETH full node that connects to the sidechain and extra tooling which parses and facilitates the reading of on-chain information by other modules.
Also, it is crucially responsible for block creation on the sidechain when the validator is selected as the block producer.
Cardano Node + DB Sync
Part of the Multichain Syncer module. This component contains a Cardano full node that connects to the Cardano mainnet and extra tooling that parses and facilitates the reading of on-chain information by other modules.
Stakepool Auto-Delegator
Responsible for keeping the locked ADA in the Cardano chain delegated in order to generate revenue for the protocol through delegation. The delegation preferences will eventually be controlled by the DAO through voting.

Cardano Chain Components

In order to move assets from/to the Cardano mainnet, there are various on-chain components that need to be accounted for as well. Keeping these components on mainnet assures a higher degree of security as we take advantage of Ouroboros’ security properties.
Token Registry
Responsible for keeping a decentralized record of the relationship between assets in Cardano and the C1 sidechain (and in the future other sidechains). Eventually, controlled and managed by the DAO.
Token Multisig / Token Smart Contract
In order to move assets to the sidechain, tokens need to be locked under a secured multisig address (Metadata Era) and later into a smart contract (Plutus Era). This component represents the on-chain logic required to do this.
Wrapped Smart Contract Interface Registry
One of the critical components of wrapped contracts is their interface, which enables “translating” the required inputs of a sidechain dApp into Plutus so that it can be used from Cardano by anyone. A registry of these wrapped contract interfaces exists on Cardano mainnet to keep record and be accessible by anyone.
Milkomeda DAO (Decentralized Autonomous Organization)
Arguably the most important piece of the protocol. The DAO controls and manages how the protocol operates, how treasury funds are spent, and even how the protocol will evolve.

C1 Sidechain Components

The sidechain needs various on-chain components itself to enable moving assets from/to the Cardano mainnet:
Wrapped Smart Contracts Interface Layer
A smart contract-based layer that wraps existing dApps on the sidechain and exposes an interface that can be used by users on Cardano mainnet. This layer also explicitly records the wrapped contract actions before executing them, thereby providing transparency throughout the whole process.
Token Smart Contract Bridge
The smart contract that users send funds to in order to initiate sidechain bridge transfer requests back to Cardano mainnet. The list of supported assets which are transferable are specified in the Token Registry on the Cardano mainnet.