Conceal Wiki

Trace: wallets

Wallets

An important thing to understand is that wallets are simply a secure way to look at the block-chain that belongs to you so you can view your records and transactions. Think of it like Gmail, where your wallet is your Gmail login and password, but you’re not actually storing the emails yourself, you’re simply accessing it. Your tokens and transactions are saved on a block-chain, which is distributed across a vast network. So it’s always there, no matter if you lose your wallet. You just won’t be able to access or do anything with the tokens without your wallet.

Every Wallet has its own unique address and each wallet you create will give you an address.

There are several ways to get started with Conceal. However, all of them require the creation of a wallet. The Conceal Wallet is like a bank account to store your coins. This Guide will go through the three major wallets and how to set them up and use them.

Releases

CLI wallet

The command line wallet is a wallet that requires you to enter commands for it to work. The CLI wallet, as the command line wallet is known, is the most stable of all the wallets, and is available for most major platforms. The only limitation is that deposits and investments are only supported on the GUI wallet.

Current Version: 5.3.5

Downloads
MacOS | Ubuntu 16.04 | Ubuntu 18.04 | Windows 64

Source Code
ZIP | TAR.GZ

GUI wallet

Most users prefer to use a wallet with a graphical user interface (GUI). The Desktop Wallet is available for Windows, Ubuntu, and macOS. With the Desktop wallet, you can use every feature of the Conceal Cryptocurrency, including Deposits and Investments.

Current Version: 5.3.5

Downloads
MacOS | Ubuntu 16.04 | Windows 64

Source Code
ZIP | TAR.GZ

Wallet Installation

Navigate to your download folder and extract the ZIP file.

Run ccx-setup.exe and click Next in the Welcome window.

Choose Install location and click Next.

Choose Start Menu Folder and click Next.

Click Finish to complete Conceal Wallet setup.

Keep in mind! If you're using Avast Antivirus (or any other antivirus software) ccx-setup.exe file could be recognized as potentially harmful.

Although it is a false positive, your antivirus software can move the file to quarantine and/or send it for examination. If this happens, just follow your antivirus software's instructions and wait until you receive an email/notification that everything is okay.

Creating a new Wallet

Run Conceal Wallet by double clicking the Conceal Wallet icon on your desktop.

Click CREATE NEW WALLET.

Choose location for your wallet file and set the wallet name. Click Save.

Congratulations, your first Conceal wallet is almost ready! Just leave it running until it syncs with the block-chain.

Note: If the syncing doesn't start, close the wallet and reopen it. A popup will appear asking you to add exception to your firewall. After you confirm the exception, wallet will load and syncing will start.

When you synchronize the wallet with the block-chain, you store the block-chain locally and thus support the network. If you don't want to download the entire block-chain, you can also connect to a remote node. Note that when you connect to a remote node, additional transaction fees may apply.

To connect to remote node, click Settings and select Connection Settings. Select Automatic Remote Node, click SAVE and close the window.

You're all set now. The wallet should sync and be ready to use in a couple of minutes.

Wallet Backup

Backing up your CCX wallet is of extreme importance! If your hardware fails or you lose access to your computer, restoring wallet from a backup is the only way to regain access to your funds.

Click Wallet and select Backup Wallet

Click SHOW SEED and copy and/or write down your 25 word mnemonic seed.

Keep your mnemonic seed safe! If you lose it, your wallet cannot be restored and your funds are permanently lost!

Additionally, you can also export your private keys and GUI key to restore your wallet from.

Wallet Encryption

Wallet encryption is an additional layer of security for your funds. If you encrypt your wallet, you need a password to gain access to it and to make transactions.

Click Wallet and select Encrypt Wallet.

Enter a password and click SAVE.

Click here to learn more about wallet security.

Web wallet

Conceal.Cloud is a privacy-protected online interface that allows users to access conceal's decentralized banking blockchain through any platform in a simple manner (it only requires a basic browser). At the moment we have the basic wallet features working and we are setting up the privacy protected time-locked smart contracts handler that will allow full access to the banking features available (deposits & investments). We will keep adding features in the future. Stay tuned.

Creating a Web wallet

Visit https://conceal.cloud/signup to sign up. Enter a user name, email and choose password then click SIGN UP.

You will receive a confirmation email to activate your Conceal Cloud Account. Click the link in the email and you're all set to go.

Log in at https://conceal.cloud/login

Click CREATE NEW WALLET

Confirm popup. Congratulations! You have successfully created your first CCX wallet!

