How to Create a Private IBC Wallet

Secret Network
Secret Network Ecosystem
10 min readMay 9, 2022

You’d be surprised how easy it is to link your crypto wallet address to your identity once you’ve had to KYC on a centralized exchange, or showed off your NFT on your Twitter account.

In this tutorial, we’ll show you how to create a private wallet for any chain within the Cosmos ecosystem that can’t be linked to your main wallet and identity using Secret Network’s privacy features. This protects your financial assets against scammers, hackers, and other nefarious actors as they won’t be able to deliberately target you via social media and other channels.

Note: We will refer you to a separate tutorial to set up your private wallet, this tutorial will then cover how you can send over your IBC / Cosmos assets while keeping it private.

What we’ll cover in this tutorial

Your most powerful tool to stay private on the blockchain

Before jumping into our tutorial, we need to explain an important concept: your anonymity set.

Many chain analysis companies out there analyze every action on the blockchain to detect patterns and can use even the faintest of traces to link wallets to identities.

The most powerful tool we have against this is to increase our anonymity set. If enough other actions occur at the same time that look like ours, we make sure we don’t transfer the exact same amounts, and leave time between our actions, it becomes increasingly harder to link our actions. We essentially “scramble” our trail.

Increasing our anonymity set is largely a waiting game, which is the reason the wait steps in this tutorial are crucial. Don’t skip these. The longer you can wait between important steps (like transferring funds from your public to your private wallet), the better!

First things first: Set up your wallets

Before jumping into the rest of the tutorial you need two wallets set up:

  • A “public” aka your main Keplr wallet — if you don’t have one yet, watch this tutorial
  • A “private” Keplr wallet 👉 this tutorial will take you through the entire process to set yours up! 👈

Once you’ve created your public and private wallet, we can start seeding it with any IBC / Cosmos assets you like and use it with your favorite IBC blockchains!

The two ways to seed your private wallet with IBC assets

Once you have your private wallet set up, the next step is to seed it with IBC assets so you can use it across the entire Cosmos ecosystem.

There are two ways to do this:

1. Use the Secret IBC Bridge

This is the easiest method as you only have to use one platform, but you’ll have to wait longer between actions to maintain anonymity, and you can only port over the IBC assets listed on the Secret IBC Bridge page.

👉 Go to this method

2. Send sSCRT to your private wallet and swap on Osmosis

This method is slightly more complicated as you’ll have to use another platform, but the upside is that you get access to all the IBC assets that are available on Osmosis — not just the IBC tokens you can bridge over with the Secret IBC Bridge. Also, you won’t have to wait as long between actions because of the greater liquidity of sSCRT compared to other Secret Tokens.

👉 Go to this method

Method #1: Using the Secret IBC Bridge

With this method, we’re going to use the Secret IBC Bridge to wrap your IBC assets and transform them into Secret Tokens with encrypted balances and receiving wallet addresses, so they can be safely sent to your private wallet without revealing the wallet address publicly on the blockchain.

Go here to learn more about Secret Tokens and how they work.

A heads up: this method will take a couple of days to complete, so we recommend bookmarking this page 😉

Step 1: Get your IBC assets ready

  • Make sure you have the amount of IBC tokens you want to port over to your private wallet — and preferably a little bit more — in your public wallet
  • You’ll also need some SCRT in your public wallet to use for gas fees. See here how you can get SCRT

Step 2: Deposit and wrap your IBC assets

  • Navigate to the Secret Dashboard IBC Bridge page and connect your public wallet
  • Deposit your IBC tokens by choosing the network you want to bridge from on the field left of the arrows and select Secret Network on the right side
  • On the bottom field, choose the asset you wish to bridge over, then enter the amount you wish to bridge
  • Click “Execute Transfer” and approve the transaction
  • After transferring go to the “Wrap” tab on the dashboard
  • Choose the asset deposited in the top field and it will select the private version of that token on the bottom field
  • Choose the amount you wish to wrap and select the “Wrap asset” button
  • Approve the transaction.
  • If you get stuck, check out this guide for detailed instructions on how to use the Secret IBC Bridge

Step 3: Wait!

Before we move on, remember our most powerful tool to gain privacy. As you just did a couple of transactions and are going to send funds to your private wallet, make sure to wait and take other actions to increase your anonymity set. Actions could include: swapping unrelated IBC assets or making other transactions.

This greatly reduces the likelihood of observers linking your public and private wallet due to timing/contract interaction similarities using chain analysis.

Step 4: Transfer your Secret IBC assets to your private wallet

Now that you’ve transformed your IBC assets into Secret Tokens and taken actions to increase your anonymity set, you can safely send over your IBC assets to your private wallet using the Keplr wallet extension.

Step 5: Wait again!

After transferring your assets to your private wallet, do not interact with your private wallet for a good chunk of time — we recommend 3 to 4 days. Don’t create a viewing key either.

The best is to get at least 20 other transactions on the blockchain before interacting with your private wallet. If you want to get an idea of how many transactions are being made with the Secret Token you just created, go to this page and click on the Secret Token you just made.

To further obfuscate your trail, take other actions with your public wallet, you can go to your public wallet and take one of the following actions:

  • Create a viewing key for a different asset
  • Do a wrap of SCRT — sSCRT
  • Make a swap

Anything to make it less obvious that your private wallet is being funded with the Secret IBC tokens you just interacted with on your public wallet — and potentially link the two.

