Isyyyy - WIC - Desktop Wallet

Wow! Incognito from the terminal!? This is awesome, great work.

1 Like

Thanks, @inccry!
Incscan is our motivation :slight_smile:

4 Likes

Yes @J053 , we will try to bring all features from mobile app to desktop wallet :slight_smile:

Welcome to the builder club @Isyyyy :slight_smile:

Please keep all community updated on your progress regularly.

1 Like

Really great job, Well done :+1:
This is running on linux. Will this be the initial release?

Cheers

1 Like

Thanks, @Andogen
We plan to release a cross-platform CLI tool. We hope that the beta test will available early of next week :slight_smile:

2 Likes

Cool building! @Isyyyy
wic :brown_heart:

But you can tell in more detail about the commands for work

2 Likes

Thanks, @jame
The tutorial and detail will available when we release the beta test version next week.

2 Likes

Cheers! :+1:

Progress update:

Hi all, we are ready to release the first version this week with basic features:

  • Create and import wallet
  • Add and import account
  • Show balance and transaction history (send & receiver transactions)
  • Create and send PRV or pToken

Here is the guide to run IncWallet on your PC.
Step 1: Install docker
Step 2: Create file run.sh as follows:

#!/bin/sh bash

ps aux | grep '[r]un.sh' | awk '{ print $2}' | grep -v "^$$\$" | xargs kill -9
docker rm -f incwallet
docker network create --driver bridge incwallet_net || true
docker pull isyyyy/incwallet
docker run -ti --restart=always --net incwallet_net --name incwallet -d -p 9000:9000 isyyyy/incwallet
docker run --net incwallet_net --name mongo -d -p 27018:27017 mongo
shopt -s expand_aliases
alias wic='docker exec -it incwallet wic'

Step 3: Try with command wic in your terminal. If you cannot see the welcome message. Try with this command:
alias wic='docker exec -it incwallet wic'
Step 4: Welcome to WIC

If you have any bugs, feedbacks or suggestions, please reply in this thread.

Thank you so much! :slight_smile:

1 Like

WIC Tutorial

Start with wic you will see

    __      __       .__                                  __            __      __.__        
     /  \    /  \ ____ |  |   ____  ____   _____   ____   _/  |_  ____   /  \    /  \__| ____  
     \   \/\/   // __ \|  | _/ ___\/  _ \ /     \_/ __ \  \   __\/  _ \  \   \/\/   /  |/ ___\ 
      \        /\  ___/|  |_\  \__(  <_> )  Y Y  \  ___/   |  | (  <_> )  \        /|  \  \___ 
       \__/\  /  \___  >____/\___  >____/|__|_|  /\___  >  |__|  \____/    \__/\  / |__|\___  >
            \/       \/          \/            \/     \/                        \/          \/
     
     Usage:
       wic [command]
     
     Available Commands:
         account     account commands for add, import, switch, and ls
         balance     show current balance
         help        Help about any command
         tx          tx commands for history, send, and receive
         version     current version
         wallet      wallet commands for import and create

     
     Flags:
       -h, --help   help for wic
     
     Use "wic [command] --help" for more information about a command.

List of commands

wallet command

Usage:
     wic wallet [command]
   
   Available Commands:
     create      create a new wallet
     import      import wallet by seed phrase
   
   Flags:
     -h, --help   help for wallet
Example:

Create a new wallet: wic wallet create -s 256 -n mainnet

  • Create a new wallet with 256 bits security level (24 seed words) on mainnet. Note that you can create a wallet on testnet with -n testnet.
  • Remember to set up a password to protect your wallet in the system.

Import a wallet from seed words: wic import -n mainnet -m "24 seed words"

Note:

  • Remember to back up your seed words and password to recover the wallet in case you delete or remove wic
  • Multiple wallets is not supported in this version. That means you only can create a mainnet or testnet wallet.

account command

After create or import a wallet. You can add or import accounts into the wallet.

Usage:
  wic account [command]

Available Commands:
  add         add new account
  export      export private key & info
  import      import account by private key
  info        show wallet info
  ls          show all imported/added accounts
  switch      switch between accounts by name

Flags:
  -h, --help   help for account
Example:
  • Add account belonging wallet: wic account add -n account_name

  • Import account from another wallet (e.g., web, mobile wallets): wic account import -n account_name -k private_key

  • Switch account by name: wic account switch -n account_name

  • List add accounts: wic account ls

  • View account info: wic account info

  • Export private key: wic account export

Note:

  • For all accounts generated by add command will be fully recovered if you know the seed words and password. That means you do not need to back up the private key from export command.
  • Imported accounts do not belong to the wallet, remember to back up private keys for them.

tx command

Usage:
     wic tx [command]
   
   Available Commands:
     history     Show send/receive transactions history
     receive     generate QR code to receive PRV or pToken
     send        create PRV/pToken transaction
   
   Flags:
     -h, --help   help for tx

