oPortal 2.0 Solution

Since the launch of our oPortal USDT bridge, the amount of USDT circulating through our bridge has exceeded two million US dollars. We currently support nine L1s and three L2s. Especially for the Boba network, a lot of Boba and OolongSwap users choose to bridge their assets through the oPortal. As a result, a lot of liquidity has been gathered on the Boba network.

Our mission is to provide the best cross-chain experience by utilizing the NEL technology developed by our BoringDAO team, hence we would like to introduce you to the oPortal 2.0.

oPortal 1.0 can be better

In our previous 1.0 design, NEL nodes serve as validators and have been deployed on 12 chains at the same time. It works well if there are only three to five chains, however, when more chains are connected, it becomes difficult to maintain the consistency of twelve chains in a timely manner. This is not an easy task even with a centralized solution.

For example, if you make a transfer from Polygon to BSC, even if you have confirmed that there is sufficient liquidity on BSC at that moment, no one can guarantee that the remaining liquidity on BSC won’t be taken away by others ahead of you within just a few minutes while waiting for your assets to be moved on Polygon. In this case your transaction will be stuck.

If ETH is involved, it would become even worse. If you make a payment and later receive a refund on Ethereum, you may have to pay more than $200 for these transactions, which makes transfer of a small amount of asset between blockchains rather unacceptable.

Moreover, removing liquidity could also be a hassle. In the current 1.0 version, you may have encountered the situation that your assets were withdrawn to several different chains instead of a certain desired one, which is definitely not a user-friendly experience for our LPs. The reason we do that is because we will search for the remaining liquidity on each chain one by one to ensure sufficient balance for your withdrawal. Otherwise, your transaction will get stuck, for example if you try to remove liquidity from one specific chain, but it just happens to be used up by someone else, because of the network consistency problem.

To sum up, as a beta version, it works just fine, but can be optimized.

So we came up with the 2.0 solution, still supported by BoringDAO’s NEL technology, which can be much more powerful and easier to use.

I don’t know if any of you have used some centralized exchanges. Their user experience is usually pretty good. For instance, you can deposit USDT in different address formats, and then withdraw to corresponding receiving addresses and networks.

Why can’t we make a decentralized version?

They are using the Amazon servers. Wouldn’t it be better for us to use some rather cheap blockchains as our server? Such as our partner Polygon.

Here we go. oPortal 2.0 solution is going to be launched soon. It will consist of the following two steps.

Step 1

A relay chain is chosen, and our current choice is Polygon.

We will build bridges from L1s and L2s to the relay chain first. Powered by the oPortal Native Bridge, you will be able to bridge any amount of USDT through the oPortal to the relay chain and receive an equivalent amount of oUSDT there. This process is similar to depositing your assets to centralized exchanges. However, since we use a relay chain (such as Polygon) as the server, our bridging process will be decentralized. Up until now, this is for free. You only have to cover some small amount of gas fee and network cost.

Step 2

It should be noted that oUSDT is a wrapped token. So we will have a second step: you will pick your destination chain on our Native Bridge and then transfer your oUSDT from the relay chain back to L1s or L2s in exchange for an actual USDT. Now you have successfully transferred a real USDT token across different blockchains. So far so good?

This is similar to the withdrawal process on a centralized exchange. Of course, our process is a decentralized one, because we use blockchain as the server. This step is the key to oPortal’s profitability. The cross-chain transfer fees will be set to a floating rate, according to the remaining liquidity of different chains.

In the meantime, we will combine the above two steps.

For users:

Although the underlying protocol has performed the above 2 steps, you don’t need to fully understand the principle behind it. You just need to pick the destination chain for your transfer, wait for a few minutes, and then you’ll get your USDT there. In most cases, you don’t even have to know the existence of the relay chain, and you don’t need to own any relay chain gas fees.

For LPs:

