@carrot-foundation/schemas 0.2.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/README.md +144 -116
  2. package/dist/index.cjs +204 -267
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.d.cts +23 -23
  5. package/dist/index.d.ts +23 -23
  6. package/dist/index.js +204 -267
  7. package/dist/index.js.map +1 -1
  8. package/package.json +20 -20
  9. package/schemas/ipfs/collection/collection.example.json +3 -3
  10. package/schemas/ipfs/collection/collection.schema.json +77 -77
  11. package/schemas/ipfs/credit/credit.example.json +4 -4
  12. package/schemas/ipfs/credit/credit.schema.json +85 -85
  13. package/schemas/ipfs/credit-purchase-receipt/credit-purchase-receipt.example.json +15 -15
  14. package/schemas/ipfs/credit-purchase-receipt/credit-purchase-receipt.schema.json +432 -424
  15. package/schemas/ipfs/credit-retirement-receipt/credit-retirement-receipt.example.json +15 -15
  16. package/schemas/ipfs/credit-retirement-receipt/credit-retirement-receipt.schema.json +465 -457
  17. package/schemas/ipfs/gas-id/gas-id.example.json +9 -9
  18. package/schemas/ipfs/gas-id/gas-id.schema.json +448 -432
  19. package/schemas/ipfs/mass-id/mass-id.example.json +7 -7
  20. package/schemas/ipfs/mass-id/mass-id.schema.json +533 -512
  21. package/schemas/ipfs/mass-id-audit/mass-id-audit.example.json +57 -57
  22. package/schemas/ipfs/mass-id-audit/mass-id-audit.schema.json +225 -217
  23. package/schemas/ipfs/methodology/methodology.example.json +5 -5
  24. package/schemas/ipfs/methodology/methodology.schema.json +124 -124
  25. package/schemas/ipfs/recycled-id/recycled-id.example.json +9 -9
  26. package/schemas/ipfs/recycled-id/recycled-id.schema.json +400 -384
  27. package/schemas/schema-hashes.json +10 -10
