[Proposal: 106] Multichain bridge xcEQ and xcEQD tokens recovery

Dear Moonbeam community,

A recent Multichain bridge hack caught everyone off-guard. Now that the dust has settled, we would like to proceed with recovering user EQ, and EQD tokens stuck due to the Multichain bridge hack.

Equilibrium used Multichain bridge and xcEQ, xcEQD external XC-20 tokens for Equilibrium <> Ethereum bridging of native EQ tokens and EQD stablecoin.

Please consider the following proposal: transfer all EQ and EQD tokens from corresponding contracts in the Moonbeam network to the Equilibrium network treasury account.
Here’s the Call data:


Hey sir,

Since user tokens are being moved, I imagine there was a governance proposal on the Equilibrium side? could you indicate the link?

What implications do these tokens have in those contracts? If we move them, not affect the users that send and use them on ethererum side? How will be returned to them?

Are the eqds and EQ locked in the contracts, to send the tokens to ethereum? or why are they locked? Could you give a little more context, thanks.

Hello, dear @jose.crypto

  1. We worked with Multichain Bridge via Moonbeam to support EQ transfers between Equilibrium and Ethereum blockchains. When users transferred EQ to Moonbeam, xcEQ was minted and transferred to a Multichain where it was locked until EQ got returned back from the Ethereum.

  2. Currently, with the decease of the Multichain bridge the only way to support tokens transfers back to Equilibrium from Ethereum is to use the Gate.io exchange which now supports both Ethereum ERC-20 EQ tokens and native Equilibrium EQ tokens. We’ve already contacted the exchange and asked them to limit EQ withdrawals to Ethereum and support a bridging functionality between Ethereum and Equilibrium.

  3. Initially we want to conduct the Moonbeam proposal to return all the tokens. Then we will have periodic proposals in the Equilibrium chain to fund Gate.io’s account with the required amount of tokens to facilitate deposits from Ethereum.

hey Peter,

Is there a specific reason why users cannot simply use XCM to transfer the funds back from Moonbeam to Equilibrium?

Is the issue that the funds are currently stuck in the Multichain bridge on Ethereum, while the tokens remain locked in Moonbeam’s sovereign account?

so, you’re planning to initiate a governance proposal that would require the community to vote on whether they agree to transfer the tokens from Moonbeam’s sovereign account to the Equilibrium parachain, assuming the vote passes?

Hi @turrizt

These tokens are located on multichain contracts, we don’t have access to them:

  1. AnyswapV6ERC20_XC20Wrapper | Address 0x0B322577569418b166CD98Ea8AE7C681E4A820Eb | Moonbeam
  2. AnyswapV6ERC20_XC20Wrapper | Address 0x1861C9058577C3b48e73d91d6f25C18B17FBFFE0 | Moonbeam

We have no alternative way to regain control of these tokens.

could you please clarify whether the tokens are locked on Moonbeam’s Sovereign account or in the Multichain bridge contract? If they are locked in the Multichain bridge contract, how the community can access the Multichain bridge contract through governance?

Hi @turrizt

Here’s a brief explanation on how bridging worked:

Moondeam contracts:

  • xcEQ token: 0xFFFFFFFF8F6267E040D8A0638C576DFBA4F0F6D6
  • xcEQD token: 0xFFFFFFFF8CDA1707BAF23834D211B08726B1E499
  • xcEQ wrapper contract: 0x0B322577569418b166CD98Ea8AE7C681E4A820Eb
  • xcEQD wrapper contract: 0x1861C9058577C3b48e73d91d6f25C18B17FBFFE0
    You can see that wrapper contracts have xc-20 token balances.

Ethereum contracts:

  • ERC-20 EQ token: 0xA5eDE2FEE620ac3d68065EC01F26F9dd99850B82
  • ERC-20 EQD token: 0xfB41E1074DbE88EEb0Da01D52565774165DA03d3

External xc-20 tokens withdraw from Moonbeam to Ethereum scheme:

  1. User lock external xc-20 tokens in a wrapper token contract (which is controlled by the Multichain team) on the Moonbeam side
  2. Multichain mint new ERC-20 tokens on the Ethereum side and send them to a recipient

ERC-20 tokens deposit from Ethereum to Moonbeam scheme:

  1. Multichain bridge contracts burn ERC-20 tokens from the user on the Ethereum side.
  2. The exact amount of xc-20 tokens transfers from the wrapper xc-20 contract to a recipient on the Moonbeam side

So, EQ and EQD ERC-20 tokens on the Ethereum side are backed by external xc-20 tokens on wrapper contracts on the Moonbeam side.

We want to change the place where these tokens will be locked to recover cross-chain transfer functionality. Control over these funds is required to process deposits from Ethereum to Equilibrium which in the absence of bridge now will happen via the Gate.io exchange.

How the community can access the Multichain bridge contract through governance?

utility.dispatchAs extrinsic can create a transaction from a contract side as a simple user transaction. So, it will look like a simple call xTokens::transfer from the wrapper contracts

1 Like

I’ve tested this proposal using Chopsticks and it does what @pstr1 stated. It will take the xcAssets that are held by Multichain’s wrapper contract and forcefully transfer them via XCM to 0x6d6f646c65712f74727372790000000000000000000000000000000000000000.

I’m not sure how to verify that 0x6d6f646c65712f74727372790000000000000000000000000000000000000000 is Equilibriums Treasury account.

@pstr1 would you mind elaborating on that.

1 Like

And in case multichain bridge is reactivated, wouldn’t it be possible to claim those tokens, even if they are no longer blocked in the bridge contract? I ask to know what are the possible risks that may affect Moonbeam eco


i find that this match sir, on subscan at least


Hi @jrafaelangarita,

We took away the rights to mint and burn ERC-20 tokens in Ethereum from the Multichain bridge. In Moonbeam there are no such rights with external XC-20s. If the proposal passes and funds are withdrawn from the bridge, it will not be able to do anything with EQ and EQD tokens from that point on.

Ok thanks for the answer, before doing this i prefer you have a referendum on your chain with a remark that establishes all the steps thus described (if it was already done , please give the link)

Of course this is only my personal opinion

Link to the on-chain proposal: