Storing/exporting derived wallets

Hi !

I have played a bit to try adapting Silkaj to DuniterV2S.
I would like Silkaj to become a software with features aimed to smiths, such as smith wot operation, node administration, etc.

I can create a wallet with a secret PIN, and I want to store the DEWIF file.
@elois, @poka and @vit have discussed a bit about wallet derivation, and I plan to keep derivation //0 for member pubkeys.
However, I did not see any subject about a standard way to store the derivated keys for a wallet.

@elois made a proposition here:

{
  "Compte courant": 0,
  "Compte gchange": 1,
  "Projet bidule": 2,
  "gmix 1": 3,
   ...
}

Since one can define derivation paths, I think it may be useful to store/export wallets like this (the last one is an example, maybe not to use like this):

{
  "dewif": "AAA....",
  "derivations": {
    "member": "//0",
    "personal wallet": "//2",
    "shop wallet": "//4",
    "shop secondary wallet": "//4/2",
    "hidden wallet": "//my_password"
  }
}

My questions are:

  • Is there already a document about it, that I am not aware of ?
  • If not, what do you think about my last proposition ?
1 Like

DEWIF is deprecated since v2s.
in Gecko I use polkadot.js lib API to create, derive and store wallets, combine with an custom index with this custom object:

WalletData(
      {this.version,
      this.chest,
      this.address,
      this.number,
      this.name,
      this.derivation,
      this.imageDefaultPath,
      this.imageCustomPath});

Complete declaration here: lib/models/wallet_data.dart · master · clients / Ğecko · GitLab

polkadot.js store one encrypted seed by wallet, even if it’s same seed with different derivation.
So for one chest with derivation 2,4 and 6, it store 3 time the same encrypted seed.
It’s not very optimized but very simple to use and maintain, and I prefer to stay stuck to polkadot.js API.
And for a few wallet, the storage space occupied is negligible.


For me, we don’t need a common standard beetwen clients to store wallets, since the export should only be by mnemonic and derivation number. Each client can scan the 20 or 30 first derivations balance on import, as Gecko do.

1 Like