{#if intro}

A NextGraph Wallet is unique to each individual. It stores your credentials and authorizations to access documents.

If you already have a wallet, you should not create a new one, instead, login here with your existing wallet. If you never created a NextGraph Wallet before, please follow the instructions below in order to create your personal wallet.

{#if display_note_on_local_wallets} Some wallets are saved on this device,
to log in with one of them, click here.
{/if}

What is a wallet? Please read

  • It is a secure and encrypted small file that contains some important information that only you should have access to.
  • In it, we store all the permissions to access documents you have been granted with, or that you have created yourself.
  • In order to open it, you will need to enter your pazzle and a PIN code of 4 digits. Your personal pazzle (contraction of puzzle and password) is composed of 9 images you should remember. The order of the images is important too.
  • Don't worry, it is easier to remember 9 images than a password like "69$g&ms%C*%", and it has the same strength than a complex password. The entropy of your pazzle is 66bits, which is considered very high by all standards.
  • You should only create one unique wallet for yourself. All your accounts, identities and permissions will be added to this unique wallet later on. Do not create another wallet if you already have one. Instead, you will import your existing wallet in all the apps and websites where you need it
  • Your wallet can be imported with the help of a small file that you download, or with a QRcode. In any case, you should never share this file or QRcode with anybody else.
  • We at NextGraph will never see the content of your wallet. It is encrypted and we do not know your pazzle, so we cannot see what is inside.
  • For the same reason, we won't be able to help you if you forget your pazzle or PIN code. There is no "password recovery" option in this case. You can note your pazzle down on a piece of paper until you remember it, but don't forget to destroy this note after a while.
{:else if pin.length < 4}

Let's start by choosing a PIN code We recommend you to choose a PIN code that you already know very well :
your credit card PIN, by example, is a good choice

Here are the rules for the PIN :

You have chosen: {#each pin as digit}{digit}{/each}
{#each [0, 1, 2] as row}
{#each [1, 2, 3] as num} {/each}
{/each}
{:else if pin_confirm.length < 4}

Please confirm your PIN code. Enter the same PIN again

You have chosen: {#each pin_confirm as digit}{digit}{/each}
{#each [0, 1, 2] as row}
{#each [1, 2, 3] as num} {/each}
{/each}
{:else if !options}
{#if pin.toString() === pin_confirm.toString()} Your PIN is confirmed as : {#each pin_confirm as digit}{digit}{/each}

Now let's enter a security phrase and a security image

As a verification step, this phrase and image will be presented to you every time you are about to enter your pazzle and PIN before you unlock your wallet.
This security measure will prevent you from entering your pazzle and PIN on malicious sites and apps. When you will use you wallet, if you do not see and recognize your own security phrase and image before entering your pazzle, please stop and DO NOT enter your pazzle, you are being the victim of a phishing attempt.

Here are the rules for the security phrase and image :


{#if security_txt && security_img} {/if} { event.preventDefault(); }} on:change={handleChange} >

{#if mobile} Tap to upload an image {:else} Click to select an image or drag and drop {/if}

{:else} You didn't enter the same PIN twice {/if}
{:else if !creating}

We are almost done !
There are 4 options to choose before we can create your wallet. Those options can help you to use and keep your wallet. But we also want to be careful with your security and privacy.

Remember that in any case, once your wallet will be created, you will download a file that you should keep privately somewhere on your device, USB key or harddisk. This is the default way you can use and keep your wallet. Now let's look at some options that can make your life a bit easier.

Do you trust this device?
If you do, if this device is yours or is used by few trusted persons of your family or workplace, then you can save your wallet in this device. To the contrary, if this device is public and shared by strangers, do not save your wallet here. {#if !import.meta.env.TAURI_PLATFORM}By selecting this option, you agree to save some cookies on your browser.{/if}
Save your wallet here?

Keep a copy in the cloud?
Are you afraid that you will loose the file containing your wallet? If this would happen, your wallet would be lost forever, together with all your documents. We can keep an encrypted copy of your wallet in our cloud. Only you will be able to download it with a special link. You would have to keep this link safely though. By selecting this option, you agree to the Terms and Conditions of our cloud.
Save your wallet in the cloud?

Create a PDF file of your wallet?
We can prepare for you a PDF file containing all the information of your wallet, unencrypted. You should print this file and then delete the PDF (and empty the trash). Keep this printed documented in a safe place. It contains all the information to regenerate your wallet in case you lost access to it.
Create a PDF of my wallet?

{#if !options.cloud}

Create a link to access your wallet easily?
When you want to use your wallet on the web or in other apps, we can help you find your wallet by creating a simple link accessible from anywhere. Only you will have access to this link. In order to do so, we will keep your wallet ID and some information about your broker on our cloud servers. If you prefer to opt out, just uncheck this option.
Create a link to my wallet?

{/if}
{:else if !error} {#if !ready}
We are creating your wallet...
{:else}
Your wallet is ready! {#if download_link} Please download your wallet and keep it in a safe location

{:else if !options.trusted} Your wallet file has been downloaded into your "Downloads" folder, with the name
{download_name}
Please move it to a safe and durable place.

{/if} {#each display_pazzle(ready.pazzle) as emoji} {emoji}
{/each}
{/if} {:else}
An error occurred ! {error}
{/if}