@@ -1,9 +1,9 @@
1
1
  {
2
- "$schema": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/tags/0.2.3/schemas/ipfs/methodology/methodology.schema.json",
2
+ "$schema": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/tags/0.3.0/schemas/ipfs/methodology/methodology.schema.json",
3
3
  "schema": {
4
- "hash": "afb627827c504ecbe70ba6f6d1502851c8622284726747345e927780bcd85101",
4
+ "hash": "1d6a4da7bed4a07d3dd55158322b02773fe1ec20ce698135990eb92a7ab01ffe",
5
5
  "type": "Methodology",
6
- "version": "0.2.3",
6
+ "version": "0.3.0",
7
7
  "ipfs_uri": "ipfs://bafybeigdyrztvzl5cceubvaxob7iqh6f3f7s36c74ojav2xsz2uib2g3vm"
8
8
  },
9
9
  "environment": {
@@ -19,7 +19,7 @@
19
19
  "short_name": "BOLD Carbon (CH₄)",
20
20
  "slug": "bold-carbon-ch4",
21
21
  "version": "1.0.1",
22
- "description": "The BOLD (Breakthrough in Organics Landfill Diversion) Carbon methodology establishes the certification process for confirming avoided methane emissions from aerobic composting of organic waste at small-scale, professional composting facilities and distribution of rewards to supply chain contributors.",
22
+ "description": "The BOLD (Breakthrough in Organics Landfill Diversion) Carbon methodology establishes the verification process for confirming prevented methane emissions from aerobic composting of organic waste at small-scale, professional composting facilities and distribution of rewards to supply chain contributors.",
23
23
  "revision_date": "2025-08-15",
24
24
  "publication_date": "2025-08-15",
25
25
  "methodology_pdf": "ipfs://bafybeihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku",
@@ -49,7 +49,7 @@
49
49
  "name": "Project Period Limit"
50
50
  },
51
51
  {
52
- "description": "Checks if all participating entities have valid certifications and permissions",
52
+ "description": "Checks if all participating entities have valid accreditations and permissions",
53
53
  "source_code_url": "https://github.com/carrot-foundation/methodology-rules/tree/2e9cbbfd397027a03fb1561e431fcc156580459f/apps/methodologies/bold-carbon/rule-processors/mass-id/participant-accreditations-and-verifications-requirements",
54
54
  "execution_order": 4,
55
55
  "id": "00000000-0000-4000-8000-000000000004",
@@ -1,58 +1,54 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "title": "Methodology IPFS Record",
4
- "description": "Methodology metadata stored in IPFS, extending the base schema with methodology data and audit rules",
5
- "$id": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/tags/0.2.3/schemas/ipfs/methodology/methodology.schema.json",
6
- "version": "0.2.3",
7
3
  "type": "object",
8
4
  "properties": {
9
5
  "$schema": {
6
+ "type": "string",
7
+ "format": "uri",
10
8
  "title": "JSON Schema URI",
11
9
  "description": "URI of the JSON Schema used to validate this record",
12
- "example": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/heads/main/schemas/ipfs/shared/base/base.schema.json",
13
- "type": "string",
14
- "format": "uri"
10
+ "example": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/heads/main/schemas/ipfs/shared/base/base.schema.json"
15
11
  },
16
12
  "schema": {
17
13
  "type": "object",
18
14
  "properties": {
19
15
  "hash": {
16
+ "type": "string",
17
+ "pattern": "^[0-9a-fA-F]{64}$",
20
18
  "title": "Schema Hash",
21
19
  "description": "SHA-256 hash of the JSON Schema this record was validated against",
22
20
  "examples": [
23
21
  "87f633634cc4b02f628685651f0a29b7bfa22a0bd841f725c6772dd00a58d489"
24
- ],
25
- "type": "string",
26
- "pattern": "^[0-9a-fA-F]{64}$"
22
+ ]
27
23
  },
28
24
  "type": {
29
- "title": "Methodology Schema Type",
30
- "description": "Schema type identifier for this record",
31
25
  "type": "string",
32
- "const": "Methodology"
26
+ "const": "Methodology",
27
+ "title": "Methodology Schema Type",
28
+ "description": "Discriminator value identifying this record as a Methodology impact-measurement definition"
33
29
  },
34
30
  "version": {
31
+ "type": "string",
32
+ "minLength": 1,
33
+ "pattern": "^v?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?$",
35
34
  "title": "Schema Version",
36
35
  "description": "Version of the schema, using semantic versioning",
37
36
  "examples": [
38
37
  "0.1.0",
39
38
  "1.0.0",
40
39
  "2.1.3"
41
- ],
42
- "type": "string",
43
- "minLength": 1,
44
- "pattern": "^v?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?$"
40
+ ]
45
41
  },
46
42
  "ipfs_uri": {
43
+ "type": "string",
44
+ "minLength": 1,
45
+ "pattern": "^ipfs:\\/\\/(?:Qm[1-9A-HJ-NP-Za-km-z]{44}|[bB][a-z2-7]{58,}|[zZ][1-9A-HJ-NP-Za-km-z]{48,})(?:\\/[^\\s]*)?$",
47
46
  "title": "Schema IPFS URI",
48
47
  "description": "IPFS URI for this JSON Schema when the primary schema URI is unavailable",
49
48
  "examples": [
50
49
  "ipfs://bafybeigdyrztvzl5cceubvaxob7iqh6f3f7s36c74ojav2xsz2uib2g3vm",
51
50
  "ipfs://bafybeihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku"
52
- ],
53
- "type": "string",
54
- "minLength": 1,
55
- "pattern": "^ipfs:\\/\\/(?:Qm[1-9A-HJ-NP-Za-km-z]{44}|[bB][a-z2-7]{58,}|[zZ][1-9A-HJ-NP-Za-km-z]{48,})(?:\\/[^\\s]*)?$"
51
+ ]
56
52
  }
57
53
  },
58
54
  "required": [
@@ -64,99 +60,97 @@
64
60
  "additionalProperties": false
65
61
  },
66
62
  "created_at": {
63
+ "type": "string",
64
+ "format": "date-time",
65
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
67
66
  "title": "Created At",
68
67
  "description": "ISO 8601 creation timestamp for this record",
69
68
  "examples": [
70
69
  "2024-12-05T11:02:47.000Z"
71
- ],
72
- "type": "string",
73
- "format": "date-time",
74
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
70
+ ]
75
71
  },
