How to Create and Maintain a Private Wallet (Tutorial)

Secret Network
11 min readOct 7, 2021

--

Learn how to set up a private wallet that can’t be linked to a public wallet, CEX, or doxxed address.

Secret Tokens and DeFi apps let you hold, transact, trade, borrow, and lend, without exposing your transaction details on a public ledger.

However, if you load your wallet with funds from a public blockchain, you leave a trail that can quickly reveal your identity. That’s why you need a private wallet to take complete advantage of Secret’s Web3 privacy features and ensure your online privacy remains intact.

In this guide, we’ll explain more about why you need a private wallet when using Secret Network and the steps to set up your own private wallet and minimize your chances of accidentally compromising your anonymity.

Here’s what we’ll cover in this tutorial:

Why you need a private wallet when using Secret Network

Secret provides semi-transactional privacy

When you send Secret Tokens to someone, they’ll need a viewing key to be able to view the Secret Tokens in their wallet. But with this viewing key, they’ll also be able to see your wallet address.

That’s why you’ll need to use a separate shell wallet to transact with — one that cannot be linked to your private wallet — for full transactional privacy.

Secret Apps don’t always encrypt all data

Yes, Secret Network’s private smart contracts encrypt user data by default. However, that does not mean all user data in every Secret dApp is kept private.

Developers decide what information to make private or public depending on their app’s needs. This is why using a shell wallet while using dApps is essential to keep your main wallet private and your identity secure.

What to know when creating and maintaining your private wallet

SCRT is a public coin and is used to pay for gas fees

Secret Tokens (sSCRT, sETH, sBNB, etc.) transactions are private, but any time you send or receive SCRT, your transaction details are public. This simplifies implementing IBC integrations, but it means you can’t use SCRT to fund and maintain your private wallet. You need to use sSCRT or another Secret Token instead.

Your Secret Token transaction details are private, but every interaction costs gas and has to be paid for using the public coin SCRT — and will shows up on a block explorer.

That’s why you have to be careful when performing transactions with SCRT and Secret Tokens around the same time, even if you don’t transfer SCRT to your private wallet directly. Transaction timing and other metadata of your interactions can allow chain analysis tools to link your identity to your public wallet.

You can be more careful by “increasing your anonymity set.” By leaving enough time between “public” transactions (with a public token like SCRT) and transactions with your private wallet, others perform similar transactions, and it becomes harder to figure out which transactions belong to you.

Bridges like Secret Tunnel and IBC Secret Bridges are public

Secret Bridges — despite their name — aren’t private. Data like your wallet address, token balance, and transaction time are all publicly visible.

When you bridge assets to or from a public blockchain like Ethereum, BSC, Cosmos, Juno, etc. your transactions can be analyzed, and your wallet address on a different chain can be linked to your Secret Network address. This means any KYC exchange or wallet that has interacted with your public blockchain address is also now connected to your Secret wallet address.

So if you want to keep your private wallet private, make sure to not use it with a Secret Bridge, but use a shell wallet instead.

How to create a new private wallet

Now that we covered why you should create a private wallet, let’s dive into how to set one up.

Keep in mind that you need a wallet that contains SCRT—we'll call this your “public wallet”. If you don't have any SCRT, go to our Get SCRT page to find out what wallet to install and how to get SCRT.

Step 1: Create a new wallet

  • We recommend the Keplr wallet as it integrates seamlessly with all Secret apps and tools — watch this tutorial to set up your Keplr wallet
  • Take care to store your seed phrase safely. Losing it could mean losing your funds
  • Go to the Secret Network tab of your Keplr wallet and note your Secret wallet address
Keplr wallet extension — New wallet interface

💡 If you’d like to know more about how to protect your funds, read this article: How to Stay Safe in DeFi and Protect Your Crypto

Step 2: Privately fund your new wallet

The easiest method to fund your private wallet is by using the “Fee Grant” option available right in the Secret Dashboard. There are other applications as well as a few wallets that offer fee grant faucets as well, but we will use the dashboard in this example.

This method allows you to seed your new private wallet with SCRT so you can pay fees to send and receive tokens or interact with smart contracts. Remember that you do not want to transfer SCRT from a public wallet or CEX.

Using the Fee Grant Faucet

This method is the simplest one to implement. You’ll send sSCRT from your public to your new “private” Keplr wallet by using a standard transfer. Then you’ll unwrap it to SCRT.

To do so, follow these steps:

  • Make sure you have some sSCRT in your public wallet
  • Go to your private Keplr wallet and copy the wallet address
  • Switch to your public wallet which holds sSCRT
  • Select the sSCRT token
  • Enter your private wallet address and the amount of sSCRT you’d like to transfer — we recommend transferring enough for at least several transactions, like 1.1 sSCRT
  • Click on “Send” and approve the transaction

Now you should have sSCRT in your private wallet! Create a viewing key to view your sSCRT balance.

❗️Stop! (Hammer Time.) We recommend waiting for at least one to two days before taking the next step. By doing so, you make it much harder for observers and analysts to spot a pattern between actions with your public and private wallet, and link the two. We want several other sSCRT transactions to happen to obscure the pattern between the transfer you just made and the steps you’re going to take next.

After waiting for a while, you’re ready to unwrap the SCRT in your private wallet:

  • Go to the SCRT dashboard wrap page and connect your new private wallet
  • Click “Approve” in the confirmation pop-up window
  • On the top field select sSCRT, enter the amount of sSCRT you transferred to your private wallet
  • On the second field select SCRT
  • Click the button that says “Request Fee Grant”
  • On the bottom click “Unwrap”
  • Click “Approve” to confirm

