Skip to content

Commit

Permalink
Clarify purpose vs role extension on CIP-1852
Browse files Browse the repository at this point in the history
  • Loading branch information
KtorZ committed May 4, 2021
1 parent 158180f commit 48c5f56
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 3 deletions.
8 changes: 7 additions & 1 deletion CIP-1852/CIP-1852.md
Expand Up @@ -43,7 +43,7 @@ For Cardano, we use a new purpose field `1852'` instead of `44'` like in BIP44.
Using `1852'` as the purpose field, we defined the following derivation path

```
m / purpose' / coin_type' / account' / chain / address_index
m / purpose' / coin_type' / account' / role / index
```

Example: `m / 1852' / 1815' / 0' / 0 / 0`
Expand All @@ -58,6 +58,12 @@ Here, `chain` can be the following

Wallets **MUST** implement this new scheme using the master node derivation algorithm from Icarus with sequential addressing (see [CIP3](../CIP-0003) for more information)

### Future extensions

As a general pattern, new wallet schemes should use a different purpose if they intend to piggy-back on the same structure but for a different use-case (see for instance [CIP-1854](https://cips.cardano.org/cips/cip1854)).

The `role` can however be extending with new roles so long as they have no overlapping semantic with existing roles. If they do, then they likely fall into the first category of extension and would better be done via a new purpose.

## Copyright

This CIP is licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode)
3 changes: 1 addition & 2 deletions CIP-1854/CIP-1854.md
Expand Up @@ -94,8 +94,7 @@ We can summarize the various paths and their respective domain in the following

- We use a different purpose for mainly two reasons:

- It prevents mixing up standard wallets with shared wallets, which would be undesirable and become rapidly a nightmare for software to maintain. In particular, it also makes it possible
to share an intermediary account key with co-signers without disclosing any information about non-shared keys in our wallet.
- It prevents mixing up standard wallets with shared wallets, which would be undesirable and become rapidly a nightmare for software to maintain. In particular, it also makes it possible to share an intermediary account key with co-signers without disclosing any information about non-shared keys in our wallet.

- It makes it easier to extend any of the 1852' or 1854' in a similar manner. The addition of a new role can be done in both scheme very consistently.

Expand Down

0 comments on commit 48c5f56

Please sign in to comment.