# Migrate identity (identity.changeOwnerKey())

**URL:** https://forum.duniter.org/t/migrate-identity-identity-changeownerkey/9669
**Category:** Duniter-v2s
**Created:** [18 August 2022 13:53 UTC](https://forum.duniter.org/t/migrate-identity-identity-changeownerkey/9669 "2022-08-18T13:53:22Z")
**Posts on this page:** 1
**Showing post:** 2

<div class="post-metadata">

### Author: ![elois](https://forum.duniter.org/user_avatar/forum.duniter.org/elois/32/1541_2.png) [@elois](https://forum.duniter.org/u/elois)
#### Post date: [18 August 2022 14:09 UTC](https://forum.duniter.org/t/migrate-identity-identity-changeownerkey/9669/2 "2022-08-18T14:09:51Z")

</div>

> [@poka](#):
>
> Je dois signer un document avec la nouvelle clé et l’insérer ici ?

Tu doit signer un message avec la nouvelle clé et insérer uniquement la signature, le message étant connu par la blockchain, ça ne servirait à rien de le fournir. voici le message à signer:

`"icok" ++ GENESIS_HASH ++ IDTY_INDEX ++ OLD_OWNER_KEY`

Tout doit être encodé et **concaténé en binaire**.

- `"icok"` c’est juste un préfixe constant pour s’assurer qu’on signe bien pour cette opération et pas une autre, `icok` correspondant aux initiales de **i** dentity **c** hange **o** wner **k** ey. Encodé en ASCII ou utf8 c’est pareil, en hexa ça donne `0x69636F6B`.
- `GENESIS_HASH` pour empêcher le rejeu sur un autre réseau.
- `IDTY_INDEX` pour identifier l’identité pour laquelle on veut changer de clé publique. Doit être encodé en little endian non-signé sur 4 octets.
- `OLD_OWNER_KEY` l’ancienne clé publique, pour empêcher le rejeu sur le même réseau. Ça implique qu’il ne faut jamais revenir à une ancienne clé.

---

_[View the full topic](https://forum.duniter.org/t/migrate-identity-identity-changeownerkey/9669)._
