UTU Trust Guardians,
When trying to port $UTU on BSC -> Ethereum, we unfortunately discovered an issue with our $UTU on BSC token contract.
The good news is we devised a solution to the problem, and you don’t have to do anything!
The TL;DR is that:
- We’ll be using a proxy contract as the minter/burner.
- Your funds are safe and you don’t have to do anything.
- The BSC -> Ethereum direction of the bridge will be live soon.
In the spirit of transparency and trust, we did want to let you know where the issues stemmed from and how we’re fixing the problem.
Here’s everything that’s going on.
Background on how the bridge smart contracts work and the problem we found
As mentioned before, we are using Meter’s bridge contract to allow porting of $UTU on Ethereum -> BSC, and vice versa.
When you port $UTU on Ethereum -> BSC, you send your $UTU on Ethereum to the Meter Passport bridge. The $UTU on Ethereum is locked in the bridge contract, and our BSC token contract, which currently holds the minter/burner role, then mints an equivalent amount of $UTU on BSC.
When you port $UTU on BSC -> Ethereum, what is supposed to happen is that your $UTU on BSC should get burned by our BSC token contract, and an equivalent amount of $UTU on Ethereum will be released from the bridge contract.
The issue that we found is that the burn mechanism wasn’t set up properly in our BSC token contract, and thus the BSC -> Ethereum direction of the bridge isn’t currently working.
The solution – a proxy contract
To solve this problem, we have created a proxy contract on BSC that will sit in between the original BSC token contract and Meter’s bridge contract. This proxy contract will take over responsibility for minting and burning $UTU on BSC from our original BSC token contract.
Now when you port your $UTU on BSC -> Ethereum, instead of approving Meter’s bridge contract to call our original BSC token contract directly to burn your tokens, you will approve our proxy contract instead. The bridge contract will then call the proxy contract to burn the tokens, and the proxy will in turn burn them on the original BSC token contract. Then just as before, the bridge contract will then release the equivalent amount of $UTU on Ethereum to your Ethereum wallet.
Current status of the contract and bridge
The proxy contract is now live on BSC mainnet.
We have added the proxy contract to the original BSC token contract as the minter/burner role, and there will then be a 48-hour timelock before anything can be done with the proxy contract.
After the timelock ends, the Meter team will update the configuration of the bridge and deploy an update to the Meter Passport application to accommodate the proxy contract.
Once all of those changes go live and you try to port your $UTU on BSC -> Ethereum, you’ll see that you’ll have to approve sending your $UTU on BSC to our proxy contract address, and not Meter’s bridge address. There will be no other changes compared to the experience you would have seen if our original BSC token contract was doing the burning.
We hope that clears up why the BSC -> Ethereum direction of the bridge hasn’t been functional yet.
We will let you know as soon as that direction of the bridge works, so watch this space.
Thanks for your support!