@carrot-foundation/schemas 0.1.37 → 0.1.39
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.
- package/dist/index.cjs +1037 -383
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1826 -1276
- package/dist/index.d.ts +1826 -1276
- package/dist/index.js +1017 -384
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/schemas/ipfs/collection/collection.schema.json +3 -2
- package/schemas/ipfs/credit/credit.schema.json +3 -2
- package/schemas/ipfs/credit-purchase-receipt/credit-purchase-receipt.schema.json +103 -99
- package/schemas/ipfs/credit-retirement-receipt/credit-retirement-receipt.example.json +280 -0
- package/schemas/ipfs/credit-retirement-receipt/credit-retirement-receipt.schema.json +1704 -0
- package/schemas/ipfs/gas-id/gas-id.schema.json +3 -2
- package/schemas/ipfs/mass-id/mass-id.schema.json +3 -2
- package/schemas/ipfs/mass-id-audit/mass-id-audit.schema.json +3 -2
- package/schemas/ipfs/methodology/methodology.schema.json +3 -2
- package/schemas/ipfs/recycled-id/recycled-id.schema.json +3 -2
|
@@ -0,0 +1,1704 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "CreditRetirementReceipt NFT IPFS Record",
|
|
4
|
+
"description": "Complete CreditRetirementReceipt NFT IPFS record including attributes and credit retirement data",
|
|
5
|
+
"$id": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/tags/0.1.39/schemas/ipfs/credit-retirement-receipt/credit-retirement-receipt.schema.json",
|
|
6
|
+
"version": "0.1.39",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"properties": {
|
|
9
|
+
"$schema": {
|
|
10
|
+
"title": "JSON Schema URI",
|
|
11
|
+
"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"
|
|
15
|
+
},
|
|
16
|
+
"schema": {
|
|
17
|
+
"type": "object",
|
|
18
|
+
"properties": {
|
|
19
|
+
"hash": {
|
|
20
|
+
"title": "Schema Hash",
|
|
21
|
+
"description": "Keccak256 hash of the JSON Schema this record was validated against",
|
|
22
|
+
"examples": [
|
|
23
|
+
"ac08c3cf2e175e55961d6affdb38bc24591b84ceef7f3707c69ae3d52c148b2f",
|
|
24
|
+
"0xac08c3cf2e175e55961d6affdb38bc24591b84ceef7f3707c69ae3d52c148b2f"
|
|
25
|
+
],
|
|
26
|
+
"anyOf": [
|
|
27
|
+
{
|
|
28
|
+
"title": "Keccak256 Hash",
|
|
29
|
+
"description": "Keccak256 cryptographic hash as hexadecimal string",
|
|
30
|
+
"examples": [
|
|
31
|
+
"ac08c3cf2e175e55961d6affdb38bc24591b84ceef7f3707c69ae3d52c148b2f",
|
|
32
|
+
"b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2"
|
|
33
|
+
],
|
|
34
|
+
"type": "string",
|
|
35
|
+
"pattern": "^[0-9a-fA-F]{64}$"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"type": "string",
|
|
39
|
+
"pattern": "^0x[a-fA-F0-9]{64}$"
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
"type": {
|
|
44
|
+
"title": "CreditRetirementReceipt Schema Type",
|
|
45
|
+
"description": "CreditRetirementReceipt NFT schema type",
|
|
46
|
+
"type": "string",
|
|
47
|
+
"const": "CreditRetirementReceipt"
|
|
48
|
+
},
|
|
49
|
+
"version": {
|
|
50
|
+
"title": "Schema Version",
|
|
51
|
+
"description": "Version of the schema, using semantic versioning",
|
|
52
|
+
"examples": [
|
|
53
|
+
"0.1.0",
|
|
54
|
+
"1.0.0",
|
|
55
|
+
"2.1.3"
|
|
56
|
+
],
|
|
57
|
+
"type": "string",
|
|
58
|
+
"minLength": 1,
|
|
59
|
+
"pattern": "^v?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?$"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"required": [
|
|
63
|
+
"hash",
|
|
64
|
+
"type",
|
|
65
|
+
"version"
|
|
66
|
+
],
|
|
67
|
+
"additionalProperties": false
|
|
68
|
+
},
|
|
69
|
+
"created_at": {
|
|
70
|
+
"title": "Created At",
|
|
71
|
+
"description": "ISO 8601 creation timestamp for this record",
|
|
72
|
+
"examples": [
|
|
73
|
+
"2024-12-05T11:02:47.000Z",
|
|
74
|
+
"2025-02-22T10:35:12.000Z"
|
|
75
|
+
],
|
|
76
|
+
"type": "string",
|
|
77
|
+
"format": "date-time",
|
|
78
|
+
"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))$"
|
|
79
|
+
},
|
|
80
|
+
"external_id": {
|
|
81
|
+
"title": "External ID",
|
|
82
|
+
"description": "Off-chain reference ID (UUID from Carrot backend)",
|
|
83
|
+
"examples": [
|
|
84
|
+
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
85
|
+
"b2c4e6f8-a1b3-4c5d-9e8f-123456789abc"
|
|
86
|
+
],
|
|
87
|
+
"type": "string",
|
|
88
|
+
"format": "uuid",
|
|
89
|
+
"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})$"
|
|
90
|
+
},
|
|
91
|
+
"external_url": {
|
|
92
|
+
"title": "External URL",
|
|
93
|
+
"description": "External URL of the content",
|
|
94
|
+
"examples": [
|
|
95
|
+
"https://explore.carrot.eco/document/ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
96
|
+
"https://carrot.eco/whitepaper.pdf"
|
|
97
|
+
],
|
|
98
|
+
"type": "string",
|
|
99
|
+
"format": "uri"
|
|
100
|
+
},
|
|
101
|
+
"content_hash": {
|
|
102
|
+
"title": "Content Hash",
|
|
103
|
+
"description": "SHA-256 hash of RFC 8785 canonicalized JSON after schema validation",
|
|
104
|
+
"examples": [
|
|
105
|
+
"87f633634cc4b02f628685651f0a29b7bfa22a0bd841f725c6772dd00a58d489",
|
|
106
|
+
"6e83b8e6373847bbdc056549bedda38dc88854ce41ba4fca11e0fc6ce3e07ef6"
|
|
107
|
+
],
|
|
108
|
+
"type": "string",
|
|
109
|
+
"pattern": "^[0-9a-fA-F]{64}$"
|
|
110
|
+
},
|
|
111
|
+
"creator": {
|
|
112
|
+
"title": "Creator",
|
|
113
|
+
"description": "Entity that created this record",
|
|
114
|
+
"type": "object",
|
|
115
|
+
"properties": {
|
|
116
|
+
"name": {
|
|
117
|
+
"title": "Creator Name",
|
|
118
|
+
"description": "Company or individual name that created this record",
|
|
119
|
+
"examples": [
|
|
120
|
+
"Carrot Foundation"
|
|
121
|
+
],
|
|
122
|
+
"type": "string"
|
|
123
|
+
},
|
|
124
|
+
"id": {
|
|
125
|
+
"title": "Creator ID",
|
|
126
|
+
"description": "Unique identifier for the creator",
|
|
127
|
+
"examples": [
|
|
128
|
+
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
129
|
+
"6f520d88-864d-432d-bf9f-5c3166c4818f",
|
|
130
|
+
"f77afa89-1c58-40fd-9bf5-8a86703a8af4"
|
|
131
|
+
],
|
|
132
|
+
"type": "string",
|
|
133
|
+
"format": "uuid",
|
|
134
|
+
"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})$"
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"required": [
|
|
138
|
+
"name",
|
|
139
|
+
"id"
|
|
140
|
+
],
|
|
141
|
+
"additionalProperties": false
|
|
142
|
+
},
|
|
143
|
+
"relationships": {
|
|
144
|
+
"title": "Relationships",
|
|
145
|
+
"description": "References to other IPFS records this record relates to",
|
|
146
|
+
"type": "array",
|
|
147
|
+
"items": {
|
|
148
|
+
"title": "Relationship",
|
|
149
|
+
"description": "Relationship to another IPFS record",
|
|
150
|
+
"type": "object",
|
|
151
|
+
"properties": {
|
|
152
|
+
"target_uri": {
|
|
153
|
+
"title": "Target IPFS URI",
|
|
154
|
+
"description": "Target IPFS URI of the referenced record",
|
|
155
|
+
"examples": [
|
|
156
|
+
"ipfs://QmTy8w65yBXgyfG2ZBg5TrfB2hPjrDQH3RCQFJGkARStJb/mass-id-organic.png",
|
|
157
|
+
"ipfs://QmYjtig7VJQ6XsnUjqqJvj7QaMcCAwtrgNdahSiFofrE7o"
|
|
158
|
+
],
|
|
159
|
+
"type": "string",
|
|
160
|
+
"minLength": 1,
|
|
161
|
+
"pattern": "^ipfs:\\/\\/[a-zA-Z0-9]+(\\/.*)?$"
|
|
162
|
+
},
|
|
163
|
+
"type": {
|
|
164
|
+
"title": "Relationship Type",
|
|
165
|
+
"description": "Type of relationship to the referenced record",
|
|
166
|
+
"examples": [
|
|
167
|
+
"mass-id",
|
|
168
|
+
"collection",
|
|
169
|
+
"credit-purchase-receipt"
|
|
170
|
+
],
|
|
171
|
+
"type": "string",
|
|
172
|
+
"enum": [
|
|
173
|
+
"collection",
|
|
174
|
+
"credit",
|
|
175
|
+
"gas-id",
|
|
176
|
+
"mass-id",
|
|
177
|
+
"mass-id-audit",
|
|
178
|
+
"methodology",
|
|
179
|
+
"credit-purchase-receipt",
|
|
180
|
+
"credit-retirement-receipt",
|
|
181
|
+
"recycled-id"
|
|
182
|
+
]
|
|
183
|
+
},
|
|
184
|
+
"description": {
|
|
185
|
+
"title": "Relationship Description",
|
|
186
|
+
"description": "Human-readable description of the relationship",
|
|
187
|
+
"examples": [
|
|
188
|
+
"This record supersedes the previous version",
|
|
189
|
+
"Related carbon credit batch",
|
|
190
|
+
"Source document for this verification",
|
|
191
|
+
"Child record derived from this parent",
|
|
192
|
+
"Updated version of original record"
|
|
193
|
+
],
|
|
194
|
+
"type": "string"
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
"required": [
|
|
198
|
+
"target_uri",
|
|
199
|
+
"type"
|
|
200
|
+
],
|
|
201
|
+
"additionalProperties": false
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
"environment": {
|
|
205
|
+
"title": "Environment",
|
|
206
|
+
"description": "Environment information",
|
|
207
|
+
"type": "object",
|
|
208
|
+
"properties": {
|
|
209
|
+
"blockchain_network": {
|
|
210
|
+
"title": "Blockchain Network",
|
|
211
|
+
"description": "Blockchain Network Environment",
|
|
212
|
+
"type": "string",
|
|
213
|
+
"enum": [
|
|
214
|
+
"mainnet",
|
|
215
|
+
"testnet"
|
|
216
|
+
]
|
|
217
|
+
},
|
|
218
|
+
"deployment": {
|
|
219
|
+
"title": "Deployment Environment",
|
|
220
|
+
"description": "System environment where this record was generated",
|
|
221
|
+
"type": "string",
|
|
222
|
+
"enum": [
|
|
223
|
+
"production",
|
|
224
|
+
"development",
|
|
225
|
+
"testing"
|
|
226
|
+
]
|
|
227
|
+
},
|
|
228
|
+
"data_set_name": {
|
|
229
|
+
"title": "Data Set Name",
|
|
230
|
+
"description": "Name of the data set for this record",
|
|
231
|
+
"type": "string",
|
|
232
|
+
"enum": [
|
|
233
|
+
"TEST",
|
|
234
|
+
"PROD"
|
|
235
|
+
]
|
|
236
|
+
}
|
|
237
|
+
},
|
|
238
|
+
"required": [
|
|
239
|
+
"blockchain_network",
|
|
240
|
+
"deployment",
|
|
241
|
+
"data_set_name"
|
|
242
|
+
],
|
|
243
|
+
"additionalProperties": false
|
|
244
|
+
},
|
|
245
|
+
"data": {
|
|
246
|
+
"title": "Credit Retirement Receipt Data",
|
|
247
|
+
"description": "Complete data structure for a credit retirement receipt",
|
|
248
|
+
"type": "object",
|
|
249
|
+
"properties": {
|
|
250
|
+
"summary": {
|
|
251
|
+
"title": "Credit Retirement Receipt Summary",
|
|
252
|
+
"description": "Summary totals for the credit retirement including amounts and collections represented",
|
|
253
|
+
"type": "object",
|
|
254
|
+
"properties": {
|
|
255
|
+
"total_certificates": {
|
|
256
|
+
"title": "Total Certificates",
|
|
257
|
+
"description": "Total number of certificates represented in the receipt",
|
|
258
|
+
"examples": [
|
|
259
|
+
1,
|
|
260
|
+
123,
|
|
261
|
+
456
|
|
262
|
+
],
|
|
263
|
+
"type": "integer",
|
|
264
|
+
"minimum": 1,
|
|
265
|
+
"maximum": 9007199254740991
|
|
266
|
+
},
|
|
267
|
+
"credit_symbols": {
|
|
268
|
+
"title": "Credit Symbols",
|
|
269
|
+
"description": "Array of credit token symbols represented in the receipt",
|
|
270
|
+
"minItems": 1,
|
|
271
|
+
"type": "array",
|
|
272
|
+
"items": {
|
|
273
|
+
"title": "Credit Token Symbol",
|
|
274
|
+
"description": "Symbol of the credit token (e.g., C-CARB, C-BIOW)",
|
|
275
|
+
"examples": [
|
|
276
|
+
"C-CARB",
|
|
277
|
+
"C-BIOW"
|
|
278
|
+
],
|
|
279
|
+
"type": "string",
|
|
280
|
+
"minLength": 1,
|
|
281
|
+
"maxLength": 10,
|
|
282
|
+
"pattern": "^[A-Z0-9-]+$"
|
|
283
|
+
}
|
|
284
|
+
},
|
|
285
|
+
"certificate_types": {
|
|
286
|
+
"title": "Certificate Types",
|
|
287
|
+
"description": "Array of certificate types represented in the receipt",
|
|
288
|
+
"minItems": 1,
|
|
289
|
+
"type": "array",
|
|
290
|
+
"items": {
|
|
291
|
+
"type": "string",
|
|
292
|
+
"enum": [
|
|
293
|
+
"GasID",
|
|
294
|
+
"RecycledID"
|
|
295
|
+
]
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
"collection_slugs": {
|
|
299
|
+
"title": "Collection Slugs",
|
|
300
|
+
"description": "Array of collection slugs represented in the receipt",
|
|
301
|
+
"minItems": 1,
|
|
302
|
+
"type": "array",
|
|
303
|
+
"items": {
|
|
304
|
+
"title": "Collection Slug",
|
|
305
|
+
"description": "URL-friendly identifier for a collection",
|
|
306
|
+
"examples": [
|
|
307
|
+
"bold-cold-start-carazinho",
|
|
308
|
+
"bold-brazil"
|
|
309
|
+
],
|
|
310
|
+
"type": "string",
|
|
311
|
+
"minLength": 1,
|
|
312
|
+
"maxLength": 100,
|
|
313
|
+
"pattern": "^[a-z0-9-]+$"
|
|
314
|
+
}
|
|
315
|
+
},
|
|
316
|
+
"total_retirement_amount": {
|
|
317
|
+
"title": "Total Retirement Amount",
|
|
318
|
+
"description": "Total amount of credits retired",
|
|
319
|
+
"examples": [
|
|
320
|
+
0,
|
|
321
|
+
45.2,
|
|
322
|
+
72.5
|
|
323
|
+
],
|
|
324
|
+
"type": "number",
|
|
325
|
+
"minimum": 0
|
|
326
|
+
},
|
|
327
|
+
"retirement_date": {
|
|
328
|
+
"title": "Retirement Date",
|
|
329
|
+
"description": "Date when the retirement occurred (YYYY-MM-DD)",
|
|
330
|
+
"examples": [
|
|
331
|
+
"2024-12-05",
|
|
332
|
+
"2025-02-22",
|
|
333
|
+
"2024-02-10"
|
|
334
|
+
],
|
|
335
|
+
"type": "string",
|
|
336
|
+
"format": "date",
|
|
337
|
+
"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])))$"
|
|
338
|
+
}
|
|
339
|
+
},
|
|
340
|
+
"required": [
|
|
341
|
+
"total_certificates",
|
|
342
|
+
"credit_symbols",
|
|
343
|
+
"certificate_types",
|
|
344
|
+
"collection_slugs",
|
|
345
|
+
"total_retirement_amount",
|
|
346
|
+
"retirement_date"
|
|
347
|
+
],
|
|
348
|
+
"additionalProperties": false
|
|
349
|
+
},
|
|
350
|
+
"beneficiary": {
|
|
351
|
+
"title": "Beneficiary",
|
|
352
|
+
"description": "Beneficiary receiving the retirement benefit",
|
|
353
|
+
"type": "object",
|
|
354
|
+
"properties": {
|
|
355
|
+
"beneficiary_id": {
|
|
356
|
+
"title": "Retirement Beneficiary ID",
|
|
357
|
+
"description": "UUID identifying the beneficiary of the retirement (bytes16 normalized to UUID)",
|
|
358
|
+
"examples": [
|
|
359
|
+
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
360
|
+
"b2c4e6f8-a1b3-4c5d-9e8f-123456789abc"
|
|
361
|
+
],
|
|
362
|
+
"type": "string",
|
|
363
|
+
"format": "uuid",
|
|
364
|
+
"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})$"
|
|
365
|
+
},
|
|
366
|
+
"identity": {
|
|
367
|
+
"title": "Identity",
|
|
368
|
+
"description": "Participant identity information",
|
|
369
|
+
"type": "object",
|
|
370
|
+
"properties": {
|
|
371
|
+
"name": {
|
|
372
|
+
"title": "Identity Name",
|
|
373
|
+
"description": "Display name for the participant",
|
|
374
|
+
"examples": [
|
|
375
|
+
"EcoTech Solutions Inc.",
|
|
376
|
+
"Climate Action Corp"
|
|
377
|
+
],
|
|
378
|
+
"type": "string",
|
|
379
|
+
"minLength": 1,
|
|
380
|
+
"maxLength": 100
|
|
381
|
+
},
|
|
382
|
+
"external_id": {
|
|
383
|
+
"title": "Identity External ID",
|
|
384
|
+
"description": "External identifier for the participant",
|
|
385
|
+
"examples": [
|
|
386
|
+
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
387
|
+
"b2c4e6f8-a1b3-4c5d-9e8f-123456789abc"
|
|
388
|
+
],
|
|
389
|
+
"type": "string",
|
|
390
|
+
"format": "uuid",
|
|
391
|
+
"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})$"
|
|
392
|
+
},
|
|
393
|
+
"external_url": {
|
|
394
|
+
"title": "Identity External URL",
|
|
395
|
+
"description": "External URL for the participant profile",
|
|
396
|
+
"examples": [
|
|
397
|
+
"https://explore.carrot.eco/document/ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
398
|
+
"https://carrot.eco/whitepaper.pdf"
|
|
399
|
+
],
|
|
400
|
+
"type": "string",
|
|
401
|
+
"format": "uri"
|
|
402
|
+
}
|
|
403
|
+
},
|
|
404
|
+
"required": [
|
|
405
|
+
"name",
|
|
406
|
+
"external_id",
|
|
407
|
+
"external_url"
|
|
408
|
+
],
|
|
409
|
+
"additionalProperties": false
|
|
410
|
+
}
|
|
411
|
+
},
|
|
412
|
+
"required": [
|
|
413
|
+
"beneficiary_id",
|
|
414
|
+
"identity"
|
|
415
|
+
],
|
|
416
|
+
"additionalProperties": false
|
|
417
|
+
},
|
|
418
|
+
"credit_holder": {
|
|
419
|
+
"title": "Credit Holder",
|
|
420
|
+
"description": "Credit holder wallet and optional identity information",
|
|
421
|
+
"type": "object",
|
|
422
|
+
"properties": {
|
|
423
|
+
"wallet_address": {
|
|
424
|
+
"title": "Credit Holder Wallet Address",
|
|
425
|
+
"description": "Ethereum address of the credit holder surrendering credits",
|
|
426
|
+
"examples": [
|
|
427
|
+
"0x1234567890abcdef1234567890abcdef12345678",
|
|
428
|
+
"0xabcdef1234567890abcdef1234567890abcdef12"
|
|
429
|
+
],
|
|
430
|
+
"type": "string",
|
|
431
|
+
"pattern": "^0x[a-f0-9]{40}$"
|
|
432
|
+
},
|
|
433
|
+
"identity": {
|
|
434
|
+
"title": "Identity",
|
|
435
|
+
"description": "Participant identity information",
|
|
436
|
+
"type": "object",
|
|
437
|
+
"properties": {
|
|
438
|
+
"name": {
|
|
439
|
+
"title": "Identity Name",
|
|
440
|
+
"description": "Display name for the participant",
|
|
441
|
+
"examples": [
|
|
442
|
+
"EcoTech Solutions Inc.",
|
|
443
|
+
"Climate Action Corp"
|
|
444
|
+
],
|
|
445
|
+
"type": "string",
|
|
446
|
+
"minLength": 1,
|
|
447
|
+
"maxLength": 100
|
|
448
|
+
},
|
|
449
|
+
"external_id": {
|
|
450
|
+
"title": "Identity External ID",
|
|
451
|
+
"description": "External identifier for the participant",
|
|
452
|
+
"examples": [
|
|
453
|
+
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
454
|
+
"b2c4e6f8-a1b3-4c5d-9e8f-123456789abc"
|
|
455
|
+
],
|
|
456
|
+
"type": "string",
|
|
457
|
+
"format": "uuid",
|
|
458
|
+
"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})$"
|
|
459
|
+
},
|
|
460
|
+
"external_url": {
|
|
461
|
+
"title": "Identity External URL",
|
|
462
|
+
"description": "External URL for the participant profile",
|
|
463
|
+
"examples": [
|
|
464
|
+
"https://explore.carrot.eco/document/ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
465
|
+
"https://carrot.eco/whitepaper.pdf"
|
|
466
|
+
],
|
|
467
|
+
"type": "string",
|
|
468
|
+
"format": "uri"
|
|
469
|
+
}
|
|
470
|
+
},
|
|
471
|
+
"required": [
|
|
472
|
+
"name",
|
|
473
|
+
"external_id",
|
|
474
|
+
"external_url"
|
|
475
|
+
],
|
|
476
|
+
"additionalProperties": false
|
|
477
|
+
}
|
|
478
|
+
},
|
|
479
|
+
"required": [
|
|
480
|
+
"wallet_address"
|
|
481
|
+
],
|
|
482
|
+
"additionalProperties": false
|
|
483
|
+
},
|
|
484
|
+
"collections": {
|
|
485
|
+
"title": "Collections",
|
|
486
|
+
"description": "Collections included in the retirement",
|
|
487
|
+
"minItems": 1,
|
|
488
|
+
"type": "array",
|
|
489
|
+
"items": {
|
|
490
|
+
"title": "Collection",
|
|
491
|
+
"description": "Collection included in the retirement",
|
|
492
|
+
"type": "object",
|
|
493
|
+
"properties": {
|
|
494
|
+
"slug": {
|
|
495
|
+
"title": "Collection Slug",
|
|
496
|
+
"description": "URL-friendly identifier for a collection",
|
|
497
|
+
"examples": [
|
|
498
|
+
"bold-cold-start-carazinho",
|
|
499
|
+
"bold-brazil"
|
|
500
|
+
],
|
|
501
|
+
"type": "string",
|
|
502
|
+
"minLength": 1,
|
|
503
|
+
"maxLength": 100,
|
|
504
|
+
"pattern": "^[a-z0-9-]+$"
|
|
505
|
+
},
|
|
506
|
+
"external_id": {
|
|
507
|
+
"title": "Collection External ID",
|
|
508
|
+
"description": "External identifier for the collection",
|
|
509
|
+
"examples": [
|
|
510
|
+
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
511
|
+
"b2c4e6f8-a1b3-4c5d-9e8f-123456789abc"
|
|
512
|
+
],
|
|
513
|
+
"type": "string",
|
|
514
|
+
"format": "uuid",
|
|
515
|
+
"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})$"
|
|
516
|
+
},
|
|
517
|
+
"name": {
|
|
518
|
+
"title": "Collection Name",
|
|
519
|
+
"description": "Display name of the collection",
|
|
520
|
+
"examples": [
|
|
521
|
+
"BOLD Cold Start - Carazinho",
|
|
522
|
+
"BOLD Brazil"
|
|
523
|
+
],
|
|
524
|
+
"type": "string",
|
|
525
|
+
"minLength": 1,
|
|
526
|
+
"maxLength": 150
|
|
527
|
+
},
|
|
528
|
+
"external_url": {
|
|
529
|
+
"title": "Collection External URL",
|
|
530
|
+
"description": "External URL for the collection",
|
|
531
|
+
"examples": [
|
|
532
|
+
"https://explore.carrot.eco/document/ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
533
|
+
"https://carrot.eco/whitepaper.pdf"
|
|
534
|
+
],
|
|
535
|
+
"type": "string",
|
|
536
|
+
"format": "uri"
|
|
537
|
+
},
|
|
538
|
+
"uri": {
|
|
539
|
+
"title": "Collection URI",
|
|
540
|
+
"description": "IPFS URI for the collection metadata",
|
|
541
|
+
"examples": [
|
|
542
|
+
"ipfs://QmTy8w65yBXgyfG2ZBg5TrfB2hPjrDQH3RCQFJGkARStJb/mass-id-organic.png",
|
|
543
|
+
"ipfs://QmYjtig7VJQ6XsnUjqqJvj7QaMcCAwtrgNdahSiFofrE7o"
|
|
544
|
+
],
|
|
545
|
+
"type": "string",
|
|
546
|
+
"minLength": 1,
|
|
547
|
+
"pattern": "^ipfs:\\/\\/[a-zA-Z0-9]+(\\/.*)?$"
|
|
548
|
+
},
|
|
549
|
+
"amount": {
|
|
550
|
+
"title": "Collection Retirement Amount",
|
|
551
|
+
"description": "Total credits retired from this collection",
|
|
552
|
+
"examples": [
|
|
553
|
+
0,
|
|
554
|
+
45.2,
|
|
555
|
+
72.5
|
|
556
|
+
],
|
|
557
|
+
"type": "number",
|
|
558
|
+
"minimum": 0
|
|
559
|
+
}
|
|
560
|
+
},
|
|
561
|
+
"required": [
|
|
562
|
+
"slug",
|
|
563
|
+
"external_id",
|
|
564
|
+
"name",
|
|
565
|
+
"external_url",
|
|
566
|
+
"uri",
|
|
567
|
+
"amount"
|
|
568
|
+
],
|
|
569
|
+
"additionalProperties": false
|
|
570
|
+
}
|
|
571
|
+
},
|
|
572
|
+
"credits": {
|
|
573
|
+
"title": "Credits",
|
|
574
|
+
"description": "Credits included in the retirement",
|
|
575
|
+
"minItems": 1,
|
|
576
|
+
"type": "array",
|
|
577
|
+
"items": {
|
|
578
|
+
"title": "Credit",
|
|
579
|
+
"description": "Credit token retired in this receipt",
|
|
580
|
+
"type": "object",
|
|
581
|
+
"properties": {
|
|
582
|
+
"slug": {
|
|
583
|
+
"title": "Credit Slug",
|
|
584
|
+
"description": "URL-friendly identifier for the credit",
|
|
585
|
+
"examples": [
|
|
586
|
+
"mass-id-123",
|
|
587
|
+
"recycled-plastic",
|
|
588
|
+
"organic-waste"
|
|
589
|
+
],
|
|
590
|
+
"type": "string",
|
|
591
|
+
"minLength": 1,
|
|
592
|
+
"maxLength": 100,
|
|
593
|
+
"pattern": "^[a-z0-9-]+$"
|
|
594
|
+
},
|
|
595
|
+
"symbol": {
|
|
596
|
+
"title": "Credit Token Symbol",
|
|
597
|
+
"description": "Symbol of the credit token",
|
|
598
|
+
"examples": [
|
|
599
|
+
"CARBON",
|
|
600
|
+
"ORGANIC",
|
|
601
|
+
"C-CARB",
|
|
602
|
+
"C-BIOW"
|
|
603
|
+
],
|
|
604
|
+
"type": "string",
|
|
605
|
+
"minLength": 1,
|
|
606
|
+
"maxLength": 10,
|
|
607
|
+
"pattern": "^[A-Z0-9-]+$"
|
|
608
|
+
},
|
|
609
|
+
"external_id": {
|
|
610
|
+
"title": "Credit External ID",
|
|
611
|
+
"description": "External identifier for the credit",
|
|
612
|
+
"examples": [
|
|
613
|
+
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
614
|
+
"b2c4e6f8-a1b3-4c5d-9e8f-123456789abc"
|
|
615
|
+
],
|
|
616
|
+
"type": "string",
|
|
617
|
+
"format": "uuid",
|
|
618
|
+
"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})$"
|
|
619
|
+
},
|
|
620
|
+
"external_url": {
|
|
621
|
+
"title": "Credit External URL",
|
|
622
|
+
"description": "External URL for the credit",
|
|
623
|
+
"examples": [
|
|
624
|
+
"https://explore.carrot.eco/document/ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
625
|
+
"https://carrot.eco/whitepaper.pdf"
|
|
626
|
+
],
|
|
627
|
+
"type": "string",
|
|
628
|
+
"format": "uri"
|
|
629
|
+
},
|
|
630
|
+
"uri": {
|
|
631
|
+
"title": "Credit URI",
|
|
632
|
+
"description": "IPFS URI for the credit details",
|
|
633
|
+
"examples": [
|
|
634
|
+
"ipfs://QmTy8w65yBXgyfG2ZBg5TrfB2hPjrDQH3RCQFJGkARStJb/mass-id-organic.png",
|
|
635
|
+
"ipfs://QmYjtig7VJQ6XsnUjqqJvj7QaMcCAwtrgNdahSiFofrE7o"
|
|
636
|
+
],
|
|
637
|
+
"type": "string",
|
|
638
|
+
"minLength": 1,
|
|
639
|
+
"pattern": "^ipfs:\\/\\/[a-zA-Z0-9]+(\\/.*)?$"
|
|
640
|
+
},
|
|
641
|
+
"smart_contract": {
|
|
642
|
+
"title": "Smart Contract",
|
|
643
|
+
"description": "Smart contract details for on-chain references",
|
|
644
|
+
"type": "object",
|
|
645
|
+
"properties": {
|
|
646
|
+
"address": {
|
|
647
|
+
"title": "Smart Contract Address",
|
|
648
|
+
"description": "Address of the smart contract",
|
|
649
|
+
"examples": [
|
|
650
|
+
"0x1234567890abcdef1234567890abcdef12345678",
|
|
651
|
+
"0xabcdef1234567890abcdef1234567890abcdef12"
|
|
652
|
+
],
|
|
653
|
+
"type": "string",
|
|
654
|
+
"pattern": "^0x[a-f0-9]{40}$"
|
|
655
|
+
},
|
|
656
|
+
"chain_id": {
|
|
657
|
+
"title": "Chain ID",
|
|
658
|
+
"description": "Blockchain network identifier",
|
|
659
|
+
"examples": [
|
|
660
|
+
1,
|
|
661
|
+
137,
|
|
662
|
+
11155111
|
|
663
|
+
],
|
|
664
|
+
"type": "integer",
|
|
665
|
+
"minimum": 1,
|
|
666
|
+
"maximum": 9007199254740991
|
|
667
|
+
},
|
|
668
|
+
"network_name": {
|
|
669
|
+
"title": "Blockchain Network Name",
|
|
670
|
+
"description": "Name of the blockchain network",
|
|
671
|
+
"examples": [
|
|
672
|
+
"Polygon",
|
|
673
|
+
"Ethereum mainnet",
|
|
674
|
+
"Sepolia"
|
|
675
|
+
],
|
|
676
|
+
"type": "string",
|
|
677
|
+
"minLength": 1,
|
|
678
|
+
"maxLength": 100
|
|
679
|
+
}
|
|
680
|
+
},
|
|
681
|
+
"required": [
|
|
682
|
+
"address",
|
|
683
|
+
"chain_id",
|
|
684
|
+
"network_name"
|
|
685
|
+
],
|
|
686
|
+
"additionalProperties": false
|
|
687
|
+
},
|
|
688
|
+
"amount": {
|
|
689
|
+
"title": "Credit Retirement Amount",
|
|
690
|
+
"description": "Total credits retired for this credit type",
|
|
691
|
+
"examples": [
|
|
692
|
+
0,
|
|
693
|
+
45.2,
|
|
694
|
+
72.5
|
|
695
|
+
],
|
|
696
|
+
"type": "number",
|
|
697
|
+
"minimum": 0
|
|
698
|
+
}
|
|
699
|
+
},
|
|
700
|
+
"required": [
|
|
701
|
+
"slug",
|
|
702
|
+
"symbol",
|
|
703
|
+
"external_id",
|
|
704
|
+
"external_url",
|
|
705
|
+
"uri",
|
|
706
|
+
"smart_contract",
|
|
707
|
+
"amount"
|
|
708
|
+
],
|
|
709
|
+
"additionalProperties": false
|
|
710
|
+
}
|
|
711
|
+
},
|
|
712
|
+
"certificates": {
|
|
713
|
+
"title": "Certificates",
|
|
714
|
+
"description": "Certificates retired in this receipt",
|
|
715
|
+
"minItems": 1,
|
|
716
|
+
"type": "array",
|
|
717
|
+
"items": {
|
|
718
|
+
"title": "Certificate",
|
|
719
|
+
"description": "Certificate associated with the retirement",
|
|
720
|
+
"type": "object",
|
|
721
|
+
"properties": {
|
|
722
|
+
"token_id": {
|
|
723
|
+
"title": "Certificate Token ID",
|
|
724
|
+
"description": "Token ID of the certificate",
|
|
725
|
+
"examples": [
|
|
726
|
+
"123",
|
|
727
|
+
"456789",
|
|
728
|
+
"1000000"
|
|
729
|
+
],
|
|
730
|
+
"type": "string",
|
|
731
|
+
"minLength": 1,
|
|
732
|
+
"pattern": "^\\d+$"
|
|
733
|
+
},
|
|
734
|
+
"type": {
|
|
735
|
+
"title": "Certificate Type",
|
|
736
|
+
"description": "Type of certificate (e.g., GasID, RecycledID)",
|
|
737
|
+
"type": "string",
|
|
738
|
+
"enum": [
|
|
739
|
+
"GasID",
|
|
740
|
+
"RecycledID"
|
|
741
|
+
]
|
|
742
|
+
},
|
|
743
|
+
"external_id": {
|
|
744
|
+
"title": "Certificate External ID",
|
|
745
|
+
"description": "External identifier for the certificate",
|
|
746
|
+
"examples": [
|
|
747
|
+
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
748
|
+
"b2c4e6f8-a1b3-4c5d-9e8f-123456789abc"
|
|
749
|
+
],
|
|
750
|
+
"type": "string",
|
|
751
|
+
"format": "uuid",
|
|
752
|
+
"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})$"
|
|
753
|
+
},
|
|
754
|
+
"external_url": {
|
|
755
|
+
"title": "Certificate External URL",
|
|
756
|
+
"description": "External URL for the certificate",
|
|
757
|
+
"examples": [
|
|
758
|
+
"https://explore.carrot.eco/document/ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
759
|
+
"https://carrot.eco/whitepaper.pdf"
|
|
760
|
+
],
|
|
761
|
+
"type": "string",
|
|
762
|
+
"format": "uri"
|
|
763
|
+
},
|
|
764
|
+
"uri": {
|
|
765
|
+
"title": "Certificate URI",
|
|
766
|
+
"description": "IPFS URI for the certificate metadata",
|
|
767
|
+
"examples": [
|
|
768
|
+
"ipfs://QmTy8w65yBXgyfG2ZBg5TrfB2hPjrDQH3RCQFJGkARStJb/mass-id-organic.png",
|
|
769
|
+
"ipfs://QmYjtig7VJQ6XsnUjqqJvj7QaMcCAwtrgNdahSiFofrE7o"
|
|
770
|
+
],
|
|
771
|
+
"type": "string",
|
|
772
|
+
"minLength": 1,
|
|
773
|
+
"pattern": "^ipfs:\\/\\/[a-zA-Z0-9]+(\\/.*)?$"
|
|
774
|
+
},
|
|
775
|
+
"smart_contract": {
|
|
776
|
+
"title": "Smart Contract",
|
|
777
|
+
"description": "Smart contract details for on-chain references",
|
|
778
|
+
"type": "object",
|
|
779
|
+
"properties": {
|
|
780
|
+
"address": {
|
|
781
|
+
"title": "Smart Contract Address",
|
|
782
|
+
"description": "Address of the smart contract",
|
|
783
|
+
"examples": [
|
|
784
|
+
"0x1234567890abcdef1234567890abcdef12345678",
|
|
785
|
+
"0xabcdef1234567890abcdef1234567890abcdef12"
|
|
786
|
+
],
|
|
787
|
+
"type": "string",
|
|
788
|
+
"pattern": "^0x[a-f0-9]{40}$"
|
|
789
|
+
},
|
|
790
|
+
"chain_id": {
|
|
791
|
+
"title": "Chain ID",
|
|
792
|
+
"description": "Blockchain network identifier",
|
|
793
|
+
"examples": [
|
|
794
|
+
1,
|
|
795
|
+
137,
|
|
796
|
+
11155111
|
|
797
|
+
],
|
|
798
|
+
"type": "integer",
|
|
799
|
+
"minimum": 1,
|
|
800
|
+
"maximum": 9007199254740991
|
|
801
|
+
},
|
|
802
|
+
"network_name": {
|
|
803
|
+
"title": "Blockchain Network Name",
|
|
804
|
+
"description": "Name of the blockchain network",
|
|
805
|
+
"examples": [
|
|
806
|
+
"Polygon",
|
|
807
|
+
"Ethereum mainnet",
|
|
808
|
+
"Sepolia"
|
|
809
|
+
],
|
|
810
|
+
"type": "string",
|
|
811
|
+
"minLength": 1,
|
|
812
|
+
"maxLength": 100
|
|
813
|
+
}
|
|
814
|
+
},
|
|
815
|
+
"required": [
|
|
816
|
+
"address",
|
|
817
|
+
"chain_id",
|
|
818
|
+
"network_name"
|
|
819
|
+
],
|
|
820
|
+
"additionalProperties": false
|
|
821
|
+
},
|
|
822
|
+
"collection_slug": {
|
|
823
|
+
"title": "Collection Slug",
|
|
824
|
+
"description": "Slug of the collection this certificate belongs to",
|
|
825
|
+
"examples": [
|
|
826
|
+
"bold-cold-start-carazinho",
|
|
827
|
+
"bold-brazil"
|
|
828
|
+
],
|
|
829
|
+
"type": "string",
|
|
830
|
+
"minLength": 1,
|
|
831
|
+
"maxLength": 100,
|
|
832
|
+
"pattern": "^[a-z0-9-]+$"
|
|
833
|
+
},
|
|
834
|
+
"total_amount": {
|
|
835
|
+
"title": "Certificate Total Amount",
|
|
836
|
+
"description": "Total credits available in this certificate",
|
|
837
|
+
"examples": [
|
|
838
|
+
0,
|
|
839
|
+
45.2,
|
|
840
|
+
72.5
|
|
841
|
+
],
|
|
842
|
+
"type": "number",
|
|
843
|
+
"minimum": 0
|
|
844
|
+
},
|
|
845
|
+
"mass_id": {
|
|
846
|
+
"title": "MassID Reference with Smart Contract",
|
|
847
|
+
"description": "Reference to a MassID record including smart contract details",
|
|
848
|
+
"type": "object",
|
|
849
|
+
"properties": {
|
|
850
|
+
"external_id": {
|
|
851
|
+
"title": "MassID External ID",
|
|
852
|
+
"description": "Unique identifier for the MassID",
|
|
853
|
+
"examples": [
|
|
854
|
+
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
855
|
+
"b2c4e6f8-a1b3-4c5d-9e8f-123456789abc"
|
|
856
|
+
],
|
|
857
|
+
"type": "string",
|
|
858
|
+
"format": "uuid",
|
|
859
|
+
"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})$"
|
|
860
|
+
},
|
|
861
|
+
"token_id": {
|
|
862
|
+
"title": "MassID Token ID",
|
|
863
|
+
"description": "NFT token ID of the MassID",
|
|
864
|
+
"examples": [
|
|
865
|
+
"123",
|
|
866
|
+
"456789",
|
|
867
|
+
"1000000"
|
|
868
|
+
],
|
|
869
|
+
"type": "string",
|
|
870
|
+
"minLength": 1,
|
|
871
|
+
"pattern": "^\\d+$"
|
|
872
|
+
},
|
|
873
|
+
"external_url": {
|
|
874
|
+
"title": "MassID External URL",
|
|
875
|
+
"description": "URL to view the MassID on Carrot Explorer",
|
|
876
|
+
"examples": [
|
|
877
|
+
"https://explore.carrot.eco/document/ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
878
|
+
"https://carrot.eco/whitepaper.pdf"
|
|
879
|
+
],
|
|
880
|
+
"type": "string",
|
|
881
|
+
"format": "uri"
|
|
882
|
+
},
|
|
883
|
+
"uri": {
|
|
884
|
+
"title": "MassID IPFS URI",
|
|
885
|
+
"description": "IPFS URI of the MassID record",
|
|
886
|
+
"examples": [
|
|
887
|
+
"ipfs://QmTy8w65yBXgyfG2ZBg5TrfB2hPjrDQH3RCQFJGkARStJb/mass-id-organic.png",
|
|
888
|
+
"ipfs://QmYjtig7VJQ6XsnUjqqJvj7QaMcCAwtrgNdahSiFofrE7o"
|
|
889
|
+
],
|
|
890
|
+
"type": "string",
|
|
891
|
+
"minLength": 1,
|
|
892
|
+
"pattern": "^ipfs:\\/\\/[a-zA-Z0-9]+(\\/.*)?$"
|
|
893
|
+
},
|
|
894
|
+
"smart_contract": {
|
|
895
|
+
"title": "Smart Contract",
|
|
896
|
+
"description": "Smart contract details for on-chain references",
|
|
897
|
+
"type": "object",
|
|
898
|
+
"properties": {
|
|
899
|
+
"address": {
|
|
900
|
+
"title": "Smart Contract Address",
|
|
901
|
+
"description": "Address of the smart contract",
|
|
902
|
+
"examples": [
|
|
903
|
+
"0x1234567890abcdef1234567890abcdef12345678",
|
|
904
|
+
"0xabcdef1234567890abcdef1234567890abcdef12"
|
|
905
|
+
],
|
|
906
|
+
"type": "string",
|
|
907
|
+
"pattern": "^0x[a-f0-9]{40}$"
|
|
908
|
+
},
|
|
909
|
+
"chain_id": {
|
|
910
|
+
"title": "Chain ID",
|
|
911
|
+
"description": "Blockchain network identifier",
|
|
912
|
+
"examples": [
|
|
913
|
+
1,
|
|
914
|
+
137,
|
|
915
|
+
11155111
|
|
916
|
+
],
|
|
917
|
+
"type": "integer",
|
|
918
|
+
"minimum": 1,
|
|
919
|
+
"maximum": 9007199254740991
|
|
920
|
+
},
|
|
921
|
+
"network_name": {
|
|
922
|
+
"title": "Blockchain Network Name",
|
|
923
|
+
"description": "Name of the blockchain network",
|
|
924
|
+
"examples": [
|
|
925
|
+
"Polygon",
|
|
926
|
+
"Ethereum mainnet",
|
|
927
|
+
"Sepolia"
|
|
928
|
+
],
|
|
929
|
+
"type": "string",
|
|
930
|
+
"minLength": 1,
|
|
931
|
+
"maxLength": 100
|
|
932
|
+
}
|
|
933
|
+
},
|
|
934
|
+
"required": [
|
|
935
|
+
"address",
|
|
936
|
+
"chain_id",
|
|
937
|
+
"network_name"
|
|
938
|
+
],
|
|
939
|
+
"additionalProperties": false
|
|
940
|
+
}
|
|
941
|
+
},
|
|
942
|
+
"required": [
|
|
943
|
+
"external_id",
|
|
944
|
+
"token_id",
|
|
945
|
+
"external_url",
|
|
946
|
+
"uri",
|
|
947
|
+
"smart_contract"
|
|
948
|
+
],
|
|
949
|
+
"additionalProperties": false
|
|
950
|
+
},
|
|
951
|
+
"retired_amount": {
|
|
952
|
+
"title": "Certificate Retired Amount",
|
|
953
|
+
"description": "Credits retired from this certificate",
|
|
954
|
+
"examples": [
|
|
955
|
+
0,
|
|
956
|
+
45.2,
|
|
957
|
+
72.5
|
|
958
|
+
],
|
|
959
|
+
"type": "number",
|
|
960
|
+
"minimum": 0
|
|
961
|
+
},
|
|
962
|
+
"credits_retired": {
|
|
963
|
+
"title": "Credits Retired",
|
|
964
|
+
"description": "Breakdown of credits retired from this certificate by symbol",
|
|
965
|
+
"minItems": 1,
|
|
966
|
+
"type": "array",
|
|
967
|
+
"items": {
|
|
968
|
+
"title": "Certificate Credit Retirement",
|
|
969
|
+
"description": "Credit retirement breakdown for a certificate",
|
|
970
|
+
"type": "object",
|
|
971
|
+
"properties": {
|
|
972
|
+
"credit_symbol": {
|
|
973
|
+
"title": "Credit Token Symbol",
|
|
974
|
+
"description": "Symbol of the credit token retired from the certificate",
|
|
975
|
+
"examples": [
|
|
976
|
+
"C-CARB",
|
|
977
|
+
"C-BIOW"
|
|
978
|
+
],
|
|
979
|
+
"type": "string",
|
|
980
|
+
"minLength": 1,
|
|
981
|
+
"maxLength": 10,
|
|
982
|
+
"pattern": "^[A-Z0-9-]+$"
|
|
983
|
+
},
|
|
984
|
+
"credit_slug": {
|
|
985
|
+
"title": "Credit Slug",
|
|
986
|
+
"description": "Slug of the credit type retired from the certificate",
|
|
987
|
+
"examples": [
|
|
988
|
+
"carbon",
|
|
989
|
+
"organic"
|
|
990
|
+
],
|
|
991
|
+
"type": "string",
|
|
992
|
+
"minLength": 1,
|
|
993
|
+
"maxLength": 100,
|
|
994
|
+
"pattern": "^[a-z0-9-]+$"
|
|
995
|
+
},
|
|
996
|
+
"amount": {
|
|
997
|
+
"title": "Retired Credit Amount",
|
|
998
|
+
"description": "Credits retired of this type from the certificate",
|
|
999
|
+
"examples": [
|
|
1000
|
+
0,
|
|
1001
|
+
45.2,
|
|
1002
|
+
72.5
|
|
1003
|
+
],
|
|
1004
|
+
"type": "number",
|
|
1005
|
+
"minimum": 0
|
|
1006
|
+
},
|
|
1007
|
+
"external_id": {
|
|
1008
|
+
"title": "Retired Credit External ID",
|
|
1009
|
+
"description": "External identifier for the retired credit entry",
|
|
1010
|
+
"examples": [
|
|
1011
|
+
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
1012
|
+
"b2c4e6f8-a1b3-4c5d-9e8f-123456789abc"
|
|
1013
|
+
],
|
|
1014
|
+
"type": "string",
|
|
1015
|
+
"format": "uuid",
|
|
1016
|
+
"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})$"
|
|
1017
|
+
},
|
|
1018
|
+
"external_url": {
|
|
1019
|
+
"title": "Retired Credit External URL",
|
|
1020
|
+
"description": "External URL for the retired credit entry",
|
|
1021
|
+
"examples": [
|
|
1022
|
+
"https://explore.carrot.eco/document/ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
1023
|
+
"https://carrot.eco/whitepaper.pdf"
|
|
1024
|
+
],
|
|
1025
|
+
"type": "string",
|
|
1026
|
+
"format": "uri"
|
|
1027
|
+
}
|
|
1028
|
+
},
|
|
1029
|
+
"required": [
|
|
1030
|
+
"credit_symbol",
|
|
1031
|
+
"credit_slug",
|
|
1032
|
+
"amount",
|
|
1033
|
+
"external_id",
|
|
1034
|
+
"external_url"
|
|
1035
|
+
],
|
|
1036
|
+
"additionalProperties": false
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
1039
|
+
},
|
|
1040
|
+
"required": [
|
|
1041
|
+
"token_id",
|
|
1042
|
+
"type",
|
|
1043
|
+
"external_id",
|
|
1044
|
+
"external_url",
|
|
1045
|
+
"uri",
|
|
1046
|
+
"smart_contract",
|
|
1047
|
+
"collection_slug",
|
|
1048
|
+
"total_amount",
|
|
1049
|
+
"mass_id",
|
|
1050
|
+
"retired_amount",
|
|
1051
|
+
"credits_retired"
|
|
1052
|
+
],
|
|
1053
|
+
"additionalProperties": false
|
|
1054
|
+
}
|
|
1055
|
+
},
|
|
1056
|
+
"purchase_receipt": {
|
|
1057
|
+
"title": "Credit Purchase Receipt Reference",
|
|
1058
|
+
"description": "Reference to the credit purchase receipt when retirement occurs during purchase",
|
|
1059
|
+
"type": "object",
|
|
1060
|
+
"properties": {
|
|
1061
|
+
"token_id": {
|
|
1062
|
+
"title": "Purchase Receipt Token ID",
|
|
1063
|
+
"description": "Token ID of the credit purchase receipt",
|
|
1064
|
+
"examples": [
|
|
1065
|
+
"123",
|
|
1066
|
+
"456789",
|
|
1067
|
+
"1000000"
|
|
1068
|
+
],
|
|
1069
|
+
"type": "string",
|
|
1070
|
+
"minLength": 1,
|
|
1071
|
+
"pattern": "^\\d+$"
|
|
1072
|
+
},
|
|
1073
|
+
"external_id": {
|
|
1074
|
+
"title": "Purchase Receipt External ID",
|
|
1075
|
+
"description": "External identifier for the purchase receipt",
|
|
1076
|
+
"examples": [
|
|
1077
|
+
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
1078
|
+
"b2c4e6f8-a1b3-4c5d-9e8f-123456789abc"
|
|
1079
|
+
],
|
|
1080
|
+
"type": "string",
|
|
1081
|
+
"format": "uuid",
|
|
1082
|
+
"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})$"
|
|
1083
|
+
},
|
|
1084
|
+
"external_url": {
|
|
1085
|
+
"title": "Purchase Receipt External URL",
|
|
1086
|
+
"description": "External URL for the purchase receipt",
|
|
1087
|
+
"examples": [
|
|
1088
|
+
"https://explore.carrot.eco/document/ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
1089
|
+
"https://carrot.eco/whitepaper.pdf"
|
|
1090
|
+
],
|
|
1091
|
+
"type": "string",
|
|
1092
|
+
"format": "uri"
|
|
1093
|
+
},
|
|
1094
|
+
"uri": {
|
|
1095
|
+
"title": "Purchase Receipt URI",
|
|
1096
|
+
"description": "IPFS URI for the purchase receipt metadata",
|
|
1097
|
+
"examples": [
|
|
1098
|
+
"ipfs://QmTy8w65yBXgyfG2ZBg5TrfB2hPjrDQH3RCQFJGkARStJb/mass-id-organic.png",
|
|
1099
|
+
"ipfs://QmYjtig7VJQ6XsnUjqqJvj7QaMcCAwtrgNdahSiFofrE7o"
|
|
1100
|
+
],
|
|
1101
|
+
"type": "string",
|
|
1102
|
+
"minLength": 1,
|
|
1103
|
+
"pattern": "^ipfs:\\/\\/[a-zA-Z0-9]+(\\/.*)?$"
|
|
1104
|
+
},
|
|
1105
|
+
"smart_contract": {
|
|
1106
|
+
"title": "Smart Contract",
|
|
1107
|
+
"description": "Smart contract details for on-chain references",
|
|
1108
|
+
"type": "object",
|
|
1109
|
+
"properties": {
|
|
1110
|
+
"address": {
|
|
1111
|
+
"title": "Smart Contract Address",
|
|
1112
|
+
"description": "Address of the smart contract",
|
|
1113
|
+
"examples": [
|
|
1114
|
+
"0x1234567890abcdef1234567890abcdef12345678",
|
|
1115
|
+
"0xabcdef1234567890abcdef1234567890abcdef12"
|
|
1116
|
+
],
|
|
1117
|
+
"type": "string",
|
|
1118
|
+
"pattern": "^0x[a-f0-9]{40}$"
|
|
1119
|
+
},
|
|
1120
|
+
"chain_id": {
|
|
1121
|
+
"title": "Chain ID",
|
|
1122
|
+
"description": "Blockchain network identifier",
|
|
1123
|
+
"examples": [
|
|
1124
|
+
1,
|
|
1125
|
+
137,
|
|
1126
|
+
11155111
|
|
1127
|
+
],
|
|
1128
|
+
"type": "integer",
|
|
1129
|
+
"minimum": 1,
|
|
1130
|
+
"maximum": 9007199254740991
|
|
1131
|
+
},
|
|
1132
|
+
"network_name": {
|
|
1133
|
+
"title": "Blockchain Network Name",
|
|
1134
|
+
"description": "Name of the blockchain network",
|
|
1135
|
+
"examples": [
|
|
1136
|
+
"Polygon",
|
|
1137
|
+
"Ethereum mainnet",
|
|
1138
|
+
"Sepolia"
|
|
1139
|
+
],
|
|
1140
|
+
"type": "string",
|
|
1141
|
+
"minLength": 1,
|
|
1142
|
+
"maxLength": 100
|
|
1143
|
+
}
|
|
1144
|
+
},
|
|
1145
|
+
"required": [
|
|
1146
|
+
"address",
|
|
1147
|
+
"chain_id",
|
|
1148
|
+
"network_name"
|
|
1149
|
+
],
|
|
1150
|
+
"additionalProperties": false
|
|
1151
|
+
}
|
|
1152
|
+
},
|
|
1153
|
+
"required": [
|
|
1154
|
+
"token_id",
|
|
1155
|
+
"external_id",
|
|
1156
|
+
"external_url",
|
|
1157
|
+
"uri",
|
|
1158
|
+
"smart_contract"
|
|
1159
|
+
],
|
|
1160
|
+
"additionalProperties": false
|
|
1161
|
+
}
|
|
1162
|
+
},
|
|
1163
|
+
"required": [
|
|
1164
|
+
"summary",
|
|
1165
|
+
"beneficiary",
|
|
1166
|
+
"credit_holder",
|
|
1167
|
+
"collections",
|
|
1168
|
+
"credits",
|
|
1169
|
+
"certificates"
|
|
1170
|
+
],
|
|
1171
|
+
"additionalProperties": false
|
|
1172
|
+
},
|
|
1173
|
+
"blockchain": {
|
|
1174
|
+
"title": "Blockchain Information",
|
|
1175
|
+
"description": "Blockchain-specific information for the NFT",
|
|
1176
|
+
"type": "object",
|
|
1177
|
+
"properties": {
|
|
1178
|
+
"smart_contract_address": {
|
|
1179
|
+
"title": "Smart Contract Address",
|
|
1180
|
+
"description": "A valid Ethereum address in hexadecimal format",
|
|
1181
|
+
"examples": [
|
|
1182
|
+
"0x1234567890abcdef1234567890abcdef12345678",
|
|
1183
|
+
"0xabcdef1234567890abcdef1234567890abcdef12"
|
|
1184
|
+
],
|
|
1185
|
+
"type": "string",
|
|
1186
|
+
"pattern": "^0x[a-f0-9]{40}$"
|
|
1187
|
+
},
|
|
1188
|
+
"chain_id": {
|
|
1189
|
+
"title": "Chain ID",
|
|
1190
|
+
"description": "Blockchain chain ID",
|
|
1191
|
+
"examples": [
|
|
1192
|
+
1,
|
|
1193
|
+
137,
|
|
1194
|
+
11155111
|
|
1195
|
+
],
|
|
1196
|
+
"type": "integer",
|
|
1197
|
+
"minimum": 1,
|
|
1198
|
+
"maximum": 9007199254740991
|
|
1199
|
+
},
|
|
1200
|
+
"network_name": {
|
|
1201
|
+
"title": "Network Name",
|
|
1202
|
+
"description": "Name of the blockchain network",
|
|
1203
|
+
"type": "string",
|
|
1204
|
+
"minLength": 5,
|
|
1205
|
+
"maxLength": 100
|
|
1206
|
+
},
|
|
1207
|
+
"token_id": {
|
|
1208
|
+
"title": "Token ID",
|
|
1209
|
+
"description": "NFT token ID",
|
|
1210
|
+
"examples": [
|
|
1211
|
+
"123",
|
|
1212
|
+
"456789",
|
|
1213
|
+
"1000000"
|
|
1214
|
+
],
|
|
1215
|
+
"type": "string",
|
|
1216
|
+
"minLength": 1,
|
|
1217
|
+
"pattern": "^\\d+$"
|
|
1218
|
+
}
|
|
1219
|
+
},
|
|
1220
|
+
"required": [
|
|
1221
|
+
"smart_contract_address",
|
|
1222
|
+
"chain_id",
|
|
1223
|
+
"network_name",
|
|
1224
|
+
"token_id"
|
|
1225
|
+
],
|
|
1226
|
+
"additionalProperties": false
|
|
1227
|
+
},
|
|
1228
|
+
"name": {
|
|
1229
|
+
"title": "NFT Name",
|
|
1230
|
+
"description": "Full display name for this NFT, including extra context",
|
|
1231
|
+
"examples": [
|
|
1232
|
+
"MassID #123 • Organic • 3.0t",
|
|
1233
|
+
"RecycledID #456 • Plastic • 2.5t",
|
|
1234
|
+
"GasID #789 • Methane • 1000 m³"
|
|
1235
|
+
],
|
|
1236
|
+
"type": "string",
|
|
1237
|
+
"minLength": 1,
|
|
1238
|
+
"maxLength": 100
|
|
1239
|
+
},
|
|
1240
|
+
"short_name": {
|
|
1241
|
+
"title": "Short Name",
|
|
1242
|
+
"description": "Compact name for UI summaries, tables, or tooltips",
|
|
1243
|
+
"examples": [
|
|
1244
|
+
"MassID #123",
|
|
1245
|
+
"RecycledID #456",
|
|
1246
|
+
"GasID #789"
|
|
1247
|
+
],
|
|
1248
|
+
"type": "string",
|
|
1249
|
+
"minLength": 1,
|
|
1250
|
+
"maxLength": 50
|
|
1251
|
+
},
|
|
1252
|
+
"description": {
|
|
1253
|
+
"title": "Description",
|
|
1254
|
+
"description": "Human-readable summary of the NFT's role and context. Ideally, maximum 300 characters.",
|
|
1255
|
+
"examples": [
|
|
1256
|
+
"This MassID represents 3 metric tons of organic food waste from Enlatados Produção, tracked through complete chain of custody from generation to composting.",
|
|
1257
|
+
"This RecycledID represents 2.5 metric tons of recycled plastic bottles processed by Green Solutions Ltd."
|
|
1258
|
+
],
|
|
1259
|
+
"type": "string",
|
|
1260
|
+
"minLength": 10,
|
|
1261
|
+
"maxLength": 500
|
|
1262
|
+
},
|
|
1263
|
+
"image": {
|
|
1264
|
+
"title": "Image URI",
|
|
1265
|
+
"description": "IPFS URI pointing to the preview image",
|
|
1266
|
+
"examples": [
|
|
1267
|
+
"ipfs://QmTy8w65yBXgyfG2ZBg5TrfB2hPjrDQH3RCQFJGkARStJb/mass-id-organic.png",
|
|
1268
|
+
"ipfs://QmYjtig7VJQ6XsnUjqqJvj7QaMcCAwtrgNdahSiFofrE7o"
|
|
1269
|
+
],
|
|
1270
|
+
"type": "string",
|
|
1271
|
+
"minLength": 1,
|
|
1272
|
+
"pattern": "^ipfs:\\/\\/[a-zA-Z0-9]+(\\/.*)?$"
|
|
1273
|
+
},
|
|
1274
|
+
"background_color": {
|
|
1275
|
+
"title": "Background Color",
|
|
1276
|
+
"description": "Hex color code for marketplace background display",
|
|
1277
|
+
"examples": [
|
|
1278
|
+
"#2D5A27",
|
|
1279
|
+
"#FF5733",
|
|
1280
|
+
"#1E90FF"
|
|
1281
|
+
],
|
|
1282
|
+
"type": "string",
|
|
1283
|
+
"minLength": 1,
|
|
1284
|
+
"pattern": "^#[0-9A-F]{6}$"
|
|
1285
|
+
},
|
|
1286
|
+
"animation_url": {
|
|
1287
|
+
"title": "Animation URL",
|
|
1288
|
+
"description": "IPFS URI pointing to an animated or interactive media file",
|
|
1289
|
+
"examples": [
|
|
1290
|
+
"ipfs://QmAnimation123/mass-id-animation.mp4",
|
|
1291
|
+
"ipfs://QmInteractive456/recycled-visualization.webm"
|
|
1292
|
+
],
|
|
1293
|
+
"type": "string",
|
|
1294
|
+
"minLength": 1,
|
|
1295
|
+
"pattern": "^ipfs:\\/\\/[a-zA-Z0-9]+(\\/.*)?$"
|
|
1296
|
+
},
|
|
1297
|
+
"external_links": {
|
|
1298
|
+
"title": "External Links",
|
|
1299
|
+
"description": "Optional list of public resource links with labels",
|
|
1300
|
+
"examples": [
|
|
1301
|
+
[
|
|
1302
|
+
{
|
|
1303
|
+
"label": "Carrot Explorer",
|
|
1304
|
+
"url": "https://explore.carrot.eco/document/ad44dd3f-f176-4b98-bf78-5ee6e77d0530",
|
|
1305
|
+
"description": "Complete chain of custody and audit trail"
|
|
1306
|
+
},
|
|
1307
|
+
{
|
|
1308
|
+
"label": "Carrot White Paper",
|
|
1309
|
+
"url": "https://carrot.eco/whitepaper.pdf",
|
|
1310
|
+
"description": "Carrot Foundation technical and impact white paper"
|
|
1311
|
+
}
|
|
1312
|
+
]
|
|
1313
|
+
],
|
|
1314
|
+
"maxItems": 10,
|
|
1315
|
+
"type": "array",
|
|
1316
|
+
"items": {
|
|
1317
|
+
"title": "External Link",
|
|
1318
|
+
"description": "External link with label and description",
|
|
1319
|
+
"type": "object",
|
|
1320
|
+
"properties": {
|
|
1321
|
+
"label": {
|
|
1322
|
+
"title": "Link Label",
|
|
1323
|
+
"description": "Display name for the external link",
|
|
1324
|
+
"type": "string",
|
|
1325
|
+
"minLength": 1,
|
|
1326
|
+
"maxLength": 50
|
|
1327
|
+
},
|
|
1328
|
+
"url": {
|
|
1329
|
+
"title": "Link URL",
|
|
1330
|
+
"description": "Direct URI to the linked resource",
|
|
1331
|
+
"type": "string",
|
|
1332
|
+
"format": "uri"
|
|
1333
|
+
},
|
|
1334
|
+
"description": {
|
|
1335
|
+
"title": "Link Description",
|
|
1336
|
+
"description": "Optional context about what the link provides",
|
|
1337
|
+
"type": "string",
|
|
1338
|
+
"minLength": 10,
|
|
1339
|
+
"maxLength": 100
|
|
1340
|
+
}
|
|
1341
|
+
},
|
|
1342
|
+
"required": [
|
|
1343
|
+
"label",
|
|
1344
|
+
"url"
|
|
1345
|
+
],
|
|
1346
|
+
"additionalProperties": false
|
|
1347
|
+
}
|
|
1348
|
+
},
|
|
1349
|
+
"attributes": {
|
|
1350
|
+
"title": "Credit Retirement Receipt NFT Attribute Array",
|
|
1351
|
+
"description": "Attributes for credit retirement receipts including per-credit breakdowns, totals, beneficiary, credit holder, retirement date, certificate count, and per-collection amounts. Attributes must have unique trait types.",
|
|
1352
|
+
"minItems": 6,
|
|
1353
|
+
"type": "array",
|
|
1354
|
+
"items": {
|
|
1355
|
+
"anyOf": [
|
|
1356
|
+
{
|
|
1357
|
+
"title": "Credit Attribute",
|
|
1358
|
+
"description": "Attribute representing retired amount per credit token symbol",
|
|
1359
|
+
"type": "object",
|
|
1360
|
+
"properties": {
|
|
1361
|
+
"trait_type": {
|
|
1362
|
+
"title": "Credit Token Symbol",
|
|
1363
|
+
"description": "Symbol of the credit token (e.g., C-CARB, C-BIOW)",
|
|
1364
|
+
"examples": [
|
|
1365
|
+
"C-CARB",
|
|
1366
|
+
"C-BIOW"
|
|
1367
|
+
],
|
|
1368
|
+
"type": "string",
|
|
1369
|
+
"minLength": 1,
|
|
1370
|
+
"maxLength": 10,
|
|
1371
|
+
"pattern": "^[A-Z0-9-]+$"
|
|
1372
|
+
},
|
|
1373
|
+
"value": {
|
|
1374
|
+
"title": "Credit Retirement Amount",
|
|
1375
|
+
"description": "Amount of credits retired for the token symbol",
|
|
1376
|
+
"examples": [
|
|
1377
|
+
0,
|
|
1378
|
+
45.2,
|
|
1379
|
+
72.5
|
|
1380
|
+
],
|
|
1381
|
+
"type": "number",
|
|
1382
|
+
"minimum": 0
|
|
1383
|
+
},
|
|
1384
|
+
"display_type": {
|
|
1385
|
+
"type": "string",
|
|
1386
|
+
"const": "number"
|
|
1387
|
+
},
|
|
1388
|
+
"max_value": {
|
|
1389
|
+
"title": "Max Value",
|
|
1390
|
+
"description": "Maximum possible value for numeric traits",
|
|
1391
|
+
"examples": [
|
|
1392
|
+
0,
|
|
1393
|
+
45.2,
|
|
1394
|
+
72.5
|
|
1395
|
+
],
|
|
1396
|
+
"type": "number",
|
|
1397
|
+
"minimum": 0
|
|
1398
|
+
}
|
|
1399
|
+
},
|
|
1400
|
+
"required": [
|
|
1401
|
+
"trait_type",
|
|
1402
|
+
"value",
|
|
1403
|
+
"display_type"
|
|
1404
|
+
],
|
|
1405
|
+
"additionalProperties": false
|
|
1406
|
+
},
|
|
1407
|
+
{
|
|
1408
|
+
"title": "Total Credits Retired Attribute",
|
|
1409
|
+
"description": "Aggregate credits retired attribute",
|
|
1410
|
+
"type": "object",
|
|
1411
|
+
"properties": {
|
|
1412
|
+
"trait_type": {
|
|
1413
|
+
"type": "string",
|
|
1414
|
+
"const": "Total Credits Retired"
|
|
1415
|
+
},
|
|
1416
|
+
"value": {
|
|
1417
|
+
"title": "Total Credits Retired",
|
|
1418
|
+
"description": "Total number of credits retired across all tokens",
|
|
1419
|
+
"examples": [
|
|
1420
|
+
0,
|
|
1421
|
+
45.2,
|
|
1422
|
+
72.5
|
|
1423
|
+
],
|
|
1424
|
+
"type": "number",
|
|
1425
|
+
"minimum": 0
|
|
1426
|
+
},
|
|
1427
|
+
"display_type": {
|
|
1428
|
+
"type": "string",
|
|
1429
|
+
"const": "number"
|
|
1430
|
+
},
|
|
1431
|
+
"max_value": {
|
|
1432
|
+
"title": "Max Value",
|
|
1433
|
+
"description": "Maximum possible value for numeric traits",
|
|
1434
|
+
"examples": [
|
|
1435
|
+
0,
|
|
1436
|
+
45.2,
|
|
1437
|
+
72.5
|
|
1438
|
+
],
|
|
1439
|
+
"type": "number",
|
|
1440
|
+
"minimum": 0
|
|
1441
|
+
}
|
|
1442
|
+
},
|
|
1443
|
+
"required": [
|
|
1444
|
+
"trait_type",
|
|
1445
|
+
"value",
|
|
1446
|
+
"display_type"
|
|
1447
|
+
],
|
|
1448
|
+
"additionalProperties": false
|
|
1449
|
+
},
|
|
1450
|
+
{
|
|
1451
|
+
"title": "Beneficiary Attribute",
|
|
1452
|
+
"description": "Attribute containing the beneficiary display name",
|
|
1453
|
+
"type": "object",
|
|
1454
|
+
"properties": {
|
|
1455
|
+
"trait_type": {
|
|
1456
|
+
"type": "string",
|
|
1457
|
+
"const": "Beneficiary"
|
|
1458
|
+
},
|
|
1459
|
+
"value": {
|
|
1460
|
+
"title": "Beneficiary",
|
|
1461
|
+
"description": "Beneficiary receiving the retirement benefit",
|
|
1462
|
+
"examples": [
|
|
1463
|
+
"Climate Action Corp"
|
|
1464
|
+
],
|
|
1465
|
+
"type": "string",
|
|
1466
|
+
"minLength": 1,
|
|
1467
|
+
"maxLength": 100
|
|
1468
|
+
},
|
|
1469
|
+
"display_type": {
|
|
1470
|
+
"title": "Display Type",
|
|
1471
|
+
"description": "How the trait should be displayed in marketplace UIs",
|
|
1472
|
+
"type": "string",
|
|
1473
|
+
"enum": [
|
|
1474
|
+
"number",
|
|
1475
|
+
"date",
|
|
1476
|
+
"boost_number",
|
|
1477
|
+
"boost_percentage"
|
|
1478
|
+
]
|
|
1479
|
+
},
|
|
1480
|
+
"max_value": {
|
|
1481
|
+
"title": "Max Value",
|
|
1482
|
+
"description": "Maximum possible value for numeric traits",
|
|
1483
|
+
"examples": [
|
|
1484
|
+
0,
|
|
1485
|
+
45.2,
|
|
1486
|
+
72.5
|
|
1487
|
+
],
|
|
1488
|
+
"type": "number",
|
|
1489
|
+
"minimum": 0
|
|
1490
|
+
}
|
|
1491
|
+
},
|
|
1492
|
+
"required": [
|
|
1493
|
+
"trait_type",
|
|
1494
|
+
"value"
|
|
1495
|
+
],
|
|
1496
|
+
"additionalProperties": false
|
|
1497
|
+
},
|
|
1498
|
+
{
|
|
1499
|
+
"title": "Credit Holder Attribute",
|
|
1500
|
+
"description": "Attribute containing the credit holder display name",
|
|
1501
|
+
"type": "object",
|
|
1502
|
+
"properties": {
|
|
1503
|
+
"trait_type": {
|
|
1504
|
+
"type": "string",
|
|
1505
|
+
"const": "Credit Holder"
|
|
1506
|
+
},
|
|
1507
|
+
"value": {
|
|
1508
|
+
"title": "Credit Holder",
|
|
1509
|
+
"description": "Entity that surrendered the credits",
|
|
1510
|
+
"examples": [
|
|
1511
|
+
"EcoTech Solutions Inc."
|
|
1512
|
+
],
|
|
1513
|
+
"type": "string",
|
|
1514
|
+
"minLength": 1,
|
|
1515
|
+
"maxLength": 100
|
|
1516
|
+
},
|
|
1517
|
+
"display_type": {
|
|
1518
|
+
"title": "Display Type",
|
|
1519
|
+
"description": "How the trait should be displayed in marketplace UIs",
|
|
1520
|
+
"type": "string",
|
|
1521
|
+
"enum": [
|
|
1522
|
+
"number",
|
|
1523
|
+
"date",
|
|
1524
|
+
"boost_number",
|
|
1525
|
+
"boost_percentage"
|
|
1526
|
+
]
|
|
1527
|
+
},
|
|
1528
|
+
"max_value": {
|
|
1529
|
+
"title": "Max Value",
|
|
1530
|
+
"description": "Maximum possible value for numeric traits",
|
|
1531
|
+
"examples": [
|
|
1532
|
+
0,
|
|
1533
|
+
45.2,
|
|
1534
|
+
72.5
|
|
1535
|
+
],
|
|
1536
|
+
"type": "number",
|
|
1537
|
+
"minimum": 0
|
|
1538
|
+
}
|
|
1539
|
+
},
|
|
1540
|
+
"required": [
|
|
1541
|
+
"trait_type",
|
|
1542
|
+
"value"
|
|
1543
|
+
],
|
|
1544
|
+
"additionalProperties": false
|
|
1545
|
+
},
|
|
1546
|
+
{
|
|
1547
|
+
"title": "Retirement Date Attribute",
|
|
1548
|
+
"description": "Retirement date attribute using Unix timestamp in milliseconds",
|
|
1549
|
+
"type": "object",
|
|
1550
|
+
"properties": {
|
|
1551
|
+
"trait_type": {
|
|
1552
|
+
"type": "string",
|
|
1553
|
+
"const": "Retirement Date"
|
|
1554
|
+
},
|
|
1555
|
+
"value": {
|
|
1556
|
+
"title": "Retirement Date",
|
|
1557
|
+
"description": "Unix timestamp in milliseconds when the retirement was completed",
|
|
1558
|
+
"examples": [
|
|
1559
|
+
1704067200000,
|
|
1560
|
+
1735689600000,
|
|
1561
|
+
1762371245149
|
|
1562
|
+
],
|
|
1563
|
+
"type": "integer",
|
|
1564
|
+
"exclusiveMinimum": 0,
|
|
1565
|
+
"maximum": 9007199254740991
|
|
1566
|
+
},
|
|
1567
|
+
"display_type": {
|
|
1568
|
+
"type": "string",
|
|
1569
|
+
"const": "date"
|
|
1570
|
+
},
|
|
1571
|
+
"max_value": {
|
|
1572
|
+
"title": "Max Value",
|
|
1573
|
+
"description": "Maximum possible value for numeric traits",
|
|
1574
|
+
"examples": [
|
|
1575
|
+
0,
|
|
1576
|
+
45.2,
|
|
1577
|
+
72.5
|
|
1578
|
+
],
|
|
1579
|
+
"type": "number",
|
|
1580
|
+
"minimum": 0
|
|
1581
|
+
}
|
|
1582
|
+
},
|
|
1583
|
+
"required": [
|
|
1584
|
+
"trait_type",
|
|
1585
|
+
"value",
|
|
1586
|
+
"display_type"
|
|
1587
|
+
],
|
|
1588
|
+
"additionalProperties": false
|
|
1589
|
+
},
|
|
1590
|
+
{
|
|
1591
|
+
"title": "Certificates Retired Attribute",
|
|
1592
|
+
"description": "Attribute representing how many certificates were retired in total",
|
|
1593
|
+
"type": "object",
|
|
1594
|
+
"properties": {
|
|
1595
|
+
"trait_type": {
|
|
1596
|
+
"type": "string",
|
|
1597
|
+
"const": "Certificates Retired"
|
|
1598
|
+
},
|
|
1599
|
+
"value": {
|
|
1600
|
+
"title": "Certificates Retired",
|
|
1601
|
+
"description": "Total number of certificates retired",
|
|
1602
|
+
"examples": [
|
|
1603
|
+
1,
|
|
1604
|
+
123,
|
|
1605
|
+
456
|
|
1606
|
+
],
|
|
1607
|
+
"type": "integer",
|
|
1608
|
+
"minimum": 1,
|
|
1609
|
+
"maximum": 9007199254740991
|
|
1610
|
+
},
|
|
1611
|
+
"display_type": {
|
|
1612
|
+
"type": "string",
|
|
1613
|
+
"const": "number"
|
|
1614
|
+
},
|
|
1615
|
+
"max_value": {
|
|
1616
|
+
"title": "Max Value",
|
|
1617
|
+
"description": "Maximum possible value for numeric traits",
|
|
1618
|
+
"examples": [
|
|
1619
|
+
0,
|
|
1620
|
+
45.2,
|
|
1621
|
+
72.5
|
|
1622
|
+
],
|
|
1623
|
+
"type": "number",
|
|
1624
|
+
"minimum": 0
|
|
1625
|
+
}
|
|
1626
|
+
},
|
|
1627
|
+
"required": [
|
|
1628
|
+
"trait_type",
|
|
1629
|
+
"value",
|
|
1630
|
+
"display_type"
|
|
1631
|
+
],
|
|
1632
|
+
"additionalProperties": false
|
|
1633
|
+
},
|
|
1634
|
+
{
|
|
1635
|
+
"title": "Collection Attribute",
|
|
1636
|
+
"description": "Attribute representing the amount of credits retired from a collection",
|
|
1637
|
+
"type": "object",
|
|
1638
|
+
"properties": {
|
|
1639
|
+
"trait_type": {
|
|
1640
|
+
"title": "Collection Name",
|
|
1641
|
+
"description": "Display name of the collection",
|
|
1642
|
+
"examples": [
|
|
1643
|
+
"BOLD Cold Start - Carazinho",
|
|
1644
|
+
"BOLD Brazil"
|
|
1645
|
+
],
|
|
1646
|
+
"type": "string",
|
|
1647
|
+
"minLength": 1,
|
|
1648
|
+
"maxLength": 150
|
|
1649
|
+
},
|
|
1650
|
+
"value": {
|
|
1651
|
+
"title": "Credits from Collection",
|
|
1652
|
+
"description": "Amount of credits retired from the collection",
|
|
1653
|
+
"examples": [
|
|
1654
|
+
0,
|
|
1655
|
+
45.2,
|
|
1656
|
+
72.5
|
|
1657
|
+
],
|
|
1658
|
+
"type": "number",
|
|
1659
|
+
"minimum": 0
|
|
1660
|
+
},
|
|
1661
|
+
"display_type": {
|
|
1662
|
+
"type": "string",
|
|
1663
|
+
"const": "number"
|
|
1664
|
+
},
|
|
1665
|
+
"max_value": {
|
|
1666
|
+
"title": "Max Value",
|
|
1667
|
+
"description": "Maximum possible value for numeric traits",
|
|
1668
|
+
"examples": [
|
|
1669
|
+
0,
|
|
1670
|
+
45.2,
|
|
1671
|
+
72.5
|
|
1672
|
+
],
|
|
1673
|
+
"type": "number",
|
|
1674
|
+
"minimum": 0
|
|
1675
|
+
}
|
|
1676
|
+
},
|
|
1677
|
+
"required": [
|
|
1678
|
+
"trait_type",
|
|
1679
|
+
"value",
|
|
1680
|
+
"display_type"
|
|
1681
|
+
],
|
|
1682
|
+
"additionalProperties": false
|
|
1683
|
+
}
|
|
1684
|
+
]
|
|
1685
|
+
}
|
|
1686
|
+
}
|
|
1687
|
+
},
|
|
1688
|
+
"required": [
|
|
1689
|
+
"$schema",
|
|
1690
|
+
"schema",
|
|
1691
|
+
"created_at",
|
|
1692
|
+
"external_id",
|
|
1693
|
+
"external_url",
|
|
1694
|
+
"content_hash",
|
|
1695
|
+
"data",
|
|
1696
|
+
"blockchain",
|
|
1697
|
+
"name",
|
|
1698
|
+
"short_name",
|
|
1699
|
+
"description",
|
|
1700
|
+
"image",
|
|
1701
|
+
"attributes"
|
|
1702
|
+
],
|
|
1703
|
+
"additionalProperties": false
|
|
1704
|
+
}
|