[Shipped] App v.4

I’ll never be able use Incognito again without thinking about pigeons in the cloud, parades and flight-proven caramels.

Post of the month!


Omg I loved it haha this is exactly what I needed thank you so much for this incredibly cute explanation :pleading_face:.

Also I agree with @Mike_Wagner this is definitely post of the month :laughing:.


Only partially related to the discussion here, but I’ll ask anyway… Is there a way to create pdex address from APIs? Actually the RPC JSON Methods Wiki on GitHub does not seem to mention anything related to account/address creation.

i recommend not using RPC to do so.
If you want to create pdex account, please use client SDK to create account first.
then use account to exec transaction.

1 Like

Are you aware there is a section on this forum dedicated to builders/code?


HD wallet is here, and you’ll all be seeing a little black bar at the bottom of your screens saying ‘Update your app to get full functionality’. Tap on it, or take the old-fashioned route to your app store, where you’ll find version 4.0.0 waiting for you.

  1. Things might look a little different - dw, we got you. Read this walkthrough.

Key takeaway: you can find your existing keychains (and existing funds) in the ‘Masterless’ category. Just tap on Keychain from your home screen to get familiar with the new structure. The only change is that keys created from today onwards will be recoverable with a seed phrase. (hurrah!)

  1. Too many keys? For those of you who like to keep things streamlined, it might be worth doing a little housekeeping. Just send funds from your old keychains to your new ones.

  2. A follow up on pDEX & pDEXWithdraw keychains - for newly downloaded apps or freshly created master keys, these will only appear if you tap on Add (and will perform behind the scenes if you do not). This way, there’s less to keep track of (less confusing for newbies).

If you want to trade directly from the pDEX keychain as discussed above (note the caveats!), you’ll need to get it to appear by tapping Add. pDEX and pDEXWithdraw keychains are… ‘special’, so won’t be removable until one-time addresses go live.


Thanks @ning I´ve downloaded the new version and tried a fresh install. Whats the way to go, if several addresses are needed for a node etc. Create several master keys (12 word seedphrases)? Or can I create new addresses somehow and restore them all if necessary with one masterkey?

1 Like

What a perfect test of my backup strategy! :sweat_smile:

:pray: for me :joy:


Very smooth update and transition. Well done, team!


hey @sato, you can create as many keychains as you like under one master key. each of those keychains has a validator key, so you can have something like:

X master key
keychain 1 -> private key 1, public key 1, validator key 1, etc.
keychain 2 -> private key 2, public key 2, validator key 2, etc.
keychain 3 -> private key 3, public key 3, validator key 3, etc.

to do that, you need to go to the Keychain tab, switch to ‘X master key’ on the top right, then just select ‘create a new keychain in X master key’.

X master key can be backed up with a seed phrase, which will also restore Keychains 1, 2 and 3. Keychains 1, 2, 3 can also still be separately backed up with private keys if you want.

hope that helps!


Thanks @ning. Another question, why is it not possible to generate the “master” key offline?Seems that a internet connection is required to generate the key / seedphrase. Should this not be done offline, on the device itself? How is the process actually to generate the key, what is happening in the background? Thx.


Great, thanks a lot @inccry :+1:

You have to compute the checksum manually. I don’t think you can simply pick random 12 words because of the checksum. For computing phrase offline you can download this tool an use it offline:


You’re right!

(I deleted my previous message)

1 Like

I’d recommend not using RPC to init a new wallet. Instead use the SDK. It’s much more secure.

init(passPhrase: string, name?: string) => Promise<WalletInstance>

const { WalletInstance } = incognitoJs;

const wallet = new WalletInstance(); await wallet.init('my-passphrase', 'TEST-WALLET');

console.log('New wallet', wallet);

1 Like

Sensitive operations, such as the creation of user private keys and signing of transactions, are performed client-side. The SDK requires an internet connection to implement these client side wallet features and interface with the APIs.

1 Like

Thank you all for the replies! Yes, I understand that creating key is better done via SDK, similarly caution must be taken when using private APIs against a node. That said, I do still prefer JSON APIs whenever possible, because it is a cleaner interface and language neutral.

Also, I’m still confused by the comment @ning made above regarding the “pdex” key. Is it only treated specially by the (older than version 4.0) mobile app, but not by the blockchain itself? Since with the new 4.0 version, there is no more “pdex”, “pdex withdraw” keys.

1 Like

The new app does contain both pDEX and pDEXWithdraw keys. The pDex, and pDexWithdraw keys will not appear until the user uses the “Add” function to add liquidity. You don’t have to actually add liquidity. You just have to enter that part of the app.


Hm. Master keys/keychains can technically be generated and viewed offline. But because a internet connection is needed to get coin lists and balances etc., currently the app doesn’t open without one…

1 Like

What information is stored locally on the device? (transaction history or anything?)

My plan is to restore my private keys to an alternate device before upgrading–just to be extra safe.