76
72
  "external_id": {
73
+ "type": "string",
74
+ "format": "uuid",
75
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
77
76
  "title": "External ID",
78
- "description": "UUID identifier for external system references",
77
+ "description": "UUID v4 identifier linking this IPFS record to its counterpart in the Carrot platform and other consuming systems",
79
78
  "examples": [
80
79
  "ad44dd3f-f176-4b98-bf78-5ee6e77d0530"
81
- ],
82
- "type": "string",
83
- "format": "uuid",
84
- "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
80
+ ]
85
81
  },
86
82
  "external_url": {
83
+ "type": "string",
84
+ "format": "uri",
87
85
  "title": "External URL",
88
86
  "description": "URL pointing to external resources",
89
87
  "examples": [
90
88
  "https://explore.carrot.eco/",
91
89
  "https://whitepaper.carrot.eco/"
92
- ],
93
- "type": "string",
94
- "format": "uri"
90
+ ]
95
91
  },
96
92
  "viewer_reference": {
97
- "title": "Metadata Viewer Reference",
98
- "description": "References to the metadata viewer dApp, including immutable and latest entry points",
99
93
  "type": "object",
100
94
  "properties": {
101
95
  "ipfs_uri": {
96
+ "type": "string",
97
+ "minLength": 1,
98
+ "pattern": "^ipfs:\\/\\/(?:Qm[1-9A-HJ-NP-Za-km-z]{44}|[bB][a-z2-7]{58,}|[zZ][1-9A-HJ-NP-Za-km-z]{48,})(?:\\/[^\\s]*)?$",
102
99
  "title": "Viewer IPFS URI",
103
100
  "description": "IPFS URI of the metadata viewer dApp build",
104
101
  "examples": [
105
102
  "ipfs://bafybeigdyrztvzl5cceubvaxob7iqh6f3f7s36c74ojav2xsz2uib2g3vm",
106
103
  "ipfs://bafybeihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku"
107
- ],
108
- "type": "string",
109
- "minLength": 1,
110
- "pattern": "^ipfs:\\/\\/(?:Qm[1-9A-HJ-NP-Za-km-z]{44}|[bB][a-z2-7]{58,}|[zZ][1-9A-HJ-NP-Za-km-z]{48,})(?:\\/[^\\s]*)?$"
104
+ ]
111
105
  },
112
106
  "integrity_hash": {
107
+ "type": "string",
108
+ "pattern": "^[0-9a-fA-F]{64}$",
113
109
  "title": "Viewer Integrity Hash",
114
110
  "description": "SHA-256 hash of the published viewer bundle to verify integrity",
115
111
  "examples": [
116
112
  "87f633634cc4b02f628685651f0a29b7bfa22a0bd841f725c6772dd00a58d489"
117
- ],
118
- "type": "string",
119
- "pattern": "^[0-9a-fA-F]{64}$"
113
+ ]
120
114
  }
121
115
  },
122
116
  "required": [
123
117
  "ipfs_uri",
124
118
  "integrity_hash"
125
119
  ],
126
- "additionalProperties": false
120
+ "additionalProperties": false,
121
+ "title": "Metadata Viewer Reference",
122
+ "description": "References to the metadata viewer dApp, including immutable and latest entry points"
127
123
  },
