> For the complete documentation index, see [llms.txt](https://gitbook.mor.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gitbook.mor.org/~/revisions/3ulU7lsttK8DsMz9IH4e/smart-contracts/documentation/mor-20-contracts.md).

# MOR 20 Contracts

{% hint style="warning" %}
**This documentation is for an early implementation of the MOR20 smart contracts, subject to change. Before conducting a Fair Launch, consider coordinating with other contributors in the** [**MOR20 chat**](https://discord.com/channels/1151741790408429580/1228219372317966409) **in the Morpheus Discord.**
{% endhint %}

MOR20 is a standardized implementation of the Morpheus [Techno Capital Machine](/~/revisions/3ulU7lsttK8DsMz9IH4e/tokenomics/techno-capital-machine.md) that can be used to fairly launch new projects while ensuring alignment with the Morpheus ethos and its community.

As in the case of Morpheus itself, a MOR20 token launch consists of an omnichain ERC20 token (Arbitrum, Ethereum, Base), utilizing LayerZero's OFT token standard, as well as an Ethereum staking contract for Capital Providers (stETH) on Layer 1 (Ethereum). Additional helper contracts are used for cross-chain communication and rewards calculation. Projects that launch using MOR20 can use other chain combinations.

This design enables a fair token distribution among Capital providers (and other ecosystem participants), with yield from staked Ethereum used to create [Protocol-Owned Liquidity](/~/revisions/3ulU7lsttK8DsMz9IH4e/tokenomics/protocol-owned-liquidity-pol.md).

### Contracts Architecture

A MOR20 deployment consists of the following contracts:

* `ERC20MOR` – the project's reward token
* `Distribution` – used to lock capital for the Techno Capital Machine and claim rewards
* `LinearDistributionIntervalDecrease` – a library for calculating rewards
* `L1Sender` – sends MOR minting requests; wraps and transfers stETH to L2
* `L2MessageReceiver` – receives and processes MOR minting requests on L2
* `L2TokenReceiverV2` – receives wstETH and manages Protocol-Owned Liquidity on L2

These contracts are functionally equivalent to those used by the Morpheus token itself.&#x20;

### Contracts Deployment

MOR20 contracts are deployed using the `Mor20FactoryL1` and `Mor20FactoryL2` factory contracts:

* `deployMor20OnL1` on `Mor20FactoryL1` deploys the `Distribution` and `L1Sender` contracts.
* `deployMor20OnL2` on `Mor20FactoryL2` deploys the `ERC20MOR` (the project's reward token), `L2MessageReceiver`, and `L2TokenReceiver` contracts.

These methods can be called in any order; however, before calling either method, the deployer should know the counterfactual deployment addresses of the second method, which can be calculated using `predictMor20Address`.

You can find the full guidance on [Github](https://github.com/MorpheusAIs/MOR20) or ask your questions in [Discord.](https://discord.com/channels/1151741790408429580/1228219372317966409)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://gitbook.mor.org/~/revisions/3ulU7lsttK8DsMz9IH4e/smart-contracts/documentation/mor-20-contracts.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