There is no LP Token, except for step 1. Once you obtain oUSDT through our cross-chain bridge, you become an LP to some extent. The cost for you is almost zero, just some gas and network fee. If we finally choose Polygon as our relay chain, and it’s your first time to use Matic, you will receive some $Matic for free to help you quickly get started. Then you can stake your oUSDT in our farming pool to farm $BORING.

Pricing Model and Treasury

Provide LP: free; only some gas and network fee.

Cross-chain/remove LP: floating rate

Depending on the liquidity after the cross-chain/withdrawal:

If the remaining liquidity on the destination chain is more than 500K USD, a 0.05% fee will be charged;

If the remaining liquidity on the destination chain is more than 100K USD, a 0.3% fee will be charged;

If the remaining liquidity on the destination chain is less than 100K USD, a 1% fee will be charged.

For example, if the remaining liquidity of the cross-chain bridge is 600K USD and you want to transfer 10K USD, you will have to pay a fee of 5 USD; if the remaining liquidity of the cross-chain bridge is 120K USD and you want to transfer 21K USD, your transfer fee will be 20K0.3%+1K1%=70 USD.

The above cross-chain bridge fees collected will go directly to the treasury, 50% of which will be used as rewards for the oUSDT pool, and the rest will be used to burn $BORING!

About the consistency of a distributed network

The biggest advantage of using a relay chain is that it is easier to maintain the consistency of a distributed network. With this 2.0 solution, the probability for transactions to be stuck will be reduced by 70%~90%. In the past, we had to rely on the status of several chains for data collecting. Now we only need to focus on the relay chain, and Polygon will be our first choice due to its good TPS, stability and low cost.


Soon after oPortal 2.0 goes live, we will begin to support more tokens such as USDC, DAI, and ETH, or even BNB, CRV, Sushi and other tokens. It is highly scalable.

Looking forward to the oPortal 2.0 era!

1 Like

pls leave your comments if you have any thoughts or improvement :)

I think this is a great improvement to BoringDAO - I don’t have a ton of ideas as it seems pretty well fleshedout - but i think this is the proper way to avoid a lack of liquidity as having so many routes with so many pools is difficult to expect enough liquidity to be provided. I am wondering if the current design included a gauge sort of proposal mechanism a lot like curve which would allow the community to ensure that the liquidity was drawn to the routes/chains that needed it the most. That would be been a great idea if you hadn’t simplified everything in 2.0.

The only other thing that i didn’t see here is if you plan to expand beyond Polygon - i read it a few days ago so maybe i’m forgetting that it was mentioned. I don’t think it would be a bad idea to expand to at least one additional relay chain just in case something happens with the polygon relay - maybe an emergency relay switch option that can be triggered if necessary.

If thats not the best idea - just another relay option that the users can choose to use for any particular reason was my original thought. Did you have any plans for this at all? I think at the very least a contingency relay would be a good idea to ensure the protocol doesn’t lock funds or cause user issues that will cause dissatisfaction with users when it could simply be an issue with Polygon.

Anyway - I love it and i cannot wait for the 2.0 era. It should be very exciting.

EDIT: one additional thought was that some competition would not be a bad thing either - for example, thinking to the future way down the road, i could absolutely see Polygon being so congested like Ethereum that the fees could skyrocket leaving BoringDAO holding the bag. Two relays (one developed well after Polygon relay is released) would help ensure competition amongst the relays to provide the lowest fee. I’m now super interested to see how this will work in terms of incentives too and the actual details. I’m sure there is much more to come.

I removed liquidity from oPortal and moved to other chains, paying exorbitantly high fees to retrieve assets, a problem I sincerely hope 2.0 fixes, but perhaps I won’t return either.

Very constructive advice, thanks;
Improving fault tolerance is very important. 2+ relay chains are definitely a good idea.
I think it could be added in later versions.

yep, have to admitted that the UX of 1.0 sucks.
In the 2.0 version, LPs can choose the chains he/she wants when removing.