Skip to main content

Deployment Instructions

Follow these instructions exactly

You must follow these deployment instructions exactly. Deviating from these instructions may lead to ineligibility for future hand over or ineligibility to utilise the EUROe.b logos or trademarks.

0. Agree to the terms of EUROe.b

Before deploying EUROe.b you must agree to the terms of EUROe.b. The key points of the terms are summarised below.

  • You may not use the EUROe trademarks or logos
  • You may not claim that Membrane Finance endorses or supports your deployment
  • You must implement your independent AML policy and notify EUROe.b users accordingly
  • You must understand that an AML breach with EUROe.b may lead to the blocklisting of the bridge contract on L1
  • You understand that Membrane Finance is not responsible for any losses or damages due to the usage or hand over of EUROe.b
  • You are required to complete a testnet deployment of EUROe.b prior to the deployment of the mainnet version
  • You agree to responsible disclosures and honest communications with the end-users of EUROe.b
  • You are granted limited and revocable use of the EUROe.b word and logos
  • You agree that the supply of EUROe.b must never exceed the amount of EUROe locked in the bridge contract on L1

Download and sign the terms of EUROe.b here. Attach a signed copy to your notification in Step 5.

1. Understand the code base

You must have an advanced understanding of the EUROe code base prior to deploying a EUROe.b contract. Understand the proxy patterns, role management, and EUROe architecture prior to deployment. To get started, head over to the Stablecoin -section.

2. Deploy the bridge contract

There are no specific requirements for the bridge contract deployed on either the source or the target chain with the exception of upgradability to support the transition from EUROe.b to EUROe.

3. Deploy the EUROe.b contract

Deploy the EUROe.b contract as you would deploy a EUROe contract, as described in the EUROe Stablecoin GitHub -repository. However, you must make the following changes during the implementation deployment:

  1. name must be set to Bridged EUROe
  2. symbol must be set to EUROe.b

Other parts of the code and settings (including decimals=6) must be left exactly as they are in the reference implementation.

You may assign the roles as best fit your implementation. The following requirements apply to assigning roles:

  1. PROXYOWNER_ROLE and DEFAULT_ADMIN_ROLE must be managed by an MPC with a minimum of three distinct signers from an ISO27001 certified provider OR by a reputable and audited m/n multisig where m ≥ 3 and n/m ≤ 2.
  2. MINTER_ROLE and BURNER_ROLE must be managed by an MPC with a minimum of two distinct signers from an ISO27001 certified provider OR by a reputable and audited m/n multisig where m ≥ 2 unless system design requires differently while delivering comparable or better security assumptions. For example, a reputable oracle or cross-chain messaging service may be assigned these roles.
  3. All other privileged roles must be securely managed.

Public disclosures to the management and security practices concerning each role must be made available and kept up-to-date.

Please note that the EUROe.b contract must not be upgraded to a new of different implementation at any time, except to upgrade to a subsequent EUROe smart contract version authored by Membrane Finance and published in the EUROe Stablecoin repository.

4. Plan for the worst

Prepare disaster response strategies and mechanisms. Implement automated alerting and monitoring infrastructure. Thoroughly test and document the impacts of handing off, pausing, and unpausing EUROe.b contracts to a new entity.

5. Notify Membrane Finance

Notify Membrane Finance of your deployment before end users are allowed to interact with the deployment.

We will collect the following information during the notification process:

  • Signed copy of EUROe.b terms
  • Contact details of the organisation
  • Key details about the blockchain (e.g., chain ID, gas asset, network name, official RPCs, block explorers)
  • EUROe.b and any other relevant contract addresses for testnet(s) and mainnet(s)
  • Transaction hashes of all deploying transactions for testnet(s) and mainnet(s)
  • Explanations of any mainnet transactions prior to the notification
  • Explanations of addresses for all assigned roles (e.g., type, control structure)

Start the notification process here. Membrane Finance will not acknowledge or react to the notification.

6. Go into production

Once you have completed steps 0-5 you are ready to go into production!

Here are some items to remember as you start using EUROe.b:

  • You can find logos and other materials for your use on the Design Assets -page
  • Remember to list EUROe.b to relevant analytics and other services such as CoinMarketCap, CoinGecko, DefiLlama
  • Notify your community and developers that they can use EUROe.b
  • We recommend you maintain an up-to-date list of EUROe.b integrations so we can communicate accordingly with relevant stakeholders at hand over
  • We recommend you serve icons and any offchain metadata from your own canonical server which can be updated with the new icons and metadata at hand over ensuring smooth transition across dApps and services