128
124
  "environment": {
129
- "title": "Record Environment",
130
- "description": "Environment information for the record",
131
125
  "type": "object",
132
126
  "properties": {
133
127
  "blockchain_network": {
134
- "title": "Blockchain Network",
135
- "description": "Blockchain network where this record is deployed",
136
128
  "type": "string",
137
129
  "enum": [
138
130
  "mainnet",
139
131
  "testnet"
140
- ]
132
+ ],
133
+ "title": "Blockchain Network",
134
+ "description": "Blockchain network where this record is deployed"
141
135
  },
142
136
  "deployment": {
143
- "title": "Deployment Environment",
144
- "description": "System environment where this record was generated",
145
137
  "type": "string",
146
138
  "enum": [
147
139
  "production",
148
140
  "development",
149
141
  "testing"
150
- ]
142
+ ],
143
+ "title": "Deployment Environment",
144
+ "description": "System environment where this record was generated"
151
145
  },
152
146
  "data_set_name": {
153
- "title": "Data Set Name",
154
- "description": "Name of the data set for this record",
155
147
  "type": "string",
156
148
  "enum": [
157
149
  "TEST",
158
150
  "PROD"
159
- ]
151
+ ],
152
+ "title": "Data Set Name",
153
+ "description": "Name of the data set for this record"
160
154
  }
161
155
  },
162
156
  "required": [
@@ -164,176 +158,172 @@
164
158
  "deployment",
165
159
  "data_set_name"
166
160
  ],
167
- "additionalProperties": false
161
+ "additionalProperties": false,
162
+ "title": "Record Environment",
163
+ "description": "Environment information for the record"
168
164
  },
