Incognito's trustless bridge V3 with Ethereum bond contract

Objective: Deploy Incognito’s trustless bridge V3 and related parties on mainnet environments

Length: 3 months

Key results:

  • Have a trustless bridge protocol with Ethereum bond contract on mainnet by November 30



Shielding BTC and minting pBTC. Other public coins follow the same shielding process. Note that we simplify step 5 to make it simple for readers to follow the main logic: the proof of deposit is not generated by the custodian, but by the miners of underlying cryptonetwork.*


Unshielding pBTC and releasing BTC. Other public coins follow the same unshielding process*


COOL! :+1:
Who are the custodian?


hey @Roman, custodian could be anyone who deposits collaterals to the bond contract. For more details, please take a look at Trustless Custodians: A Decentralized Approach to Cryptocurrency Custodianship. Thanks.


Thanks @duc :raised_hands:
Very cool! I have carefully studied all the information! But to my deep regret I did not find information on how to get a high name custodian :woozy_face:


Just wanted to update a bit for the proposal’s status. As you could know we postponed this one since July to work on something with higher priority (i mean cross pair trading feature for pdex, code review as well as writing more tests).
So the tentative start time of the proposal will be around 4th week of August. Thanks.


Hi everyone,

We came back to Trustless bridge v3 after finishing other features (pDEX cross-pair trading, review and write more unit tests). We just want to update some new things about the proposal’s status that we have implemented for 3 weeks.

What results?

  • Refactor code more abstract: As you know, currently bridge v3 only supports shielding/unshielding BTC and BNB. But we want to define the interface for PortalToken (privacy token is shielded from public token through Bridge v3) in order for us or other community developers to expand the Bridge with other public tokens easily and quickly by supplying the proof verification functions on those public chains.
  • Implement new feature: Custodian deposit collaterals with Ethereum’s smart contract bond. Not only PRV collateral, the custodians are able to supply portal collaterals by their ETH/ERC20.
  • Update shielding flow: Allow the users to create shielding public token requests that match to custodians who deposited their collaterals to smart contract’s bond.

What next?

  • We do integration tests on custodians deposit collateral to the smart contract’s bond.
  • Test full shielding flow.
  • Implement and test custodians withdraw free collateral from the smart contract’s bond.
  • Implement and test unshielding flow.

Thanks for your following!


Thanks for the update on this! So the custodian will interact with an ethereum smart contract? I had thought that the bonded custodian model doesn’t require ethereum?

is there a github link for bridge V3 eth contract? i want to take a look

Hi @rareglottis,
Thanks for your interest in our proposal. You can visit these following github links: (Incognito-chain) (Portal smart contract)
To view the code of Bridge v3. It will continue to be updated daily.


Hi everyone, some new updates about the proposal.

What results?

  • Implement and do integration tests on custodian withdraw free collaterals from the smart contract’s bond. Allow custodians to withdraw free collaterals (that weren’t locked by shielding requests) whenever they want.
  • Implement and test unshielding flow.
  • Update liquidation mechanism. There are 2 cases of liquidation on Bridge v3.
    • Case 1: The custodians don’t send back public tokens to users after timeout.
    • Case 2: The ratio between the public tokens’ value that the custodians are holding and the collaterals’ value are locked is dropped significantly below the specific minimum one.
      We finished implementing the first case. In this case, the users can get back the collaterals of the custodians from the smart contract’s bond instead of their own public tokens.

What nexts?

  • Implement the second case of liquidation.
  • Re-test all features on Bridge v3, make sure it’s ready for testing by QC team.

Let’s look forward to the launch date of Bridge v3! Thanks all.


Why is the custodians bond decreased when someone sends them more collateral? Maybe I’m misunderstanding but I would imagine that the trustless custodian could only be chosen if they have sufficiently staked and overcollateralized what they wish to custody. If being asked to custody more funds, the minimum requirement should INCREASE. (Maybe it’s a typo in the graphic.)

Hi @marko, thanks for your question.
The custodians who want to hold the cryptocurrencies on other cryptonetworks (public coins) have to deposit their collaterals with arbitrary amounts to the smart contract’s bond. After deposited, the custodian can receive public coins from shieldings with the limited amounts such that the ratio between the total collaterals provided and the total public coins’ holded is about 200%. After matching to the shielding, the limited amounts will be decreased. The custodians can deposit more collaterals to be able to receive more shieldings.


Hi everyone,
We have just completed the development phase of Bridge v3. We want to send you some notes about the proposal’s status.

What results?

  • Finish implementing and doing integration tests on auto-liquidation.
  • Re-test all features of Bridge v3 with Incognito vault (PRV collaterals) and Smart contract vault (ETH/ERC20 collaterals).

What next?

  • Write more unit tests and integration tests for Bridge v3.
  • Update exchange rate relayer better and more stable.

Let’s look forward to the launch date of Bridge v3! Thanks all.


Hi everyone,

Here are some main points about the development process of the trustless bridge v3 from Incognito’s team.

What results?

  • Write unit tests for Bridge v3 functions completely.
  • Update exchange rate relayer:
    • Get PRV price from three pool pairs on pDex instead of one pair.
    • Get the smallest BTC relaying header’s height from beacon nodes and full-nodes to make sure the relayer always feeds BTC headers fully.

What next?

  • Implement a new feature: When the total value of locked collaterals greater than 300% of the total value of holding public tokens, custodians are able to unlock their redundant collaterals such that the rest collaterals are at least equal to 200% of holding public tokens.
  • Refactor codes.

Thanks for your following! :hugs:


Thanks for the updates :slight_smile: