Unified privacy tokens - New UI/UX Design

Hello Incognito users :raised_hand_with_fingers_splayed:

Here are some new updates on the progress of Incognito’s interoperability with unified privacy tokens.

In the previous post, we shared the main idea of Unified pTokens feature, as well as the benefits that it brings to the community.

Now, let’s go through the new UI/UX design for the initiative.

First, converting privacy tokens to unified pTokens.

After the feature is released, users can convert their existing privacy tokens to unified privacy tokens, then takes action on them more conveniently and with more benefits.

To convert tokens in the app, select Settings in More tab, and then tap Convert.

  • The app will check balances and group existing tokens by currency. Users can choose one or multiple coins to convert.

  • The conversion process will be shown on app screen, and it may take a few minutes to complete, so please don’t navigate away until the process finishes.

  • Users can press the Go back to wallet button to check balances when the process completes.

When the conversion finishes, users will receive back unified ptoken with a new balance equals to the sum of the grouped privacy tokens’ balances. Users can both transfer privately and swap anonymously with the unified pToken (of course with all balances).

:point_right: Example:
The account has 5 pETH (Ethereum), 3 pETH (BSC), 2 pETH (Polygon).
After converting, the account now has 5 + 3 + 2 = 10 pETH (unified pToken).

:point_right: Note:
In the first release, the protocol will only support unifying popular tokens (e.g ETH, DAI, USDT, USDC, MATIC, …). The list of supported tokens will be published when the feature is officialy launched and updated usually in the future.

Second, shielding with unified pTokens.

One of the biggest advantages that users can benefit from this new feature is that it enables users to shield unified pTokens to Incognito from any networks that the protocol supports.

Let’s make a quick comparison:

  • Current approach: if users shield the same currency from different networks, they will receive different privacy tokens correspondingly in their wallet.

  • New approach: if users shield the same currency from different networks, they will receive the same unified pToken in their wallet.

Basically, the UI/UX for unified pTokens shielding flow is quite similar to the current one and adds in some updates to make it clearer and better in terms of users’ experience. The new UI will be generally applied to all tokens (including not unified pTokens).

  • Select a coin to shield.

  • The app will show a list of networks that support the selected coin. Users can pick one as expected and send funds from the picked network to Incognito.

  • There are two ways for sending funds to Incognito: generating shielding address or connecting to users’ Ethereum wallet. If users choose Generate a shielding address, all needed information like the shielding address, minimum shielding amount, and estimated shielding fee will be shown on the screen (refer to the screenshots above).

  • Also on this screen, users can switch to other networks by tapping on the icon in the Network type field and choose another one.

:point_right: Example:

  • If user shields 1 ETH on Ethereum, he receives 1 pETH (unified pToken) on Incognito.

  • If user shields 1 ETH on Polygon, he also receives 1 pETH (unified pToken) on Incognito.

As a result, now that he has 2 pETH (unified pToken) in his wallet and can send, receive, trade, provide, etc. privately in Incognito network.

Third, unshielding with unified pTokens.

Conversely, users can unshield unified pTokens to get their public tokens back. Different from the current approach, thanks to the unified pTokens feature, users now can choose any networks (which are supported by the protocol) to receive tokens withdrawn from Incognito.

  • Select a coin to unshield.

  • Press Send button.

  • Enter the amount, the external address (aka receiving address), and the network that users want to receive their assets back.

  • The app will estimate the unshielding fees in unified pToken. If the actually charged fee is less than the estimated fee, the redundant fee will be summed up to the receiving amount. Therefore, the receiving amount may be a little more than the unshielding amount.

That’s all about UI-UX for unified pTokens! :raised_hands:

We are looking forward to having your instructive thoughts and feedback. Let’s share with us via comment below. Thank you. :heart:


Thanks again for this awesome feature. Now, questions :slight_smile:

1- How have you solved this problem?

2- Will you re-organize pDEX pairs to use the new unified tokens? Or will the whole process be managed by pDEX module?

3- What will the old un-unified tokens be? Their association with the real assets will be broken later. I think shielding to those tokens should be disabled to prevent confusion. Right?


Not directly related to this awesome feature and I know you want to keep “Shield” word. However, like “Send” interface, how about merging “Receive” (Incognito, Ethereum, Polygon …) interface instead of another screen just for Shielding? So just Send and Receive buttons will exist.

1 Like

Hi @abduraman, thanks for your great questions!

1. Unshielding but vaults are not enough?
We have built the re-balancing vault mechanism. The main idea for the mechanism is derived from the AMM protocol (but not for trading). The mechanism’s technical details will be updated in the other post.

It makes an incentive for anyone to rebalance vaults. Rewards for shielding and fees for unshielding. The higher the vault demand is, the higher the shielding reward or unshielding fee will be earned or paid. In other words, users can shield to a “high demand” vault with a high reward or unshield from a “low demand” vault with a low fee.

But it doesn’t actually resolve your case. In this case, you can’t unshield 15 ETH once time with the current vaults: 10 ETH (native) and 10 ETH (BSC). You should unshield 2 times. First, unshield 10 ETH to BSC. Then, the ETH vault on BSC has high demand, so the great rewards will be paid for anyone shielding to this vault. You can wait until the vault is grow up and unshield 5 ETH left to BSC. If you don’t want to wait, you can unshield the remaining to the Ethereum network.

2. Unified pTokens and pDEX?
First, the unified pTokens feature is independent of the pDEX. It means that after releasing this feature, the pDEX’s pairs with un-unified pTokens (old pTokens) won’t be affected.

Second, any liquidity provider can withdraw liquidity from pairs with old pTokens, then convert to unified pTokens and re-add to the liquidity pool with new pTokens. That means liquidity providers can group these pools have the same currency to increase liquidity pool size and reduce swap slippage on pDEX.

3. The old un-unified tokens?
No problem with the old un-unified tokens. Users still can take actions with the old pTokens as before such as transferring, unshielding, swapping with pDEX (on the old pairs) or pApps, except shielding. As you said, shielding with the old pTokens will be disabled to prevent confusion.

4. Merging “Receive” and “Shield”?

There is a little different UX between “Receive” and “Shield”:

  • “Receive”: get the incognito address to receive PRV or pTokens from others.
  • “Shield”: get the external address (shielding address) and have to send funds to this external address to receive pTokens back.

So I’m not sure merging “Receive” and “Shield” will be better. But anyway, thanks for your idea. The team will consider this for the next update.

If there is any feedback, feel free to share with us. Thank you.


Just trying out this feature for the first time. This is a really awesome feature! Hoping to learn more about it as time goes on, well done guys!