169
165
  "data": {
170
- "title": "Methodology Data",
171
- "description": "Methodology definition including name, version, documentation, and audit rules",
172
166
  "type": "object",
173
167
  "properties": {
174
168
  "name": {
175
- "title": "Methodology Name",
176
- "description": "Full official name of the methodology",
177
- "examples": [
169
+ "type": "string",
170
+ "enum": [
178
171
  "AMS-III.F. | BOLD Carbon (CH₄) - SSC",
179
172
  "AMS-III.F. | BOLD Recycling Credit"
180
173
  ],
181
- "type": "string",
182
- "enum": [
174
+ "title": "Methodology Name",
175
+ "description": "Full official name of the methodology",
176
+ "examples": [
183
177
  "AMS-III.F. | BOLD Carbon (CH₄) - SSC",
184
178
  "AMS-III.F. | BOLD Recycling Credit"
185
179
  ]
186
180
  },
187
181
  "short_name": {
188
- "title": "Methodology Short Name",
189
- "description": "Abbreviated/short name of the methodology used for UI display and references",
190
- "examples": [
182
+ "type": "string",
183
+ "enum": [
191
184
  "BOLD Carbon (CH₄)",
192
185
  "BOLD Recycling"
193
186
  ],
194
- "type": "string",
195
- "enum": [
187
+ "title": "Methodology Short Name",
188
+ "description": "Abbreviated/short name of the methodology used for UI display and references",
189
+ "examples": [
196
190
  "BOLD Carbon (CH₄)",
197
191
  "BOLD Recycling"
198
192
  ]
199
193
  },
200
194
  "slug": {
201
- "title": "Methodology Slug",
202
- "description": "URL-friendly identifier for the methodology",
203
- "examples": [
195
+ "type": "string",
196
+ "enum": [
204
197
  "bold-recycling",
205
198
  "bold-carbon-ch4"
206
199
  ],
207
- "type": "string",
208
- "enum": [
200
+ "title": "Methodology Slug",
201
+ "description": "URL-friendly identifier for the methodology",
202
+ "examples": [
209
203
  "bold-recycling",
210
204
  "bold-carbon-ch4"
211
205
  ]
212
206
  },
213
207
  "version": {
208
+ "type": "string",
209
+ "minLength": 1,
210
+ "pattern": "^v?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?$",
214
211
  "title": "Methodology Version",
215
- "description": "Version of the methodology",
212
+ "description": "Semantic version of this methodology revision (e.g., 1.0.0)",
216
213
  "examples": [
217
214
  "0.1.0",
218
215
  "1.0.0",
219
216
  "2.1.3"
220
- ],
221
- "type": "string",
222
- "minLength": 1,
223
- "pattern": "^v?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?$"
217
+ ]
224
218
  },
225
219
  "description": {
226
- "title": "Methodology Description",
227
- "description": "Comprehensive methodology description including purpose, scope, and implementation approach",
228
220
  "type": "string",
229
221
  "minLength": 50,
230
- "maxLength": 2000
222
+ "maxLength": 2000,
223
+ "title": "Methodology Description",
224
+ "description": "Comprehensive methodology description including purpose, scope, and implementation approach"
231
225
  },
232
226
  "revision_date": {
227
+ "type": "string",
228
+ "format": "date",
229
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
233
230
  "title": "Revision Date",
234
231
  "description": "ISO 8601 date of the last revision to this methodology",
235
232
  "examples": [
236
233
  "2024-12-05"
237
- ],
238
- "type": "string",
239
- "format": "date",
240
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
234
+ ]
241
235
  },
242
236
  "publication_date": {
237
+ "type": "string",
238
+ "format": "date",
239
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
243
240
  "title": "Publication Date",
244
241
  "description": "ISO 8601 date of the original publication of this methodology",
245
242
  "examples": [
246
243
  "2024-12-05"
247
- ],
248
- "type": "string",
249
- "format": "date",
250
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
244
+ ]
251
245
  },
252
246
  "methodology_pdf": {
247
+ "type": "string",
248
+ "minLength": 1,
249
+ "pattern": "^ipfs:\\/\\/(?:Qm[1-9A-HJ-NP-Za-km-z]{44}|[bB][a-z2-7]{58,}|[zZ][1-9A-HJ-NP-Za-km-z]{48,})(?:\\/[^\\s]*)?$",
253
250
  "title": "Methodology PDF",
254
251
  "description": "IPFS URI pointing to the complete methodology PDF document",
255
252
  "examples": [
256
253
  "ipfs://bafybeigdyrztvzl5cceubvaxob7iqh6f3f7s36c74ojav2xsz2uib2g3vm",
257
254
  "ipfs://bafybeihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku"
258
- ],
259
- "type": "string",
260
- "minLength": 1,
261
- "pattern": "^ipfs:\\/\\/(?:Qm[1-9A-HJ-NP-Za-km-z]{44}|[bB][a-z2-7]{58,}|[zZ][1-9A-HJ-NP-Za-km-z]{48,})(?:\\/[^\\s]*)?$"
255
+ ]
262
256
  },
263
257
  "mass_id_audit_rules": {
264
- "title": "MassID Audit Rules",
265
- "description": "Audit rules that must be executed to check MassID compliance with the methodology",
266
258
  "minItems": 1,
267
259
  "type": "array",
268
260
  "items": {
269
- "title": "Audit Rule Definition",
270
- "description": "Definition of an audit rule that must be executed for methodology compliance",
271
261
  "type": "object",
272
262
  "properties": {
273
263
  "id": {
264
+ "type": "string",
265
+ "format": "uuid",
266
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
274
267
  "title": "Rule ID",
275
268
  "description": "Unique identifier for the audit rule",
276
269
  "examples": [
277
270
  "ad44dd3f-f176-4b98-bf78-5ee6e77d0530"
278
- ],
279
- "type": "string",
280
- "format": "uuid",
281
- "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
271
+ ]
282
272
  },
283
273
  "slug": {
274
+ "type": "string",
275
+ "minLength": 1,
276
+ "maxLength": 100,
277
+ "pattern": "^[a-z0-9-]+$",
284
278
  "title": "Rule Slug",
285
279
  "description": "URL-friendly identifier for the rule",
286
280
  "examples": [
287
281
  "mass-id-123",
288
282
  "recycled-plastic",
289
283
  "organic-waste"
290
- ],
284
+ ]
285
+ },
286
+ "name": {
291
287
  "type": "string",
292
288
  "minLength": 1,
293
289
  "maxLength": 100,
294
- "pattern": "^[a-z0-9-]+$"
295
- },
296
- "name": {
297
290
  "title": "Rule Name",
298
291
  "description": "Human-readable name of the rule",
299
292
  "examples": [
300
293
  "Waste Mass is Unique",
301
294
  "No Conflicting GasID or Credit"
302
- ],
303
- "type": "string",
304
- "minLength": 1,
305
- "maxLength": 100
295
+ ]
306
296
  },
307
297
  "description": {
298
+ "type": "string",
299
+ "minLength": 10,
300
+ "maxLength": 500,
308
301
  "title": "Rule Description",
309
302
  "description": "Detailed description of what the rule validates and why it is necessary",
310
303
  "examples": [
311
304
  "Validates that each MassID is unique within the system to prevent duplicate entries"
312
- ],
313
- "type": "string",
314
- "minLength": 10,
315
- "maxLength": 500
305
+ ]
316
306
  },
317
307
  "source_code_url": {
308
+ "type": "string",
309
+ "pattern": "^https:\\/\\/github\\.com\\/.*$",
318
310
  "title": "Rule Source Code URL",
319
311
  "description": "GitHub URL pointing to the implementation source code for this rule",
320
312
  "examples": [
321
313
  "https://github.com/carrot-foundation/methodologies/blob/main/bold-carbon/rules/waste-mass-unique.js"
322
- ],
323
- "type": "string",
324
- "pattern": "^https:\\/\\/github\\.com\\/.*$"
314
+ ]
325
315
  },
326
316
  "execution_order": {
317
+ "type": "integer",
318
+ "minimum": 1,
319
+ "maximum": 9007199254740991,
327
320
  "title": "Rule Execution Order",
328
321
  "description": "Sequential order in which this rule must be executed",
329
322
  "examples": [
330
323
  1,
331
324
  123,
332
325
  456
333
- ],
334
- "type": "integer",
335
- "minimum": 1,
336
- "maximum": 9007199254740991
326
+ ]
337
327
  }
338
328
  },