Congratulations! You now have SCRT in your private wallet and can transfer crypto and use Secret dApps, all without revealing your identity!

Step 3: Always keep some SCRT in your private wallet

You can do so by sending sSCRT to your private wallet if you need more SCRT for gas, and unwrap it once you’ve received it. Use this service to do so. If you only send and transfer Secret Tokens (sATOM, sETH) to/with your secret wallet, no one will be able to link your private wallet to any other wallet (more on this below).

In need of a faucet?

This is an alternative method for seeding your private wallet without using the fee grant faucets.

Just keep in mind that these are community faucets and funded by donations and out of personal wallets, so be friendly, do not abuse them, and consider paying it forward by helping someone else in the 🚰faucet channel or donating a little SCRT to the cause!

How to keep your private wallet private

Now that you have a private wallet, you should follow a couple of general guidelines to keep it private:

Don’t transfer any public coins from your private to your public wallet directly

  • Don’t use your private wallet to transfer native SCRT or any other IBC assets to another wallet or CEX.
  • Always use Secret Tokens when cashing out, adding funds to/from your private wallet, or transferring from/to your private wallet.
  • Don’t connect your private wallet to dApps on the network that you haven’t verified to be private.

Keep your anonymity set in mind — take care not to link your public and private wallet with your actions

  • Limit how often you use your public and private wallet at the same time. If you continuously use these at the same time, outside observers could link them
  • If you use your public wallet to swap a Secret Token, don’t send that same token to your private wallet and start interacting with it right away. Keep in mind your anonymity set and wait for a few hours (or even days) between transferring and interacting.
  • If you’re swapping tokens in your public wallet and, right after, swap in your private wallet, make sure to randomize the amount. Swaps that are of equal amounts and directly follow each other are easily linked.
  • Using IBC or any type of bridge (except for the Monero bridge) to send funds to or from your private wallet could dox you if you’re using the same amounts and not spacing out your actions sufficiently. That’s why you do not want to send the exact same amounts when doing IBC or bridge transfers between public wallets and private wallets, and you want to leave enough time between these actions and any prior + following actions.

Be careful with non-fungible assets (NFTs)

  • Be careful when using your private wallet to hold or trade NFTs — especially if you’re holding high-value NFTs. NFTs are a quick way to dox yourself because they’re non-fungible. You’re especially vulnerable when sharing and trading profile pictures, which makes the buyer and seller addresses public.
  • Secret NFTs give you control of your NFT’s private metadata, but if you put one up for sale, you will publicly list your address. The best way to counter this is to create one private wallet to trade NFTs and another to hold your NFTs. Always keep your digital asset (e.g. Secret Tokens) portfolio separate from your NFT portfolio.
  • If you announce NFT listings on social media, this links your social media account to the wallet listing the NFT, so use anonymous social media accounts.

Don’t use your private wallet to interact with public Cosmos blockchains

  • If you send funds on another Cosmos ecosystem chain (e.g. the Cosmos hub, Juno, etc.) between your public and private Keplr wallet, then the addresses of all chains in that wallet are linked. Sending OSMO from your private wallet to your public wallet, rather than using sOSMO on Secret, will link your public and private Osmosis wallet addresses. These addresses can be used to generate your Secret, Cosmos, and other Cosmos ecosystem addresses associated with the same wallet, therefore linking the two wallets on all Cosmos chains. That’s why you should always use Secret Network and Secret Tokens as the bridge between your public and private wallet.
  • Concerning staking and delegating on other IBC chains: even public information like the holding of specific tokens, being in the same pool on two wallets, delegating to the same validators, etc., can link your public and private wallets on all Cosmos chains. So consider using only one private wallet to stake and hold all your tokens and your original public wallet to connect to CEX, giveaways, and so forth.

For more information on how to create a private wallet for the Cosmos / IBC ecosystem, check out this tutorial.

Example of how to use a private wallet

Alice wants to bridge 5 ETH to her private wallet. This is how she could go about it:

  • Alice bridges 5 ETH into 5 sETH in her public wallet using the Ethereum Bridge
  • Alice waits for an hour or two
  • She cuts up the 5 sETH in different (random) amounts, e.g. 1.23 sETH, 2.45 sETH, and 1.32 sETH, and starts sending these amounts to her private wallet. She makes sure to wait for an hour or two between each transaction
  • Alice does not create a viewing key for sETH immediately after sending sETH to her private wallet
  • Instead, she makes a few swaps and creates a few viewing keys for other assets in her private wallet to make the wallet blend in, and not have single transactions that point to being a private receiving wallet
  • After waiting for one day, Alice creates an sETH viewing key and starts using her received funds

It’s very unlikely that with chain analysis, Alice’s two wallets will ever be connected. However, by breaking up the transactions she makes chain analysis pretty much impossible.

Advanced ways to keep your private wallet private

You can consider using Monero (XMR) to fund a private wallet (after seeding with initial native SCRT for gas) by using the steps below. This minimizes the need to increase your anonymity set by waiting in between actions.

  • Seed your private Secret (Keplr or Citadel.One) wallet with SCRT (use the Monero Bridge Faucet method for the best results)
  • Seed your public Secret wallet with sXMR—you can use ButtonSwap for this
  • Use the Secret Bridge to bridge your sXMR to your Monero wallet—check this tutorial to find out how
  • Send XMR to a new Monero wallet—we recommend the Monero GUI, go here to install the extension
  • Bridge the XMR to your private Secret wallet by using the Secret Bridge again
  • Swap the sXMR in your private Secret wallet to the token of your choosing

You now have a funded wallet as private as the base layer Monero protocol and the permission/trust assumptions of the Secret Monero bridge!

--

--

Secret Network

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