You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This document details a common format for sharing Cardano delegation portfolio across various tools and wallets.
16
18
17
-
# Motivation
19
+
##Motivation: why is this CIP necessary?
18
20
19
21
Stakeholders have indicated the desire to split their stake in various sizes and delegate to n pools from a single wallet/mnemonic. Albeit there are no monetary incentive for users to do this, the desire to drive decentralisation is sufficiently prevalent to justify it. Furthermore, stakeholders want to introduce a certain social element to this activity by sharing their delegation portfolio with other stakeholders. This specification should help to standardize the representation of portfolios across tools for more interoperability.
20
22
21
-
# Specification
23
+
##Specification
22
24
23
25
### Overview
24
26
@@ -32,29 +34,7 @@ For each pool, we demand a `weight` which can capture a certain stake proportion
32
34
33
35
Portfolios which treat all stake pools equally should use the same weight (e.g. `1`) for each pool.
34
36
35
-
# Rationale
36
-
37
-
1. JSON is widely used, widely supported and quite lightweight. Makes for a reasonable choice of data format.
38
-
39
-
2. Using JSON schema for validation is quite common when dealing with JSON and it's usually sufficiently precise to enable good interoperability.
40
-
41
-
3. The portfolio should only capture information that are not subject to radical change. That is, stake pools parameters like pledge or fees are excluded since they can be changed fairly easily using on-chain certificate updates.
42
-
43
-
4. The JSON schema doesn't enforce any `additionalProperties: false` for neither the top-level object definition nor each stake pool objects. This allows for open extension of the objects with custom fields at the discretion of applications implementing this standard. The semantic of well-known properties specified in this document is however fixed.
44
-
45
-
5. Since the portfolio format isn't _immediately user-facing_, we favor base16 over bech32 for the pool id's encoding for there's better support and tooling for the former.
46
-
47
-
# Backwards Compatibility
48
-
49
-
## Adafolio (https://adafolio.com)
50
-
51
-
The format used by Adafolio share a lot of similarities with the proposed format in this CIP. In order to power its frontend user interface, Adafolio contains however several fields which we consider _too volatile_ and unnecessary to the definition of a portfolio. This doesn't preclude the format used by Adafolio as a valid portfolio format (see also point (4). in the rationale above).
52
-
53
-
The only point of incompatibility regards the `pool_id` field (in Adafolio) vs the `id` field (in this proposal) which we deem more consistent with regards to other field.
54
-
55
-
# Reference Implementation(s)
56
-
57
-
## Examples
37
+
### Example
58
38
59
39
```json
60
40
{ "name": "Metal 🤘"
@@ -81,6 +61,38 @@ The only point of incompatibility regards the `pool_id` field (in Adafolio) vs t
81
61
}
82
62
```
83
63
64
+
## Rationale: how does this CIP achieve its goals?
65
+
66
+
1. JSON is widely used, widely supported and quite lightweight. Makes for a reasonable choice of data format.
67
+
68
+
2. Using JSON schema for validation is quite common when dealing with JSON and it's usually sufficiently precise to enable good interoperability.
69
+
70
+
3. The portfolio should only capture information that are not subject to radical change. That is, stake pools parameters like pledge or fees are excluded since they can be changed fairly easily using on-chain certificate updates.
71
+
72
+
4. The JSON schema doesn't enforce any `additionalProperties: false` for neither the top-level object definition nor each stake pool objects. This allows for open extension of the objects with custom fields at the discretion of applications implementing this standard. The semantic of well-known properties specified in this document is however fixed.
73
+
74
+
5. Since the portfolio format isn't _immediately user-facing_, we favor base16 over bech32 for the pool id's encoding for there's better support and tooling for the former.
75
+
76
+
### Backwards Compatibility
77
+
78
+
#### Adafolio
79
+
80
+
The format used by [Adafolio](https://adafolio.com) share a lot of similarities with the proposed format in this CIP. In order to power its frontend user interface, Adafolio contains however several fields which we consider _too volatile_ and unnecessary to the definition of a portfolio. This doesn't preclude the format used by Adafolio as a valid portfolio format (see also point (4). in the rationale above).
81
+
82
+
The only point of incompatibility regards the `pool_id` field (in Adafolio) vs the `id` field (in this proposal) which we deem more consistent with regards to other field.
83
+
84
+
## Path to Active
85
+
86
+
### Acceptance Criteria
87
+
88
+
-[ ] At least one pair of applications (wallets, explorers or other tools) together support the following:
89
+
-[ ] generation of the specified portfolio file format
90
+
-[ ] interpretation and use of the specified portfolio file format
91
+
92
+
### Implementation Plan
93
+
94
+
-[ ] Provide a reference implementation and/or parsing library to read and/or write files in this schema.
95
+
84
96
# Copyright
85
97
86
-
CC-BY-4.0
98
+
This CIP is licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode).
0 commit comments