339
329
  "required": [
@@ -344,8 +334,12 @@
344
334
  "source_code_url",
345
335
  "execution_order"
346
336
  ],
347
- "additionalProperties": false
348
- }
337
+ "additionalProperties": false,
338
+ "title": "Audit Rule Definition",
339
+ "description": "Definition of an audit rule that must be executed for methodology compliance"
340
+ },
341
+ "title": "MassID Audit Rules",
342
+ "description": "Audit rules that must be executed to check MassID compliance with the methodology"
349
343
  }
350
344
  },
351
345
  "required": [
@@ -359,7 +353,9 @@
359
353
  "methodology_pdf",
360
354
  "mass_id_audit_rules"
361
355
  ],
362
- "additionalProperties": false
356
+ "additionalProperties": false,
357
+ "title": "Methodology Data",
358
+ "description": "Methodology definition including name, version, documentation, and audit rules"
363
359
  }
364
360
  },
365
361
  "required": [
@@ -370,5 +366,9 @@
370
366
  "external_url",
371
367
  "data"
372
368
  ],
373
- "additionalProperties": false
374
- }
369
+ "additionalProperties": false,
370
+ "title": "Methodology IPFS Record",
371
+ "description": "Methodology metadata stored in IPFS, defining the environmental impact measurement approach including versioning, documentation, and MassID audit rules",
372
+ "$id": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/tags/0.3.0/schemas/ipfs/methodology/methodology.schema.json",
373
+ "version": "0.3.0"
374
+ }
@@ -1,9 +1,9 @@
1
1
  {
2
- "$schema": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/tags/0.2.3/schemas/ipfs/recycled-id/recycled-id.schema.json",
2
+ "$schema": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/tags/0.3.0/schemas/ipfs/recycled-id/recycled-id.schema.json",
3
3
  "schema": {
4
- "hash": "c56a6ba6d3aa602c6d3ce2c27c9e4788734b0d47b2b9f96b6e4b66ad76a980b0",
4
+ "hash": "41a4461ce2b5016f4d8ed198a332e9383ee10cae9eba2477d908456a4e8c7261",
5
5
  "type": "RecycledID",
6
- "version": "0.2.3",
6
+ "version": "0.3.0",
7
7
  "ipfs_uri": "ipfs://bafybeigdyrztvzl5cceubvaxob7iqh6f3f7s36c74ojav2xsz2uib2g3vm"
8
8
  },
9
9
  "environment": {
@@ -12,7 +12,7 @@
12
12
  "data_set_name": "TEST"
13
13
  },
14
14
  "blockchain": {
15
- "token_id": "789",
15
+ "token_id": "300001",
16
16
  "smart_contract_address": "0x742d35cc6634c0532925a3b8d8b5c2d4c7f8e1a9",
17
17
  "chain_id": 80002,
18
18
  "network_name": "Amoy"
@@ -20,13 +20,13 @@
20
20
  "created_at": "2024-12-08T11:32:47.000Z",
21
21
  "external_id": "f47ac10b-58cc-4372-a567-0e02b2c3d489",
22
22
  "external_url": "https://explore.carrot.eco/document/f47ac10b-58cc-4372-a567-0e02b2c3d489",
23
- "audit_data_hash": "299f1f7a7cba7b5efaf53a5fc03c8a9b83e838b9c9bfcf571d2af058a712c0cd",
23
+ "audit_data_hash": "1c67454da356f850da37a0f745340de01f48d192837d96f02a7c494d05d818f7",
24
24
  "viewer_reference": {
25
25
  "ipfs_uri": "ipfs://bafybeigdyrztvzl5cceubvaxob7iqh6f3f7s36c74ojav2xsz2uib2g3vm",
26
26
  "integrity_hash": "87f633634cc4b02f628685651f0a29b7bfa22a0bd841f725c6772dd00a58d489"
27
27
  },
28
- "name": "RecycledID #789 • BOLD Recycling • 3.25t Recycled",
29
- "short_name": "RecycledID #789",
28
+ "name": "RecycledID #300001 • BOLD Recycling • 3.25t Recycled",
29
+ "short_name": "RecycledID #300001",
30
30
  "description": "This RecycledID certifies 3.25 metric tons of organic waste successfully recycled through BOLD Recycling methodology from Brasília, Brazil, producing high-quality compost and organic fertilizer.",
31
31
  "image": "ipfs://bafybeigdyrztvzl5cceubvaxob7iqh6f3f7s36c74ojav2xsz2uib2g3vm",
32
32
  "background_color": "#2D5016",
@@ -80,7 +80,7 @@
80
80
  },
81
81
  {
82
82
  "trait_type": "MassID",
83
- "value": "#1034"
83
+ "value": "#100001"
84
84
  },
85
85
  {
86
86
  "trait_type": "MassID Recycling Date",
@@ -123,7 +123,7 @@
123
123
  },
124
124
  "mass_id": {
125
125
  "external_id": "ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
126
- "token_id": "1034",
126
+ "token_id": "100001",
127
127
  "external_url": "https://explore.carrot.eco/document/ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
128
128
  "ipfs_uri": "ipfs://bafybeigdyrztvzl5cceubvaxob7iqh6f3f7s36c74ojav2xsz2uib2g3vm",
129
129
  "smart_contract_address": "0x1234567890abcdef1234567890abcdef12345678"