# Use ed25519 vs sr25519 for v2s clients

**URL:** https://forum.duniter.org/t/use-ed25519-vs-sr25519-for-v2s-clients/12996
**Category:** Applications
**Tags:** sr25519, ed25519
**Created:** [12 March 2025 10:51 UTC](https://forum.duniter.org/t/use-ed25519-vs-sr25519-for-v2s-clients/12996 "2025-03-12T10:51:00Z")
**Posts on this page:** 5
**Page:** 2

<div class="post-metadata">

### Author: ![Nicolas80](https://forum.duniter.org/user_avatar/forum.duniter.org/nicolas80/32/11019_2.png) [@Nicolas80](https://forum.duniter.org/u/Nicolas80)
#### Post date: [23 March 2025 19:27 UTC](https://forum.duniter.org/t/use-ed25519-vs-sr25519-for-v2s-clients/12996/21 "2025-03-23T19:27:19Z")

</div>

@poka, @HugoTrentesaux Je viens de finir les changements dans la MR et elle est en attente de review avant de la merger et faire une release.

> **[feat: Can choose between ed25519 ans sr25519 (!44) · Merge requests · clients...](https://git.duniter.org/clients/rust/gcli-v2s/-/merge_requests/44#note_1282)**
>
> Cette MR permet de: Choisir explicitement si nous voulons importer un wallet en mode ed25519 (par defaut) ou sr25519. ...

@vit Effectivement je ne pense pas que cette colonne supplémentaire aurait aidé pour ce que tu dis.

> [@vit](#):
>
> **Je suis preneur d’une méthode pour savoir si un compte est connu dans le genesis via l’api RPC** , car pour l’instant je ne sais que demander à l’indexer si la date de création est 0.

Pour ce point là, j’avoue que je n’ai pas encore touché à la partie du code Gcli qui effectue des appels RPC, …

Est-ce que quelqu’un peut détailler la marche à suivre pour faire cela ?  
Est-ce que c’est quelque chose que l’on peut déjà accéder dans les appels RPC via polkadot ?

---

<div class="post-metadata">

### Author: ![vit](https://forum.duniter.org/user_avatar/forum.duniter.org/vit/32/2775_2.png) [@vit](https://forum.duniter.org/u/vit)
#### Post date: [7 April 2025 13:59 UTC](https://forum.duniter.org/t/use-ed25519-vs-sr25519-for-v2s-clients/12996/22 "2025-04-07T13:59:13Z")

</div>

@poka, @Nicolas80 pouvez-vous me dire quelle adresse de compte en **ED25519** vous obtenez pour la dérivation **//Alice** avec le mnémonique de dev ?

J’ai un code proposé par chatGPT qui me paraît un peu foireux et j’obtiens  
‘5CMZywDW1xRZ1XacJsaByzmgsnZEdvaovE5a6bsqvhQz6z89’

```python
    mnemonic_dev = "bottom drive obey lake curtain smoke basket hold race lonely fit walk"
    keypair_ed25519 = Keypair.create_from_uri(mnemonic_dev+"//Alice", 42, KeypairType.ED25519)
    assert keypair_ed25519.ss58_address == '5CMZywDW1xRZ1XacJsaByzmgsnZEdvaovE5a6bsqvhQz6z89'

```

---

<div class="post-metadata">

### Author: ![Nicolas80](https://forum.duniter.org/user_avatar/forum.duniter.org/nicolas80/32/11019_2.png) [@Nicolas80](https://forum.duniter.org/u/Nicolas80)
#### Post date: [7 April 2025 14:12 UTC](https://forum.duniter.org/t/use-ed25519-vs-sr25519-for-v2s-clients/12996/23 "2025-04-07T14:12:29Z")

</div>

@vit  
En utilisant le code de la MR 44:

```shell
gcli vault inspect -v predef-ed//Alice            
The linked <Base> account is Base[address:5DFJF7tY4bpbpcKPJcBTQaKuCDEPCpiz8TRjpmLeTtweqmXL, g1v1_pub_key:4XDM51AWupjKLWkVPxxJxrqN8DEhmPuY3S1FEepvHvxN, name:Some("predef-ed"), crypto_scheme:Some(Ed25519)]
Enter password to decrypt the <Base> account key
> Password ********
Substrate URI: 'bottom drive obey lake curtain smoke basket hold race lonely fit walk//Alice'
Crypto scheme: ed25519
Secret seed/mini-secret: '0xabf8e5bdbe30c65656c0a3cbd181ff8a56294a69dfedd27982aace4a76909115'
Public key (hex): '0x88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee'
SS58 Address: '5FA9nQDVg267DEd8m1ZypXLBnvN7SFxYwV7ndqSYGiN9TTpu'

```

Sinon, avec `subkey`

```shell
subkey inspect --scheme ed25519
URI: 
Secret Key URI `bottom drive obey lake curtain smoke basket hold race lonely fit walk//Alice` is account:
  Network ID: substrate
  Secret seed: 0xabf8e5bdbe30c65656c0a3cbd181ff8a56294a69dfedd27982aace4a76909115
  Public key (hex): 0x88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee
  Account ID: 0x88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee
  Public key (SS58): 5FA9nQDVg267DEd8m1ZypXLBnvN7SFxYwV7ndqSYGiN9TTpu
  SS58 Address: 5FA9nQDVg267DEd8m1ZypXLBnvN7SFxYwV7ndqSYGiN9TTpu

```

---

<div class="post-metadata">

### Author: ![Moul](https://forum.duniter.org/user_avatar/forum.duniter.org/moul/32/9145_2.png) [@Moul](https://forum.duniter.org/u/Moul)
#### Post date: [5 July 2025 12:28 UTC](https://forum.duniter.org/t/use-ed25519-vs-sr25519-for-v2s-clients/12996/24 "2025-07-05T12:28:52Z")

</div>

J’ai zappé de quoi retourne ce post. En effet, je trouve que ça fait sens de rester en ed25519, car il est possible de le convertir en sr25519 en passant par la seed. L’inverse n’est pas possible il me semble (à vérifier). Je n’arrive pas à accéder à la `seed` à partir du fichier d’authentification JSON chiffré généré par `py-polkadot-sdk` pour lequel `sr25519` est utilisé.  
Passer en `sr25519` nous enferme, car il n’est pas possible de revenir à la source : la `seed`.

```py
>>> from substrateinterface import Keypair
>>> k = Keypair.create_from_mnemonic("clock tomato moment expand derive hospital among spray abandon face pear border")
>>> k
<Keypair (address=5HWcaif99dWLkBSJr9pmwuLhCH1DBwQ7xxaifbcXCfSNoxje)>
>>> k.seed_hex
b'rv\x1c\x1d\x15\x91}\xa8\xe37\xc5\x8cz\x83c6\x89:\x93\x986\xe6\xf4Ux\xa5\xe0,\xc5\xa8\xb7\x82'

```

À partir du fichier d’authentification JSON chiffré :

```py
k = Keypair.create_from_encrypted_json(auth_file_content, password)
<Keypair (address=5HDikVWZ2xHfqvVVFwex5zmRsH4LuR3KqMgKZYEbCSjStSKw)>
(Pdb) k.seed_hex
# c’est vide

```

Du coup, d’un point de vue [choix de fichier d’authentification](https://forum.duniter.org/t/authentication-file-format-for-v2-ecosystem/13132), il faudrait rester sur le format (E)WIF et non le JSON chiffré compatible Polkadot.js. `py-polkadot-sdk` ne gère que sr25519 pour la génération de ce fichier.

---

<div class="post-metadata">

### Author: ![kimamila](https://forum.duniter.org/user_avatar/forum.duniter.org/kimamila/32/185_2.png) [@kimamila](https://forum.duniter.org/u/kimamila)
#### Post date: [8 September 2025 14:44 UTC](https://forum.duniter.org/t/use-ed25519-vs-sr25519-for-v2s-clients/12996/25 "2025-09-08T14:44:06Z")

</div>

6 posts were split to a new topic: [Méthode d’authentification supportées par les logiciels clients Duniter v2s : migration obligatoire vers les mnémoniques?](https://forum.duniter.org/t/methode-dauthentification-supportees-par-les-logiciels-clients-duniter-v2s-migration-obligatoire-vers-les-mnemoniques/13303)

[Previous page](https://forum.duniter.org/t/use-ed25519-vs-sr25519-for-v2s-clients/12996.md?page=1)