Step 6: Unwrap and send over (some of) your IBC assets

  • After you’ve waited for a couple of days and made some interactions to obfuscate your trail, create a viewing key for the Secret Tokens you transferred to your private wallet so you can view them. Read this tutorial to find out how to create viewing keys
  • Unwrap some of your Secret IBC Tokens. If you unwrap the full amount — especially if you do it all at once — others could link this action to the action you just took on your public wallet, and potentially connect the two
  • Send the unwrapped tokens over IBC to their original chain (again: do not bridge everything at once — wait another day or two to deposit over the rest, preferably never up to the full 100%)

That’s it! You now have a private wallet on your favorite IBC chain(s) that can’t be linked to your public wallet and identity.

You can slowly start sending over funds from your public wallet if you’d like using this method, but always keep in mind your anonymity set and don’t rush the process. As once your wallets are linked they can’t be decoupled anymore.

Method #2: Using sSCRT and Osmosis

For this method, we’re going to use sSCRT — the Secret Token version of SCRT — which you can then swap on Osmosis for any IBC / Cosmos token you like. As sSCRT is the Secret Token with the highest usage, you also won’t have to wait as long to get a strong anonymity set.

Step 1: Seed your public wallet with SCRT

  • As you’re going to swap SCRT on Osmosis for your IBC assets of choice, make sure you have enough SCRT to do so. Check out the Osmosis app to get a sense of how much SCRT you need for your IBC assets of choice
  • You’ll also need some SCRT in your public wallet to use for gas fees. See here how you can get SCRT

Step 2: Deposit your SCRT and make it Secret

  • Navigate to the Secret Dashboard Wrap page and connect your public wallet
  • Select SCRT on the top field, and sSCRT on the bottom field
  • Choose the amount you wish to wrap in privacy and click on “wrap” to transform it into sSCRT
  • If you get stuck, check out this guide for detailed instructions on how to use the Secret IBC Bridge

Step 3: Wait!

Before we move on, remember our most powerful tool to gain privacy. As you just did a couple of transactions and are going to send funds to your private wallet, make sure to wait and take other actions to increase your anonymity set. Actions could include: swapping unrelated IBC assets or making other transactions.

This greatly reduces the likelihood of observers linking your public and private wallet due to timing/contract interaction similarities using chain analysis.

Step 4: Send your sSCRT from your public to your private wallet

Now that you’ve transformed your SCRT into sSCRT and took actions to increase your anonymity set, you can safely send over your sSCRT to your private wallet using the Keplr wallet extension.

Step 5: Wait again!

After transferring your assets to your private wallet, do not interact with your private wallet for a good chunk of time — we recommend about 24 hours. Don’t create a viewing key either.

The best is to get at least 20 other transactions on the blockchain before interacting with your private wallet. If you want to get an idea of how many transactions are being made with sSCRT, go to this page.

To further obfuscate your trail, take other actions with your public wallet, you can go to your public wallet and take one of the following actions:

  • Create a viewing key for a different asset
  • Wrap a few other tokens in your public wallet
  • Make a swap

Anything to make it less obvious that your private wallet is being funded with the sSCRT tokens you just interacted with on your public wallet — and potentially link the two.

Step 6: Unwrap your sSCRT so you can start swapping it on Osmosis

After you’ve waited for 24 hours or so and made some interactions to obfuscate your trail, create a viewing key for the Secret Tokens you transferred to your private wallet so you can view them. Read this tutorial to find out how to create viewing keys.

Step 7: Go to Osmosis and do the swap

From here you will use Osmosis to bridge funds to the IBC chain of choice.

  • In Osmosis go to the Assets tab and deposit your SCRT. You will notice that gas is paid in SCRT for the deposit transaction.
  • Swap a small amount of SCRT to seed the wallet with OSMO.

Since Osmosis Zone allows you to choose the gas token, you can use SCRT to pay this swap by clicking “advanced” on the transaction approval popup, click on “fee token” and select SCRT, then click approve.

Note: You may use this same feature to swap directly to the asset you wish in most cases, however having OSMO for gas makes future transactions much smoother.
  • Now you’ll swap the remainder of SCRT to the chosen IBC asset
  • After swapping to the IBC asset, go back to the Assets Tab and click “Withdraw” on your IBC asset

That’s it! You now have a private wallet on your favorite IBC chain(s) that can’t be linked to your public wallet and identity.

You can slowly start sending over funds from your public wallet if you’d like using this method, but always keep in mind your anonymity set and don’t rush the process. As once your wallets are linked they can’t be decoupled anymore.

How to keep your wallet secret

Creating a private wallet is only the start, as keeping it private is crucial. Because once your public and private wallets are linked, they can’t be unlinked anymore.

We’ve included a list of ways to keep your wallet private in this guide (at the end), which we highly recommend you read.

And always keep in mind:

  • When you use Osmosis to withdraw funds it uses IBC to deposit them in the right network, so remember that IBC transactions are public and can affect your anonymity set
  • Always remember that any interactions between two wallets on a public chain immediately link those wallets on all chains. So if you transfer assets from a private wallet to a public wallet on one chain, the private wallet is linked and known publicly on all chains thereafter
  • Listing NFTs can decrease your anonymity as well as NFT market listings are public. That’s why we recommend using a separate wallet just for NFT trading
  • Except for transactions done with Secret Tokens on Secret network, all transactions are done on publicly viewable blockchains. To keep your private wallet secret, always use Secret Tokens to move funds between your public and private wallet

That’s it folks, keep safe and keep secret!

Like this article? Visit our website to learn more about Secret Network, follow us on Twitter, or join our community!

--

--

Secret Network
Secret Network Ecosystem

The Data Privacy Platform For Web3 — build and use blockchain applications that are both permissionless and privacy-preserving.