Example

  • Show transaction history: wic tx history
  • Create and send PRV: wic tx send -r receiver_address -a amount
  • Create and send pToken: wic tx send -r receiver_address -a amount -t token_id

Note:

  • Using flag -t token_id to filter by token ID in history command.
  • The amount is in nano. For example -a 1000000 that means send 0.001 PRV.
  • You can change the transaction fee (default 5) using flag -f.

balance command

Usage:
  wic balance [flags]
  wic balance [command]

Available Commands:
  utxo        show current unspent coins

Flags:
  -h, --help           help for balance
  -t, --token string   Add your token

Example

  • Show balance: wic balance
  • Show balance with utxo: wic balance utxo

Note:

  • Using flag -t token_id to filter by token ID in balance command.
  • The balance is in nano. For example, -a 1000000 that means you have 0.001 PRV.
4 Likes

Hi @Isyyyy,

Thanks for this awesome tool!

You can create a docker compose file if you want to simplify deployment :wink:

Is there a reason to not publish the source code on a public repository? I started to read it by extracting it from the docker image but that’s not the easiest way.
As a paranoid, I always read wallet’s code before I start using it :nerd_face:, because it’s about money.

Technical question: Why do you use a Mongo database and not a simpler database like SQLite, as your storage needs seems pretty simple?

Thank you again, i’ll daily use this wallet if my review is ok :slight_smile:

4 Likes

Thanks for your comments @inccry.

You can create a docker compose file if you want to simplify deployment :wink:

  • I appreciate it if you can help me to create it. I have a problem with deployment. Actually, I have a docker-compose file and it works well locally. But I don’t know how to deploy it.

Is there a reason to not publish the source code on a public repository?

  • The source code will be published soon (this week).

Technical question: Why do you use a Mongo database and not a simpler database like SQLite, as your storage needs seems pretty simple?

  • MongoDB is probably suitable for me now :slight_smile: . Moreover, data structure is not stable and I need to change with high frequency
2 Likes

Update Progress:

Hi Incognito’s community,

Finally, we have the first GUI version for WIC. Although it is the local web app, we will port to the desktop app soon.

For the CLI, we have finished pDEX and Stake with the following features:

  • pDEX:
    – Transaction trade history
    – Trade between PRV-pToken and vice versa
    – Trade between pToken-pToken based on PRV
  • Stake:
    – Node status (e.g., pending, candidate, validator)
    – Node reward
    – Withdraw reward
    – Unstake reward

Community Vote: What is the preferred next feature for GUI:

  • pDEX
  • Stake

0 voters

Thank you for your vote!!!

Here are some screenshots.

11 Likes

Impressive, even if it is only local yet. I like the clean layout.

4 Likes

Hi Incognito’s community,

The first MVP version for the local web app is now ready. Please update the run.sh file as follows:

#!/bin/sh bash
ps aux | grep '[r]un.sh' | awk '{ print $2}' | grep -v "^$$\$" | xargs kill -9
docker rm -f incwallet
docker rm -f incwalletapp
docker network create --driver bridge incwallet_net || true
docker pull isyyyy/incwallet
docker pull isyyyy/incwalletapp
docker run -ti --restart=always --net incwallet_net --name incwallet -d -p 9000:9000 isyyyy/incwallet
docker run -ti --restart=always --net incwallet_net --name incwalletapp -d -p 80:80/tcp isyyyy/incwalletapp
docker run --net incwallet_net --name mongo -d -p 27018:27017 mongo
shopt -s expand_aliases
alias wic='docker exec -it incwallet wic'

Try with localhost on any browser to start your new wallet.

We are working on pDex and Staking feature for the next release. We also start to implement the desktop app now.

Please let us know your feedback and comments to make it better.

Thank you so much :slight_smile:

8 Likes

@Isyyyy Good Job Sir :+1:

Hey @Isyyyy, according to the community reaction on your proposal, a desktop wallet is definitely a useful product for the community and ecosystem.

Really cool idea to let the community vote for the upcoming feature :+1: If you don’t mind, have two questions:

  1. Would be awesome if you guys could also share a longer road map for product development. How do you see your product in the upcoming months?

  2. Majority of user are not technically at all and they might find quite difficult to install WIC thought docker, and use commands for operating it. Do you guys plan to pack it into .dmg & .exe files?

2 Likes

@Isyyyy: Really nice work. Can you maybe share your progress on the hardware wallet support? Is there any work being done already? If not, I could work on the Ledger app side of a HW wallet, which could integrate with your wallet then.

2 Likes

Hey @sayne, currently we did not start to implement the integration with any hardware wallet yet.

I could work on the Ledger app side of a HW wallet, which could integrate with your wallet then.

Sure, it is really cool for Incognito, we will have HW wallet soon.