1. Goal

The goal of this proposal is to enable efficient cross-chain thUSD fungibility and liquidity.

That means bringing thUSD from L1 to L2, accounting for the possibility of minting and redeeming thUSD on this very L2.

The thUSD protocol was deployed to the BOB Network, it means I can bridge collateral assets to BOB and mint/redeem thUSD on BOB.

Liquidity efficiency requires minimizing fragmentation by avoiding the need for thUSD wrapper tokens by each chain and bridge. This situation quickly leads to an n*m problem, where liquidity on n chains is divided between m bridges. Each of these token variants soaks up valuable liquidity that could be better utilized elsewhere.

Since the collateral and debt are localized on each chain and each collateral pool to determine the Collateral Ratio, thus localizing thUSD Recovery Mode. We have to figure a way to limit the amount of thUSD that can be bridge between chains.

A major risk is if someone mints a large amount of thUSD, transfers it to a new chain that's still being set up, and then crashes the system by withdrawing all the available collateral there.

2. Overview

To achieve this goal, I propose we deploy a Gateway Contract on each chain we support. This contract should be flexible enough to:

Gateway Contract: on each chain is a smart contract wrapping and unwrapping Bridge-specific thUSD representation into the canonical thUSD token on the given chain. This contract needs to be implemented and deployed behind an upgradeable proxy.

3. BOB Network Native Bridge

The BOB bridge is a fork from Optimism Standard Bridge.

It creates L2 token with a call to OptimismMintableERC20Factory. The created token does not have the capabilities we expect from thUSD canonical tokens on L2. For this reason, using the Optimism Standard Bridge is not an option and we must implement our own L2 Gateway Contract with an authority to mint L2 canonical thUSD.

Note that going back from L2 to L1 will take at least one week given the one-week Optimism challenge period. See Optimism guide for the standard bridge and Optimism documentation on sending data between L1 and L2 for more details.

4. Implementation Diagram