# Shuttle -> Wormhole
You need to replace the offchain message passing entity from [Shuttle](https://github.com/terra-money/shuttle) to [Wormhole](https://wormholebridge.com/), keeping deployed [bETH contracts](https://github.com/lidofinance/anchor-collateral-steth) on both [Terra](https://www.terra.money/) and Ethereum sides at the same addresses. bETH is a derivative token which make possible to add stETH as a collateral into the [Anchor protocol](https://anchorprotocol.com/).
The native side of bETH is Ethereum, which means, when someone wants to send some bETH tokens from Ethereum to Terra, the tokens are locked in a contract on the Ethereum side (the contract is called ShuttleVault).
Then, the bridge passes the message "mint N bETH tokens on the Terra side to address A"
When user wants to pass their tokens back to Ethereum, they burn this amount of Terra-side bETH, and the bridge passes the message "unlock the given amount of bETH tokens on the Etereum side and send them to address B"
To upgrade the message forwarding entity (bridge) from Shuttle to Wormhole:
1. on the Terra side, deploy a new adapter contract supporting the new message forwarder interface and make it the minter/burner of the bETH wrapper token;
2. on the Ethereum side, deploy a new adapter contract supporting the new message forwarder interface and make it the owner of the ShuttleVault contract (owner can lock and unlock bETH);
3. offchain: switch to a new message forwarder.
## Links
Post about Anchor + Lido integration: https://medium.com/anchor-protocol/anchor-protocol-lido-partner-to-launch-beth-704c1d96cd60
Deployed contract Ethereum part: https://docs.lido.fi/deployed-contracts#anchor-integration-steth-as-a-collateral-on-anchor-protocol
How on-chain Bridges works: https://blog.makerdao.com/what-are-blockchain-bridges-and-why-are-they-important-for-defi/
Wormehole repo:
https://github.com/certusone/wormhole/
Bridge Connector:
https://github.com/lidofinance/anchor-collateral-steth/blob/main/contracts/BridgeConnectorShuttle.vy
Shuttle Vault:
https://github.com/terra-money/shuttle/blob/main/contracts/contracts/ShuttleVault.sol