Now let's take care of some additional security. Click SETTINGS and enable 2FA to secure your account.

Scan QR code with your phone app.

Enter 2FA key the app generated and click ENABLE.

Now that your Conceal Cloud account is secured, return to Dashboard and export your wallet's private keys.

Enter 2FA from your phone app and click GET WALLET KEYS.

Write down your keys and keep them in a safe place! If you lose them your CCX can not be recovered!

Paper wallet

If you only want to receive funds, then all you need is a paper wallet. You will not be able to send or spend funds until you use one of the three wallets above. You can create a paper wallet here. The Paper wallet will give you a wallet address and your private keys. Always take whatever steps you can to keep your keys and funds safe and secure!

Wallet FAQ

How to fix “MSVCP140.dll is missing” system error

If your CCX wallet doesn't start, you're probably seeing a “MSVCP140.dll is missing” system message.

To solve the issue, you need to install Visual C++ Redistributable package for Visual Studio 2015.

  1. Click Download and select the package for your OS.
  2. Install the file.
  3. Run CCX wallet again.

How to create and backup a CLI Wallet?

  1. Download CLI Daemon & Wallet for your OS (or build the source code).
  2. Run concealxwallet on a terminal and generate a new address (use a strong password).
  3. Choose a name for your wallet.
  4. Close the wallet (Write “exit” + Enter).
  5. Run concealxwallet again, open the wallet file you have generated before.
  6. Check if the password works.
  7. Write “save” and hit Enter.
  8. Write “exit”.
  9. Copy/backup the wallet files (“your_wallet.addres” & “your_wallet.dat”) to a safe place.
  10. Don't forget your password as well (without the files + password you can't access your wallet).

How to mine?

  1. Run concealxd (Daemon) on a terminal.
  2. Wait the daemon to fully synchronize with the network.
  3. Run concealxwallet & open your wallet.
  4. Type “start_mining”.

NR - Both need to be working at the same time. (Otherwise you need to use “miner”.)

That's it. Good Luck!

Outputs / How to optimize your Wallet?

Your balance is made up of outputs of various amounts which you've received in the past. Every time you send, some of those get combined together until you reach some amount, which is then sent to the destination, and some change returned to your wallet.

Think of outputs as bills: you received a bill of 40 and 100 in the past, and now you want to pay something worth 120. Your wallet “burns” the 100+40 bills, create new bills of 120 and 20, sends the 120 to your recipient and returns the 20 to yourself and you're left with the bill of 20, plus whatever else you already had in the wallet. Cryptonote protocol then combines multiple outputs in a ring-signature, effectively hiding the one actually getting spent among other outputs found in the ring signature and needs to choose other outputs of the exact same value. This required splitting any amount into multiple outputs with common denominations, but there were always some of them which were unique, like 0.000006839355. There's simply no other like it, so there are no other outputs among which it could hide, and it would have to get spent alone. It's a special case which doesn't benefit from applying ring signatures and thus the special treatment. Because of this, you'd only want to use it once to join it with other outputs. The “optimize” command is there to get rid of those special outputs once and for all (if you actually have them in your wallet, that is).

Depending on how much CCX you want to transfer, you might run into the error “Transaction size is too big, please optimize your wallet” or “Transaction is too big”. Often, this is because of a lot of small incoming transactions.

With the CLI wallet or the GUI wallet, you can optimize your wallet to send larger transactions or a single big transaction. Like any other transaction on the network, you will need to wait for confirmation of the optimization transactions to spend those funds.

The process of optimizing your wallet takes all your small incoming transactions and combines them into bigger ones by sending them to yourself. It is akin to replacing a handful of small currency bills with a single larger one. Once the process is complete you will be able to send larger transactions. You need to wait for a period of 11 blocks which amounts to 11 * 2 = 22 minutes more or less. Your funds will be locked during this time.

Important: Wallets used by service providers like Exchanges should schedule regular optimizations and run optimizations consecutively until outputs are less than 100.

CLI optimization

In the CLI wallet there are three commands that help you optimize your wallet:

outputs

This command shows you the total number of outputs in your wallet. The more outputs in your wallet, the more optimization your wallet will need to send large transactions. If you have less than 100 outputs, then you do not need to optimize your wallet.

[wallet ccx7Pz]: outputs
233

optimize

When you run this command, it runs a single optimization round, usually reducing the number of outputs by a 100. You can do this over and over again until you can the desired amount.

[wallet ccx7Pz]: optimize
Money successfully sent, transaction
c273bb88f7957c3bc25f79ff2494a30ffa226d3a06c95f3ba49eb4b6dc334e97
Transaction secret key
02464c66f23f077e9bd859e5aec87d2b8802f4f6871e860ee212398e8782cf0d

Then you will see that the number of outputs has reduced:

[wallet ccx7Pz]: outputs
136

optimize_all

When you have thousands of outputs or want to send one large transaction, that involves all or almost all of the funds in your wallet, then you can run this command. The command runs several optimization rounds at once. You will see the number of outputs and the number of optimization rounds that the process will run. Some wallets, with several thousand outputs, will need several rounds of optimize_all. It depends on how much you want to send and how many outputs you have.

[wallet ccx7Pz]: optimize_all
Total outputs: 396
Total optimization rounds: 3

Important: Always use the latest version of concealwallet

GUI optimization

In the GUI wallet, the command to optimize the wallet is found under SettingsOptimize Wallet

The value you see in the window is the total number of outputs in your wallet. The more outputs in your wallet, the more optimization your wallet will need to send large transactions. If you have less than 100 outputs, then you do not need to optimize your wallet.

When you run this command, it runs several optimization rounds for your entire wallet. You can do this over and over again when you have thousands of outputs or want to send one large transaction, that involves all or almost all of the funds in your wallet.

Important: The optimization transactions require confirmation like normal transactions, and as such, the funds will not be available until after the confirmation period.

Fusion Transactions

A common issue for any service provider is the “Transaction is too big” error when trying to execute a transaction. The Cryptonote protocol uses denominations when sending funds and as a result after a lot of incoming transactions, that wallet address can up with hundreds, or even thousands of small outputs.

The solution, for anyone that uses our RPC Wallet is to use fusion transactions to consolidate all the smallest outputs, so that users can send larger amounts. The more outputs you have, the more fusion transactions you will need to do. Fusion transactions use a threshold value to determine how many outputs to fuse. Always use atomic units for the threshold value. For example, if you want to fuse all inputs smaller than 1 CCX, then the threshold will need to be 1000000.

Fusion transaction follows a two-part process:

  1. First use the estimateFusion RPC call to determine the best threshold to optimize.
  2. Then use sendFusionTransaction to fuse those outputs.

Step 1 - estimateFusion

In the examples below, we will look at using estimateFusion to see how many inputs we can fuse for a specific address in the wallet. If the wallet contains only one address, you can omit this parameter.

Example 1: with a single Wallet address:

{
   "params":{
      "addresses":[
         "ccx7FWKwU67Juvyw5JNmyCEWnEQLCJs196hpHYCbSCWGGykBFZnUnhfLhJUWwU1ixvVTadF5pdGteTMpZyKs5A1D1Lrv8ttyY3"
      ],
      "threshold":1000000
   },
   "jsonrpc":"2.0",
   "id":"test",
   "method":"estimateFusion"
}

The output:

{
   "id":"test",
   "jsonrpc":"2.0",
   "result":{
      "fusionReadyCount":298,
      "totalOutputCount":301
   }
}

Example 2: with another wallet address from the same container:

{
   "params":{
      "addresses":[
         "ccx7MxD8iGAgbvsQojKgZWCz1hzhAZ6RWcjoKgF3Cc9zCzG7xmP1fvRLhJUWwU1ixvVTadF5pdGteTMpZyKs5A1D1Lrv8afeB3"
      ],
      "threshold":1000000
   },
   "jsonrpc":"2.0",
   "id":"test",
   "method":"estimateFusion"
}

The output:

{
   "id":"test",
   "jsonrpc":"2.0",
   "result":{
      "fusionReadyCount":0,
      "totalOutputCount":63
   }
}

Example 3: without specifying the address (this will show the total outputs for all wallets in the container:

{
   "params":{
      "threshold":1000000
   },
   "jsonrpc":"2.0",
   "id":"test",
   "method":"estimateFusion"
}

The output:

{
   "id":"test",
   "jsonrpc":"2.0",
   "result":{
      "fusionReadyCount":343,
      "totalOutputCount":364
   }
}

Note: Please remember that you need to specify the addresses param as an array of strings or you will get the outputs for all the addresses in your container.

Step 2 - sendFusionTransaction

Now that we have determined that we can use fusion transactions to optimize the wallet, we can go ahead and use sendFusionTransaction with the same above threshold. Once again, if the wallet only contains one address, you can omit the use of the address in the parameters.

Example: with Wallet address:

{
   "params":{
      "addresses":[
         "ccx7FWKwU67Juvyw5JNmyCEWnEQLCJs196hpHYCbSCWGGykBFZnUnhfLhJUWwU1ixvVTadF5pdGteTMpZyKs5A1D1Lrv8ttyY3"
      ],
      "threshold":1000000,
      "anonymity":0
   },
   "jsonrpc":"2.0",
   "id":"test",
   "method":"sendFusionTransaction"
}

The output:

{
   "id":"test",
   "jsonrpc":"2.0",
   "result":{
      "transactionHash":"ea749cd4cf407f5082ec2a20dc71692b470ad2fdf706aaa851ed3926d890c579"
   }
}

Note: If you use sendFusionTransaction on an address that does not have sufficient fuseable inputs, you will get an “index out of range” error.

What happens we have thousands of outputs?

When dealing with a wallet where the number of smaller outputs have built up over time, then you will need to use smaller and smaller values for the threshold. In some cases, use a threshold of 10 or lower to fuse the smallest values. In the rare scenario where there are too many small outputs even at the lowest threshold, you will need to export the keys for that wallet and use the CLI or GUI wallets to run multiple optimization rounds.

How to compile a wallet on *nix?

concealxwallet commands

concealxwallet

Commands:

address              Show current wallet public address
balance              Show current wallet balance
bc_height            Show blockchain height
exit                 Close wallet
help                 Show this help
incoming_transfers   Show incoming transfers
list_transfers       Show all known transfers
payments             payments <payment_id_1> [<payment_id_2> ... <payment_id_N>] - Show payments <payment_id_1>, ... <payment_id_N>
reset                Discard cache data and start synchronizing from the start
save                 Save wallet synchronized data
set_log              set_log <level> - Change current log level, <level> is a number 0-4
start_mining         start_mining [<number_of_threads>] - Start mining in daemon
stop_mining          Stop mining in daemon
transfer             transfer <mixin_count> <addr_1> <amount_1> [<addr_2> <amount_2> ... <addr_N> <amount_N>] [-p payment_id] [-f fee] - 
Transfer <amount_1>,... <amount_N> to <address_1>,... <address_N>, respectively. <mixin_count> is the number of transactions yours is 
indistinguishable from (from 0 to maximum available)

concealxd (daemon) commands

Commands:

exit            Shutdown the daemon
help            Show this help
hide_hr         Stop showing hash rate
print_bc        Print blockchain info in a given blocks range, print_bc <begin_height> [<end_height>]
print_block     Print block, print_block <block_hash> | <block_height>
print_cn        Print connections
print_pl        Print peer list
print_pool      Print transaction pool (long format)
print_pool_sh   Print transaction pool (short format)
print_stat      Print statistics, print_stat <nothing=last> | <block_hash> | <block_height>
print_tx        Print transaction, print_tx <transaction_hash>
set_log         set_log <level> - Change current log level, <level> is a number 0-4
show_hr         Start showing hash rate
start_mining    Start mining for specified address, start_mining <addr> [threads=1]
stop_mining     Stop mining

Conceal Cold Staking vs. Masternodes

Conceal Cold staking

  • Not necessary to run a node to engage in cold staking;
  • No minimum staking amount;
  • No hardware investment;
  • No electrical bills;
  • No need for advanced technical skills;
  • Extended security because wallet stays offline and encrypted;
  • Stake and reward never leave your wallet;
  • Shorter staking periods;
  • Governed by simple smart contracts;
  • More inclusive;
  • Seamless.

Masternodes

  • High minimum deposit amount;
  • Additional hardware investment requires a dedicated IP address;
  • Staker must configure and run a node;
  • High risk of suffering an attack because wallets are left online and unencrypted;
  • Hosting or electrical bills to run a server/node;
  • Typically longer staking periods;
  • Rewards distributed to node wallet automatically;
  • Serve as a utility to the network that most users don’t understand;
  • More exclusive.

Conclusion

It should be fairly evident that cold staking is cheaper, offers more flexibility and lower risk than running a masternode. Additionally, it engages all users of the crypto community willing to participate and doesn’t exclude anyone based on their ability to run specific hardware or stake higher amounts. Conceal Cold Staking is a game changer in crypto and provides an appealing incentive to hold your coins and eliminates the barriers to entry that are inherent in masternodes.

Conceal team nailed it again!