> ## Documentation Index
> Fetch the complete documentation index at: https://docs.biconomy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# MEE Versions

> Complete guide to MEE versions and their capabilities

# MEE Versions

The **Modular Execution Environment (MEE)** supports multiple versions of its contract suite. Each version introduces new capabilities around **smart accounts**, **validator configuration**, and **composability**.

<Info>
  This guide helps SDK developers understand and select the appropriate version for their use case.
</Info>

## Which version to use

<Warning>
  Use **`2.2.3`** for every newly created account. It is the only version built on Nexus 1.3.3.

  Higher version numbers do not mean newer contracts. `2.3.0` sorts above `2.2.3` but is a release candidate built on Nexus 1.3.1. Pick the version by name, not by ordering.
</Warning>

From AbstractJS `v2.0.0`, `getMEEVersion()` accepts only versions approved for new accounts, so selecting an earlier one is a compile-time error. Earlier versions remain reachable through `getLegacyMEEVersion()` so you can still derive, deploy and upgrade accounts you already have. See [Accounts created on earlier versions](#accounts-created-on-earlier-versions).

## Versions Table

The table below outlines all MEE versions and their core capabilities.

| Version | Nexus Version | ERC-7702 Support | Composability | Notes |
| - | - | - | - | - |
| `2.2.3` | 1.3.3 | ✅ Yes | ✅️ Native | **Use this for new accounts.** Account initialization is single-use per transaction. Bundles [ERC-8211 Smart Batching](https://www.erc8211.com). Reviewed by Pashov Audit Group (July 2026). |
| `2.3.0` | 1.3.1 | ✅ Yes | ✅️ Native | **Release candidate, unaudited, not for production.** Adds the `safe-sa` fusion mode that enables Safe accounts with multichain orchestration features. Built on Nexus 1.3.1. |
| `2.2.2` | 1.3.2 | ✅ Yes | ✅️ Native | Bundles the audited [ERC-8211 Smart Batching](https://www.erc8211.com) reference implementation (EF & Biconomy). Audited by Pashov (May 2026). |
| `2.2.1` | 1.3.1 | ✅ Yes | ✅️ Native | Adds [composability features](/new/getting-started/understanding-runtime-injection) and EIP-712 typed data sign for some stx modes |
| `2.1.0` | 1.2.0 | ✅ Yes | ✅ Native | Allows delegated/upgraded EOAs to directly own smart accounts in Nexus 1.2.0. |
| `2.0.0` | 1.2.0 | ✅ Yes | ✅ Native | Supports ERC-7702 flows but **does not** support delegated/upgraded EOAs as direct owners of smart accounts. |
| `1.1.0` | 1.0.2 | ❌ No | ⚠️ Manual | Composability must be installed manually (handled by the SDK). Best for EVM Paris–only chains with limited opcode support. |
| `1.0.0` | 1.0.2 | ❌ No | ⚠️ Manual | Same as `1.1.0`. Composability module installed via SDK. |

## Accounts created on earlier versions

An account that has been **deployed on chain is unaffected by this change and needs no action**. It keeps working exactly as before, on whichever version created it.

Two cases need attention:

<AccordionGroup>
  <Accordion title="You hold balances at account addresses that have not been deployed yet">
    Deploy those accounts. Any operation deploys an account, including one with empty calldata, and you do not need to move the funds. Deploying is permanent for that account.

    Deploy at the address you already have, using the version that derived it. This does not require upgrading the SDK or switching versions. If you keep precomputed addresses for your users, you can deploy them in bulk by calling the account factory for each address. That needs no user signature and does not change ownership.
  </Accordion>

  <Accordion title="You want existing accounts on the current contracts">
    Use the [upgrade flow](/upgrade-migrate/upgrade-mee-suite). Upgrading keeps the same account address and the same balances. It is optional, not a prerequisite for anything above.
  </Accordion>
</AccordionGroup>

<Note>
  Selecting `2.2.3` for an account that was created on an earlier version derives a **different address**, because the account address is computed from the factory of the version that created it. To keep an existing account, pass its `accountAddress` explicitly, as described in [Account Migration](/upgrade-migrate).
</Note>

## Version Breakdown

<Tabs>
  <Tab title="v2.2.3 (Current)">
    <div className="flex items-start space-x-3 mb-4">
      <div className="flex-shrink-0">
        <div className="w-8 h-8 bg-green-100 rounded-full flex items-center justify-center">
          <span className="text-green-600 font-semibold text-sm">★</span>
        </div>
      </div>

      <div>
        <h4 className="text-lg font-semibold text-green-600 mb-2">Use this for new accounts</h4>
        <p className="text-gray-600 mb-3">Nexus 1.3.3, with the audited ERC-8211 Smart Batching implementation</p>
      </div>
    </div>

    **Key Features:**

    * Account initialization is single-use per transaction
    * Bundles the audited [ERC-8211 Smart Batching](https://www.erc8211.com) reference implementation (Ethereum Foundation & Biconomy)
    * Same composability feature set as v2.2.2
    * Reviewed by Pashov Audit Group (July 2026)

    <Tip>
      **The version to select for every newly created account.** Accounts already created on an earlier version keep working, and can be brought onto this suite with the [upgrade flow](/upgrade-migrate/upgrade-mee-suite).
    </Tip>
  </Tab>

  <Tab title="v2.3.0 (Experimental)">
    <div className="flex items-start space-x-3 mb-4">
      <div className="flex-shrink-0">
        <div className="w-8 h-8 bg-orange-100 rounded-full flex items-center justify-center">
          <span className="text-orange-600 font-semibold text-sm">!!</span>
        </div>
      </div>

      <div>
        <h4 className="text-lg font-semibold text-green-600 mb-2">Experimental and unaudited</h4>
        <p className="text-gray-600 mb-3">Unlocks cross-chain orchestration for Safe accounts</p>
      </div>
    </div>

    **Key Features:**

    * Safe accounts can now be used as master accounts in Fusion flow as well as EOAs.
      * Flow is the same as for EOA's, just instead of one master EOA signature, the proper multisig is required to initiate a SuperTxn
      * Safe accounts should be deployed at the same address on all the chains involved in the SuperTxn (source and destination chains)

    <Tip>
      **Recommended for projects on early stages** looking to attract the large Safe multisig accounts userbase.
    </Tip>
  </Tab>

  <Tab title="v2.2.2">
    <div className="flex items-start space-x-3 mb-4">
      <div className="flex-shrink-0">
        <div className="w-8 h-8 bg-green-100 rounded-full flex items-center justify-center">
          <span className="text-green-600 font-semibold text-sm">★</span>
        </div>
      </div>

      <div>
        <h4 className="text-lg font-semibold text-green-600 mb-2">Audited ERC-8211 reference implementation</h4>
        <p className="text-gray-600 mb-3">Nexus 1.3.2 bundling the audited [ERC-8211 Smart Batching](https://www.erc8211.com) reference implementation</p>
      </div>
    </div>

    **Key Features:**

    * Bundles the audited [ERC-8211 Smart Batching](https://www.erc8211.com) reference implementation (Ethereum Foundation & Biconomy) — the formal standardization of the composability primitives shipped in earlier versions
    * Expanded composability primitives and pipeline hardening
    * Audited by Pashov (May 2026)

    <Tip>
      **Superseded by v2.2.3**, which carries the same composability feature set on Nexus 1.3.3.
    </Tip>
  </Tab>

  <Tab title="v2.2.1">
    <div className="flex items-start space-x-3 mb-4">
      <div className="flex-shrink-0">
        <div className="w-8 h-8 bg-green-100 rounded-full flex items-center justify-center">
          <span className="text-green-600 font-semibold text-sm">★</span>
        </div>
      </div>

      <div>
        <h4 className="text-lg font-semibold text-green-600 mb-2">Reachest features prior to v2.2.2</h4>
        <p className="text-gray-600 mb-3">Built on Nexus 1.3.1 with extended composability features</p>
      </div>
    </div>

    **Key Features:**

    * Adds native token runtime injection feature
    * Adds runtime injection via custom static call (inject ANY return value as an input param at the runtime)
    * Users signs EIP-712 Data Struct instead of blind Stx hash for the `smart-account` mode
    * Allows initializing new Nexus ERC-7702 account via relayer with an owner issued signature (gasless ERC-7702 delegation)

    <Tip>
      **Recommended for projects** seeking the latest features for the [runtime injection](new/getting-started/understanding-runtime-injection) and wanting to provide transparent EIP-712 sig requests for users.
    </Tip>
  </Tab>

  <Tab title="v2.1.0">
    <div className="flex items-start space-x-3 mb-4">
      <div className="flex-shrink-0">
        <div className="w-8 h-8 bg-green-100 rounded-full flex items-center justify-center">
          <span className="text-green-600 font-semibold text-sm">★</span>
        </div>
      </div>

      <div>
        <h4 className="text-lg font-semibold text-green-600 mb-2">Delegated EOA ownership</h4>
        <p className="text-gray-600 mb-3">Built on Nexus 1.2.0 with cutting-edge capabilities</p>
      </div>
    </div>

    **Key Features:**

    * Fully supports **ERC-7702**, including **delegated/upgraded EOAs** as direct owners of Smart Contract Accounts (SCAs)
    * Features **native composability** — no need for manual module installation
    * Built on Nexus `1.2.0` with pre-installed MEE K1 validator

    <Tip>
      **Recommended for all new projects** seeking the simplest and most battle-tested developer experience.
    </Tip>
  </Tab>

  <Tab title="v2.0.0">
    <div className="flex items-start space-x-3 mb-4">
      <div className="flex-shrink-0">
        <div className="w-8 h-8 bg-blue-100 rounded-full flex items-center justify-center">
          <span className="text-blue-600 font-semibold text-sm">2.0</span>
        </div>
      </div>

      <div>
        <h4 className="text-lg font-semibold text-blue-600 mb-2">Native Composability, No Delegated EOAs</h4>
        <p className="text-gray-600 mb-3">ERC-7702 support with composability built-in</p>
      </div>
    </div>

    **Key Features:**

    * Supports **ERC-7702**, but **does not allow delegated or upgraded EOAs** to directly own smart accounts
    * Includes **native composability**, reducing setup complexity

    <Note>
      Suitable for applications that do not require EOAs as direct smart account owners but want full ERC-7702 support.
    </Note>
  </Tab>

  <Tab title="v1.1.0">
    <div className="flex items-start space-x-3 mb-4">
      <div className="flex-shrink-0">
        <div className="w-8 h-8 bg-orange-100 rounded-full flex items-center justify-center">
          <span className="text-orange-600 font-semibold text-sm">1.1</span>
        </div>
      </div>

      <div>
        <h4 className="text-lg font-semibold text-orange-600 mb-2">EVM Paris Compatibility with Manual Composability</h4>
        <p className="text-gray-600 mb-3">For chains limited to Paris upgrade opcodes</p>
      </div>
    </div>

    **Key Features:**

    * Does **not support ERC-7702**
    * Requires **manual installation** of composability modules, though the SDK automates this during deployment

    <Note>
      Targeted for EVM chains limited to Paris upgrade opcodes (no PUSH0, MCOPY, or TSTORE). Good choice for compatibility-constrained environments.
    </Note>
  </Tab>

  <Tab title="v1.0.0">
    <div className="flex items-start space-x-3 mb-4">
      <div className="flex-shrink-0">
        <div className="w-8 h-8 bg-gray-100 rounded-full flex items-center justify-center">
          <span className="text-gray-600 font-semibold text-sm">1.0</span>
        </div>
      </div>

      <div>
        <h4 className="text-lg font-semibold text-gray-600 mb-2">Supports all EVM chains prior to the Cancun upgrade</h4>
        <p className="text-gray-600 mb-3">Legacy compatibility for older EVM environments</p>
      </div>
    </div>

    **Key Features:**

    * No ERC-7702 support
    * Requires manual installation of composability modules, automatically handled by the SDK
    * Compatible with all EVM environments **below the Cancun upgrade**

    <Note>
      Suitable for legacy or specialized chains where native composability isn't available but can be enabled via modules.
    </Note>
  </Tab>
</Tabs>

## Recommendation

Use `2.2.3` for new accounts. It is the SDK and STX API default, and the only version built on Nexus 1.3.3.

Earlier versions remain available so that accounts already created on them stay derivable and upgradeable. They are not a starting point for new integrations.

<CodeGroup>
  ```typescript Creating a new account theme={null} theme={null}
  import { MEEVersion, getMEEVersion } from "@biconomy/abstractjs";

  const version = getMEEVersion(MEEVersion.V2_2_3);
  ```

  ```typescript Working with an account created earlier theme={null} theme={null}
  import { MEEVersion, getLegacyMEEVersion } from "@biconomy/abstractjs";

  // Needed to derive the address of an account created on an earlier version,
  // for example to deploy or upgrade it. Pass accountAddress to keep the address.
  const version = getLegacyMEEVersion(MEEVersion.V2_1_0);
  ```
</CodeGroup>

## How to Find Your Current Nexus Version

Not sure which Nexus version your smart account is using? Follow these simple steps to find out:

<Steps>
  <Step title="Locate your smart account address">
    **Locate your existing Nexus smart account address** on the specific blockchain you're working with.
  </Step>

  <Step title="Open the block explorer">
    **Open the block explorer** for that chain (e.g., Etherscan, Polygonscan) and paste the smart account address into the search bar.
  </Step>

  <Step title="Navigate to the Contracts tab">
    Navigate to the **Contracts** tab on the explorer page.
  </Step>

  <Step title="Verify the proxy contract if needed">
    If the contract is a **proxy** and the proxy contract isn't verified yet, you'll need to verify it first. (If "Read as proxy" option isn't available, this usually means verification is needed.)
  </Step>

  <Step title="Call the getImplementation function">
    Once verified, go to the **Read as proxy** section and call the `getImplementation` function. This will return the address of the actual implementation contract your smart account is using.
  </Step>

  <Step title="Compare with official addresses">
    Compare this implementation contract address against the addresses listed on our [Contracts and Audits](/contracts-and-audits) page. This will help you identify exactly which MEE version you are using.
  </Step>
</Steps>

If you need further assistance, feel free to join our [Discord community](https://discord.gg/biconomy) and ask for help!

<Tip>
  Keeping track of your Nexus version is key for smooth upgrades and compatibility checks.
</Tip>

## Not Sure Which Version to Choose?

If you're still confused about which MEE version fits your needs, or if you're unsure about your current version for migration, don't worry!

Join our [Discord community](https://discord.gg/biconomy) to ask questions and get real-time support from the team and other developers.

We're here to help you choose the best path forward!


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.