@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.
- package/README.md +144 -116
- package/dist/index.cjs +204 -267
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +23 -23
- package/dist/index.d.ts +23 -23
- package/dist/index.js +204 -267
- package/dist/index.js.map +1 -1
- package/package.json +20 -20
- package/schemas/ipfs/collection/collection.example.json +3 -3
- package/schemas/ipfs/collection/collection.schema.json +77 -77
- package/schemas/ipfs/credit/credit.example.json +4 -4
- package/schemas/ipfs/credit/credit.schema.json +85 -85
- package/schemas/ipfs/credit-purchase-receipt/credit-purchase-receipt.example.json +15 -15
- package/schemas/ipfs/credit-purchase-receipt/credit-purchase-receipt.schema.json +432 -424
- package/schemas/ipfs/credit-retirement-receipt/credit-retirement-receipt.example.json +15 -15
- package/schemas/ipfs/credit-retirement-receipt/credit-retirement-receipt.schema.json +465 -457
- package/schemas/ipfs/gas-id/gas-id.example.json +9 -9
- package/schemas/ipfs/gas-id/gas-id.schema.json +448 -432
- package/schemas/ipfs/mass-id/mass-id.example.json +7 -7
- package/schemas/ipfs/mass-id/mass-id.schema.json +533 -512
- package/schemas/ipfs/mass-id-audit/mass-id-audit.example.json +57 -57
- package/schemas/ipfs/mass-id-audit/mass-id-audit.schema.json +225 -217
- package/schemas/ipfs/methodology/methodology.example.json +5 -5
- package/schemas/ipfs/methodology/methodology.schema.json +124 -124
- package/schemas/ipfs/recycled-id/recycled-id.example.json +9 -9
- package/schemas/ipfs/recycled-id/recycled-id.schema.json +400 -384
- package/schemas/schema-hashes.json +10 -10
|
@@ -1,58 +1,54 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"title": "GasID NFT IPFS Record",
|
|
4
|
-
"description": "Complete GasID NFT IPFS record including fixed attributes and detailed carbon emissions prevention data",
|
|
5
|
-
"$id": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/tags/0.2.3/schemas/ipfs/gas-id/gas-id.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": "GasID Schema Type",
|
|
30
|
-
"description": "GasID NFT schema type",
|
|
31
25
|
"type": "string",
|
|
32
|
-
"const": "GasID"
|
|
26
|
+
"const": "GasID",
|
|
27
|
+
"title": "GasID Schema Type",
|
|
28
|
+
"description": "Discriminator value identifying this record as a GasID prevented-emissions certificate"
|
|
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
|
|
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,82 +158,80 @@
|
|
|
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": "GasID Data",
|
|
171
|
-
"description": "Complete data structure for GasID certificate",
|
|
172
166
|
"type": "object",
|
|
173
167
|
"properties": {
|
|
174
168
|
"summary": {
|
|
175
|
-
"title": "GasID Summary",
|
|
176
|
-
"description": "Summary information for the GasID certificate",
|
|
177
169
|
"type": "object",
|
|
178
170
|
"properties": {
|
|
179
171
|
"gas_type": {
|
|
180
|
-
"title": "Gas Type",
|
|
181
|
-
"description": "Type of gas prevented",
|
|
182
|
-
"examples": [
|
|
183
|
-
"Methane (CH₄)"
|
|
184
|
-
],
|
|
185
172
|
"type": "string",
|
|
186
173
|
"enum": [
|
|
187
174
|
"Methane (CH₄)"
|
|
175
|
+
],
|
|
176
|
+
"title": "Gas Type",
|
|
177
|
+
"description": "Greenhouse gas type whose emission was prevented through the waste management activity",
|
|
178
|
+
"examples": [
|
|
179
|
+
"Methane (CH₄)"
|
|
188
180
|
]
|
|
189
181
|
},
|
|
190
182
|
"credit_type": {
|
|
191
|
-
"
|
|
192
|
-
"
|
|
193
|
-
"examples": [
|
|
183
|
+
"type": "string",
|
|
184
|
+
"enum": [
|
|
194
185
|
"Biowaste",
|
|
195
186
|
"Carbon (CH₄)"
|
|
196
187
|
],
|
|
197
|
-
"
|
|
198
|
-
"
|
|
188
|
+
"title": "Credit Type",
|
|
189
|
+
"description": "Category of environmental credit — indicates the impact pathway (biowaste diversion or methane prevention)",
|
|
190
|
+
"examples": [
|
|
199
191
|
"Biowaste",
|
|
200
192
|
"Carbon (CH₄)"
|
|
201
193
|
]
|
|
202
194
|
},
|
|
203
195
|
"credit_amount": {
|
|
196
|
+
"type": "number",
|
|
197
|
+
"minimum": 0,
|
|
204
198
|
"title": "Credit Amount",
|
|
205
|
-
"description": "
|
|
199
|
+
"description": "Number of environmental impact credits issued, purchased, or retired",
|
|
206
200
|
"examples": [
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
]
|
|
211
|
-
"type": "number",
|
|
212
|
-
"minimum": 0
|
|
201
|
+
1.5,
|
|
202
|
+
100,
|
|
203
|
+
2500.75
|
|
204
|
+
]
|
|
213
205
|
},
|
|
214
206
|
"prevented_co2e_kg": {
|
|
207
|
+
"type": "number",
|
|
208
|
+
"minimum": 0,
|
|
215
209
|
"title": "Prevented Emissions (CO₂e)",
|
|
216
210
|
"description": "CO₂e weight of the prevented emissions in kilograms (kg)",
|
|
217
211
|
"examples": [
|
|
218
212
|
500.35,
|
|
219
213
|
3000
|
|
220
|
-
]
|
|
221
|
-
"type": "number",
|
|
222
|
-
"minimum": 0
|
|
214
|
+
]
|
|
223
215
|
},
|
|
224
216
|
"recycling_date": {
|
|
217
|
+
"type": "string",
|
|
218
|
+
"format": "date-time",
|
|
219
|
+
"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)))$",
|
|
225
220
|
"title": "Recycling Date",
|
|
226
221
|
"description": "ISO 8601 timestamp when the recycling occurred (when the environmental gain was achieved)",
|
|
227
222
|
"examples": [
|
|
228
223
|
"2024-12-05T11:02:47.000Z"
|
|
229
|
-
]
|
|
230
|
-
"type": "string",
|
|
231
|
-
"format": "date-time",
|
|
232
|
-
"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)))$"
|
|
224
|
+
]
|
|
233
225
|
},
|
|
234
226
|
"issued_at": {
|
|
227
|
+
"type": "string",
|
|
228
|
+
"format": "date-time",
|
|
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])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
|
|
235
230
|
"title": "Issued At",
|
|
236
231
|
"description": "ISO 8601 timestamp when the certificate was issued",
|
|
237
232
|
"examples": [
|
|
238
233
|
"2024-12-05T11:02:47.000Z"
|
|
239
|
-
]
|
|
240
|
-
"type": "string",
|
|
241
|
-
"format": "date-time",
|
|
242
|
-
"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)))$"
|
|
234
|
+
]
|
|
243
235
|
}
|
|
244
236
|
},
|
|
245
237
|
"required": [
|
|
@@ -250,68 +242,68 @@
|
|
|
250
242
|
"recycling_date",
|
|
251
243
|
"issued_at"
|
|
252
244
|
],
|
|
253
|
-
"additionalProperties": false
|
|
245
|
+
"additionalProperties": false,
|
|
246
|
+
"title": "GasID Summary",
|
|
247
|
+
"description": "Key metrics for the GasID certificate including gas type, credit details, prevented emissions, and issuance timestamps"
|
|
254
248
|
},
|
|
255
249
|
"methodology": {
|
|
256
|
-
"title": "Methodology Reference",
|
|
257
|
-
"description": "Reference to a methodology record",
|
|
258
250
|
"type": "object",
|
|
259
251
|
"properties": {
|
|
260
252
|
"external_id": {
|
|
253
|
+
"type": "string",
|
|
254
|
+
"format": "uuid",
|
|
255
|
+
"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})$",
|
|
261
256
|
"title": "Methodology External ID",
|
|
262
257
|
"description": "Unique identifier for the methodology",
|
|
263
258
|
"examples": [
|
|
264
259
|
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530"
|
|
265
|
-
]
|
|
266
|
-
"type": "string",
|
|
267
|
-
"format": "uuid",
|
|
268
|
-
"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})$"
|
|
260
|
+
]
|
|
269
261
|
},
|
|
270
262
|
"name": {
|
|
271
|
-
"
|
|
272
|
-
"
|
|
273
|
-
"examples": [
|
|
263
|
+
"type": "string",
|
|
264
|
+
"enum": [
|
|
274
265
|
"AMS-III.F. | BOLD Carbon (CH₄) - SSC",
|
|
275
266
|
"AMS-III.F. | BOLD Recycling Credit"
|
|
276
267
|
],
|
|
277
|
-
"
|
|
278
|
-
"
|
|
268
|
+
"title": "Methodology Name",
|
|
269
|
+
"description": "Full official name of the methodology",
|
|
270
|
+
"examples": [
|
|
279
271
|
"AMS-III.F. | BOLD Carbon (CH₄) - SSC",
|
|
280
272
|
"AMS-III.F. | BOLD Recycling Credit"
|
|
281
273
|
]
|
|
282
274
|
},
|
|
283
275
|
"version": {
|
|
276
|
+
"type": "string",
|
|
277
|
+
"minLength": 1,
|
|
278
|
+
"pattern": "^v?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?$",
|
|
284
279
|
"title": "Methodology Version",
|
|
285
280
|
"description": "Version of the methodology",
|
|
286
281
|
"examples": [
|
|
287
282
|
"0.1.0",
|
|
288
283
|
"1.0.0",
|
|
289
284
|
"2.1.3"
|
|
290
|
-
]
|
|
291
|
-
"type": "string",
|
|
292
|
-
"minLength": 1,
|
|
293
|
-
"pattern": "^v?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?$"
|
|
285
|
+
]
|
|
294
286
|
},
|
|
295
287
|
"external_url": {
|
|
288
|
+
"type": "string",
|
|
289
|
+
"format": "uri",
|
|
296
290
|
"title": "Methodology External URL",
|
|
297
291
|
"description": "URL to view the methodology on Carrot Explorer",
|
|
298
292
|
"examples": [
|
|
299
293
|
"https://explore.carrot.eco/",
|
|
300
294
|
"https://whitepaper.carrot.eco/"
|
|
301
|
-
]
|
|
302
|
-
"type": "string",
|
|
303
|
-
"format": "uri"
|
|
295
|
+
]
|
|
304
296
|
},
|
|
305
297
|
"ipfs_uri": {
|
|
298
|
+
"type": "string",
|
|
299
|
+
"minLength": 1,
|
|
300
|
+
"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]*)?$",
|
|
306
301
|
"title": "Methodology IPFS URI",
|
|
307
302
|
"description": "IPFS URI to the methodology record",
|
|
308
303
|
"examples": [
|
|
309
304
|
"ipfs://bafybeigdyrztvzl5cceubvaxob7iqh6f3f7s36c74ojav2xsz2uib2g3vm",
|
|
310
305
|
"ipfs://bafybeihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku"
|
|
311
|
-
]
|
|
312
|
-
"type": "string",
|
|
313
|
-
"minLength": 1,
|
|
314
|
-
"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]*)?$"
|
|
306
|
+
]
|
|
315
307
|
}
|
|
316
308
|
},
|
|
317
309
|
"required": [
|
|
@@ -321,78 +313,78 @@
|
|
|
321
313
|
"external_url",
|
|
322
314
|
"ipfs_uri"
|
|
323
315
|
],
|
|
324
|
-
"additionalProperties": false
|
|
316
|
+
"additionalProperties": false,
|
|
317
|
+
"title": "Methodology Reference",
|
|
318
|
+
"description": "Reference to a methodology record"
|
|
325
319
|
},
|
|
326
320
|
"audit": {
|
|
327
|
-
"title": "Audit Reference",
|
|
328
|
-
"description": "Reference to an audit record",
|
|
329
321
|
"type": "object",
|
|
330
322
|
"properties": {
|
|
331
323
|
"completed_at": {
|
|
324
|
+
"type": "string",
|
|
325
|
+
"format": "date-time",
|
|
326
|
+
"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)))$",
|
|
332
327
|
"title": "Audit Completion Timestamp",
|
|
333
328
|
"description": "ISO 8601 timestamp when the audit was completed",
|
|
334
329
|
"examples": [
|
|
335
330
|
"2024-12-05T11:02:47.000Z"
|
|
336
|
-
]
|
|
337
|
-
"type": "string",
|
|
338
|
-
"format": "date-time",
|
|
339
|
-
"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)))$"
|
|
331
|
+
]
|
|
340
332
|
},
|
|
341
333
|
"external_id": {
|
|
334
|
+
"type": "string",
|
|
335
|
+
"format": "uuid",
|
|
336
|
+
"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})$",
|
|
342
337
|
"title": "Audit External ID",
|
|
343
338
|
"description": "Unique identifier for the audit",
|
|
344
339
|
"examples": [
|
|
345
340
|
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530"
|
|
346
|
-
]
|
|
347
|
-
"type": "string",
|
|
348
|
-
"format": "uuid",
|
|
349
|
-
"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})$"
|
|
341
|
+
]
|
|
350
342
|
},
|
|
351
343
|
"external_url": {
|
|
344
|
+
"type": "string",
|
|
345
|
+
"format": "uri",
|
|
352
346
|
"title": "Audit External URL",
|
|
353
347
|
"description": "URL to view the audit on Carrot Explorer",
|
|
354
348
|
"examples": [
|
|
355
349
|
"https://explore.carrot.eco/",
|
|
356
350
|
"https://whitepaper.carrot.eco/"
|
|
357
|
-
]
|
|
358
|
-
"type": "string",
|
|
359
|
-
"format": "uri"
|
|
351
|
+
]
|
|
360
352
|
},
|
|
361
353
|
"result": {
|
|
362
|
-
"
|
|
363
|
-
"
|
|
364
|
-
"examples": [
|
|
354
|
+
"type": "string",
|
|
355
|
+
"enum": [
|
|
365
356
|
"PASSED",
|
|
366
357
|
"FAILED"
|
|
367
358
|
],
|
|
368
|
-
"
|
|
369
|
-
"
|
|
359
|
+
"title": "Audit Result",
|
|
360
|
+
"description": "Result of audit execution",
|
|
361
|
+
"examples": [
|
|
370
362
|
"PASSED",
|
|
371
363
|
"FAILED"
|
|
372
364
|
]
|
|
373
365
|
},
|
|
374
366
|
"rules_executed": {
|
|
367
|
+
"type": "integer",
|
|
368
|
+
"minimum": 0,
|
|
369
|
+
"maximum": 9007199254740991,
|
|
375
370
|
"title": "Rules Executed",
|
|
376
371
|
"description": "Number of rules executed during the audit",
|
|
377
372
|
"examples": [
|
|
378
373
|
0,
|
|
379
374
|
123,
|
|
380
375
|
4126
|
|
381
|
-
]
|
|
382
|
-
"type": "integer",
|
|
383
|
-
"minimum": 0,
|
|
384
|
-
"maximum": 9007199254740991
|
|
376
|
+
]
|
|
385
377
|
},
|
|
386
378
|
"ipfs_uri": {
|
|
379
|
+
"type": "string",
|
|
380
|
+
"minLength": 1,
|
|
381
|
+
"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]*)?$",
|
|
387
382
|
"title": "Audit Report",
|
|
388
383
|
"description": "IPFS URI of the audit report",
|
|
389
384
|
"examples": [
|
|
390
385
|
"ipfs://bafybeigdyrztvzl5cceubvaxob7iqh6f3f7s36c74ojav2xsz2uib2g3vm",
|
|
391
386
|
"ipfs://bafybeihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku"
|
|
392
|
-
]
|
|
393
|
-
"type": "string",
|
|
394
|
-
"minLength": 1,
|
|
395
|
-
"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]*)?$"
|
|
387
|
+
]
|
|
396
388
|
}
|
|
397
389
|
},
|
|
398
390
|
"required": [
|
|
@@ -403,63 +395,63 @@
|
|
|
403
395
|
"rules_executed",
|
|
404
396
|
"ipfs_uri"
|
|
405
397
|
],
|
|
406
|
-
"additionalProperties": false
|
|
398
|
+
"additionalProperties": false,
|
|
399
|
+
"title": "Audit Reference",
|
|
400
|
+
"description": "Reference to an audit record"
|
|
407
401
|
},
|
|
408
402
|
"mass_id": {
|
|
409
|
-
"title": "MassID Reference",
|
|
410
|
-
"description": "Reference to a MassID record",
|
|
411
403
|
"type": "object",
|
|
412
404
|
"properties": {
|
|
413
405
|
"external_id": {
|
|
406
|
+
"type": "string",
|
|
407
|
+
"format": "uuid",
|
|
408
|
+
"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})$",
|
|
414
409
|
"title": "External ID",
|
|
415
|
-
"description": "UUID identifier
|
|
410
|
+
"description": "UUID v4 identifier linking this IPFS record to its counterpart in the Carrot platform and other consuming systems",
|
|
416
411
|
"examples": [
|
|
417
412
|
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530"
|
|
418
|
-
]
|
|
419
|
-
"type": "string",
|
|
420
|
-
"format": "uuid",
|
|
421
|
-
"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})$"
|
|
413
|
+
]
|
|
422
414
|
},
|
|
423
415
|
"external_url": {
|
|
416
|
+
"type": "string",
|
|
417
|
+
"format": "uri",
|
|
424
418
|
"title": "External URL",
|
|
425
419
|
"description": "URL pointing to external resources",
|
|
426
420
|
"examples": [
|
|
427
421
|
"https://explore.carrot.eco/",
|
|
428
422
|
"https://whitepaper.carrot.eco/"
|
|
429
|
-
]
|
|
430
|
-
"type": "string",
|
|
431
|
-
"format": "uri"
|
|
423
|
+
]
|
|
432
424
|
},
|
|
433
425
|
"ipfs_uri": {
|
|
426
|
+
"type": "string",
|
|
427
|
+
"minLength": 1,
|
|
428
|
+
"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]*)?$",
|
|
434
429
|
"title": "IPFS URI",
|
|
435
430
|
"description": "InterPlanetary File System URI pointing to distributed content",
|
|
436
431
|
"examples": [
|
|
437
432
|
"ipfs://bafybeigdyrztvzl5cceubvaxob7iqh6f3f7s36c74ojav2xsz2uib2g3vm",
|
|
438
433
|
"ipfs://bafybeihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku"
|
|
439
|
-
]
|
|
440
|
-
"type": "string",
|
|
441
|
-
"minLength": 1,
|
|
442
|
-
"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]*)?$"
|
|
434
|
+
]
|
|
443
435
|
},
|
|
444
436
|
"smart_contract_address": {
|
|
437
|
+
"type": "string",
|
|
438
|
+
"pattern": "^0x[a-f0-9]{40}$",
|
|
445
439
|
"title": "Smart Contract Address",
|
|
446
440
|
"description": "Ethereum-compatible address of the smart contract that mints and manages this token",
|
|
447
441
|
"examples": [
|
|
448
442
|
"0x1234567890abcdef1234567890abcdef12345678"
|
|
449
|
-
]
|
|
450
|
-
"type": "string",
|
|
451
|
-
"pattern": "^0x[a-f0-9]{40}$"
|
|
443
|
+
]
|
|
452
444
|
},
|
|
453
445
|
"token_id": {
|
|
446
|
+
"type": "string",
|
|
447
|
+
"minLength": 1,
|
|
448
|
+
"pattern": "^\\d+$",
|
|
454
449
|
"title": "Token ID",
|
|
455
450
|
"description": "Unique token identifier for this NFT within the smart contract",
|
|
456
451
|
"examples": [
|
|
457
452
|
"456789",
|
|
458
453
|
"1000000"
|
|
459
|
-
]
|
|
460
|
-
"type": "string",
|
|
461
|
-
"minLength": 1,
|
|
462
|
-
"pattern": "^\\d+$"
|
|
454
|
+
]
|
|
463
455
|
}
|
|
464
456
|
},
|
|
465
457
|
"required": [
|
|
@@ -469,31 +461,25 @@
|
|
|
469
461
|
"smart_contract_address",
|
|
470
462
|
"token_id"
|
|
471
463
|
],
|
|
472
|
-
"additionalProperties": false
|
|
464
|
+
"additionalProperties": false,
|
|
465
|
+
"title": "MassID Reference",
|
|
466
|
+
"description": "Reference to a MassID record"
|
|
473
467
|
},
|
|
474
468
|
"waste_properties": {
|
|
475
|
-
"title": "Waste Properties",
|
|
476
|
-
"description": "Properties of the source waste (MassID)",
|
|
477
469
|
"type": "object",
|
|
478
470
|
"properties": {
|
|
479
471
|
"type": {
|
|
472
|
+
"type": "string",
|
|
473
|
+
"enum": [
|
|
474
|
+
"Organic"
|
|
475
|
+
],
|
|
480
476
|
"title": "Source Waste Type",
|
|
481
477
|
"description": "Type of the source waste",
|
|
482
478
|
"examples": [
|
|
483
479
|
"Organic"
|
|
484
|
-
],
|
|
485
|
-
"type": "string",
|
|
486
|
-
"enum": [
|
|
487
|
-
"Organic"
|
|
488
480
|
]
|
|
489
481
|
},
|
|
490
482
|
"subtype": {
|
|
491
|
-
"title": "Source Waste Subtype",
|
|
492
|
-
"description": "Subtype of the source waste",
|
|
493
|
-
"examples": [
|
|
494
|
-
"Food, Food Waste and Beverages",
|
|
495
|
-
"Domestic Sludge"
|
|
496
|
-
],
|
|
497
483
|
"type": "string",
|
|
498
484
|
"enum": [
|
|
499
485
|
"Domestic Sludge",
|
|
@@ -503,17 +489,23 @@
|
|
|
503
489
|
"Industrial Sludge",
|
|
504
490
|
"Tobacco",
|
|
505
491
|
"Wood and Wood Products"
|
|
492
|
+
],
|
|
493
|
+
"title": "Source Waste Subtype",
|
|
494
|
+
"description": "Subtype of the source waste",
|
|
495
|
+
"examples": [
|
|
496
|
+
"Food, Food Waste and Beverages",
|
|
497
|
+
"Garden, Yard and Park Waste"
|
|
506
498
|
]
|
|
507
499
|
},
|
|
508
500
|
"weight_kg": {
|
|
501
|
+
"type": "number",
|
|
502
|
+
"minimum": 0,
|
|
509
503
|
"title": "Source Waste Net Weight",
|
|
510
504
|
"description": "Net weight of the source waste in kilograms (kg)",
|
|
511
505
|
"examples": [
|
|
512
506
|
500.35,
|
|
513
507
|
3000
|
|
514
|
-
]
|
|
515
|
-
"type": "number",
|
|
516
|
-
"minimum": 0
|
|
508
|
+
]
|
|
517
509
|
}
|
|
518
510
|
},
|
|
519
511
|
"required": [
|
|
@@ -521,96 +513,100 @@
|
|
|
521
513
|
"subtype",
|
|
522
514
|
"weight_kg"
|
|
523
515
|
],
|
|
524
|
-
"additionalProperties": false
|
|
516
|
+
"additionalProperties": false,
|
|
517
|
+
"title": "Waste Properties",
|
|
518
|
+
"description": "Properties of the source waste (MassID)"
|
|
525
519
|
},
|
|
526
520
|
"origin_location": {
|
|
527
|
-
"title": "Source Waste Origin Location",
|
|
528
|
-
"description": "Location of the waste origin",
|
|
529
521
|
"type": "object",
|
|
530
522
|
"properties": {
|
|
531
523
|
"id_hash": {
|
|
524
|
+
"type": "string",
|
|
525
|
+
"pattern": "^[0-9a-fA-F]{64}$",
|
|
532
526
|
"title": "Location ID Hash",
|
|
533
|
-
"description": "
|
|
527
|
+
"description": "SHA-256 hash anonymizing the real location identifier for privacy",
|
|
534
528
|
"examples": [
|
|
535
529
|
"87f633634cc4b02f628685651f0a29b7bfa22a0bd841f725c6772dd00a58d489"
|
|
536
|
-
]
|
|
537
|
-
"type": "string",
|
|
538
|
-
"pattern": "^[0-9a-fA-F]{64}$"
|
|
530
|
+
]
|
|
539
531
|
},
|
|
540
532
|
"city": {
|
|
533
|
+
"type": "string",
|
|
534
|
+
"minLength": 1,
|
|
535
|
+
"maxLength": 50,
|
|
541
536
|
"title": "City",
|
|
542
|
-
"description": "
|
|
537
|
+
"description": "Name of the Brazilian municipality where the activity takes place",
|
|
543
538
|
"examples": [
|
|
544
539
|
"Brasília",
|
|
545
|
-
"São Paulo"
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
"maxLength": 50
|
|
540
|
+
"São Paulo",
|
|
541
|
+
"Carazinho",
|
|
542
|
+
"Jundiaí"
|
|
543
|
+
]
|
|
550
544
|
},
|
|
551
545
|
"subdivision_code": {
|
|
546
|
+
"type": "string",
|
|
547
|
+
"pattern": "^[A-Z]{2}-[A-Z0-9]{1,3}$",
|
|
552
548
|
"title": "Country Subdivision Code",
|
|
553
|
-
"description": "
|
|
549
|
+
"description": "State or region code following the ISO 3166-2 standard (e.g., BR-SP for São Paulo)",
|
|
554
550
|
"examples": [
|
|
551
|
+
"BR-SP",
|
|
552
|
+
"BR-RS",
|
|
555
553
|
"BR-AP",
|
|
556
554
|
"BR-DF"
|
|
557
|
-
]
|
|
558
|
-
"type": "string",
|
|
559
|
-
"pattern": "^[A-Z]{2}-[A-Z0-9]{1,3}$"
|
|
555
|
+
]
|
|
560
556
|
},
|
|
561
557
|
"country_code": {
|
|
558
|
+
"type": "string",
|
|
559
|
+
"pattern": "^[A-Z]{2}$",
|
|
562
560
|
"title": "Country Code",
|
|
563
561
|
"description": "Two-letter country code following ISO 3166-1 alpha-2 standard",
|
|
564
562
|
"examples": [
|
|
565
563
|
"BR"
|
|
566
|
-
]
|
|
567
|
-
"type": "string",
|
|
568
|
-
"pattern": "^[A-Z]{2}$"
|
|
564
|
+
]
|
|
569
565
|
},
|
|
570
566
|
"responsible_participant_id_hash": {
|
|
567
|
+
"type": "string",
|
|
568
|
+
"pattern": "^[0-9a-fA-F]{64}$",
|
|
571
569
|
"title": "Responsible Participant ID Hash",
|
|
572
|
-
"description": "
|
|
570
|
+
"description": "SHA-256 hash identifying the participant responsible for operations at this location",
|
|
573
571
|
"examples": [
|
|
574
572
|
"87f633634cc4b02f628685651f0a29b7bfa22a0bd841f725c6772dd00a58d489"
|
|
575
|
-
]
|
|
576
|
-
"type": "string",
|
|
577
|
-
"pattern": "^[0-9a-fA-F]{64}$"
|
|
573
|
+
]
|
|
578
574
|
},
|
|
579
575
|
"coordinates": {
|
|
580
|
-
"title": "Coordinates",
|
|
581
|
-
"description": "GPS coordinates of the location",
|
|
582
576
|
"type": "object",
|
|
583
577
|
"properties": {
|
|
584
578
|
"latitude": {
|
|
579
|
+
"type": "number",
|
|
580
|
+
"minimum": -90,
|
|
581
|
+
"maximum": 90,
|
|
582
|
+
"multipleOf": 0.1,
|
|
585
583
|
"title": "Latitude",
|
|
586
584
|
"description": "Geographic latitude coordinate in decimal degrees with maximum 1 decimal place precision (~11km accuracy for city-level)",
|
|
587
585
|
"examples": [
|
|
588
586
|
-0.2,
|
|
589
587
|
-20.3
|
|
590
|
-
]
|
|
591
|
-
"type": "number",
|
|
592
|
-
"minimum": -90,
|
|
593
|
-
"maximum": 90,
|
|
594
|
-
"multipleOf": 0.1
|
|
588
|
+
]
|
|
595
589
|
},
|
|
596
590
|
"longitude": {
|
|
591
|
+
"type": "number",
|
|
592
|
+
"minimum": -180,
|
|
593
|
+
"maximum": 180,
|
|
594
|
+
"multipleOf": 0.1,
|
|
597
595
|
"title": "Longitude",
|
|
598
596
|
"description": "Geographic longitude coordinate in decimal degrees with maximum 1 decimal place precision (~11km accuracy for city-level)",
|
|
599
597
|
"examples": [
|
|
600
598
|
-51,
|
|
601
599
|
-40.3
|
|
602
|
-
]
|
|
603
|
-
"type": "number",
|
|
604
|
-
"minimum": -180,
|
|
605
|
-
"maximum": 180,
|
|
606
|
-
"multipleOf": 0.1
|
|
600
|
+
]
|
|
607
601
|
}
|
|
608
602
|
},
|
|
609
603
|
"required": [
|
|
610
604
|
"latitude",
|
|
611
605
|
"longitude"
|
|
612
606
|
],
|
|
613
|
-
"additionalProperties": false
|
|
607
|
+
"additionalProperties": false,
|
|
608
|
+
"title": "Coordinates",
|
|
609
|
+
"description": "Approximate GPS coordinates of the site (city-level precision for privacy)"
|
|
614
610
|
}
|
|
615
611
|
},
|
|
616
612
|
"required": [
|
|
@@ -621,54 +617,53 @@
|
|
|
621
617
|
"responsible_participant_id_hash",
|
|
622
618
|
"coordinates"
|
|
623
619
|
],
|
|
624
|
-
"additionalProperties": false
|
|
620
|
+
"additionalProperties": false,
|
|
621
|
+
"title": "Source Waste Origin Location",
|
|
622
|
+
"description": "Geographic location where the source waste was originally collected"
|
|
625
623
|
},
|
|
626
624
|
"prevented_emissions_calculation": {
|
|
627
|
-
"title": "Prevented Emissions Calculation",
|
|
628
|
-
"description": "Details of the prevented emissions calculation",
|
|
629
625
|
"type": "object",
|
|
630
626
|
"properties": {
|
|
631
627
|
"formula": {
|
|
628
|
+
"type": "string",
|
|
629
|
+
"minLength": 1,
|
|
630
|
+
"maxLength": 100,
|
|
632
631
|
"title": "Calculation Formula",
|
|
633
632
|
"description": "Formula used to calculate the prevented emissions",
|
|
634
633
|
"examples": [
|
|
635
634
|
"W * B - W * E"
|
|
636
|
-
]
|
|
637
|
-
"type": "string",
|
|
638
|
-
"minLength": 1,
|
|
639
|
-
"maxLength": 100
|
|
635
|
+
]
|
|
640
636
|
},
|
|
641
637
|
"method": {
|
|
638
|
+
"type": "string",
|
|
639
|
+
"minLength": 1,
|
|
640
|
+
"maxLength": 100,
|
|
642
641
|
"title": "Calculation Method",
|
|
643
642
|
"description": "Method used to calculate the prevented emissions",
|
|
644
643
|
"examples": [
|
|
645
644
|
"UNFCCC AMS-III.F"
|
|
646
|
-
]
|
|
647
|
-
"type": "string",
|
|
648
|
-
"minLength": 1,
|
|
649
|
-
"maxLength": 100
|
|
645
|
+
]
|
|
650
646
|
},
|
|
651
647
|
"calculated_at": {
|
|
648
|
+
"type": "string",
|
|
649
|
+
"format": "date-time",
|
|
650
|
+
"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)))$",
|
|
652
651
|
"title": "Calculated At",
|
|
653
652
|
"description": "ISO 8601 timestamp when the calculation was performed",
|
|
654
653
|
"examples": [
|
|
655
654
|
"2024-12-05T11:02:47.000Z"
|
|
656
|
-
]
|
|
657
|
-
"type": "string",
|
|
658
|
-
"format": "date-time",
|
|
659
|
-
"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)))$"
|
|
655
|
+
]
|
|
660
656
|
},
|
|
661
657
|
"values": {
|
|
662
|
-
"title": "Calculation Values",
|
|
663
|
-
"description": "Values used to calculate the prevented emissions",
|
|
664
658
|
"minItems": 1,
|
|
665
659
|
"type": "array",
|
|
666
660
|
"items": {
|
|
667
|
-
"title": "Calculation Value",
|
|
668
|
-
"description": "Single value used in the emissions calculation",
|
|
669
661
|
"type": "object",
|
|
670
662
|
"properties": {
|
|
671
663
|
"reference": {
|
|
664
|
+
"type": "string",
|
|
665
|
+
"minLength": 1,
|
|
666
|
+
"maxLength": 3,
|
|
672
667
|
"title": "Calculation Reference",
|
|
673
668
|
"description": "Reference symbol used in the calculation formula",
|
|
674
669
|
"examples": [
|
|
@@ -676,23 +671,23 @@
|
|
|
676
671
|
"B",
|
|
677
672
|
"W",
|
|
678
673
|
"R"
|
|
679
|
-
]
|
|
680
|
-
"type": "string",
|
|
681
|
-
"minLength": 1,
|
|
682
|
-
"maxLength": 3
|
|
674
|
+
]
|
|
683
675
|
},
|
|
684
676
|
"value": {
|
|
677
|
+
"type": "number",
|
|
678
|
+
"minimum": 0,
|
|
685
679
|
"title": "Calculation Value",
|
|
686
680
|
"description": "Numeric value for this calculation parameter",
|
|
687
681
|
"examples": [
|
|
688
682
|
0,
|
|
689
683
|
45.2,
|
|
690
684
|
72.5
|
|
691
|
-
]
|
|
692
|
-
"type": "number",
|
|
693
|
-
"minimum": 0
|
|
685
|
+
]
|
|
694
686
|
},
|
|
695
687
|
"label": {
|
|
688
|
+
"type": "string",
|
|
689
|
+
"minLength": 1,
|
|
690
|
+
"maxLength": 100,
|
|
696
691
|
"title": "Calculation Label",
|
|
697
692
|
"description": "Human-readable label for this calculation value",
|
|
698
693
|
"examples": [
|
|
@@ -700,10 +695,7 @@
|
|
|
700
695
|
"Prevented Emissions by Waste Subtype and Emissions Baseline Per Ton",
|
|
701
696
|
"Waste Weight",
|
|
702
697
|
"Prevented Emissions (CO₂e kg)"
|
|
703
|
-
]
|
|
704
|
-
"type": "string",
|
|
705
|
-
"minLength": 1,
|
|
706
|
-
"maxLength": 100
|
|
698
|
+
]
|
|
707
699
|
}
|
|
708
700
|
},
|
|
709
701
|
"required": [
|
|
@@ -711,8 +703,12 @@
|
|
|
711
703
|
"value",
|
|
712
704
|
"label"
|
|
713
705
|
],
|
|
714
|
-
"additionalProperties": false
|
|
715
|
-
|
|
706
|
+
"additionalProperties": false,
|
|
707
|
+
"title": "Calculation Value",
|
|
708
|
+
"description": "Named parameter or computed result used in the prevented emissions formula"
|
|
709
|
+
},
|
|
710
|
+
"title": "Calculation Values",
|
|
711
|
+
"description": "Input parameters and computed result used in the prevented emissions formula"
|
|
716
712
|
}
|
|
717
713
|
},
|
|
718
714
|
"required": [
|
|
@@ -721,7 +717,9 @@
|
|
|
721
717
|
"calculated_at",
|
|
722
718
|
"values"
|
|
723
719
|
],
|
|
724
|
-
"additionalProperties": false
|
|
720
|
+
"additionalProperties": false,
|
|
721
|
+
"title": "Prevented Emissions Calculation",
|
|
722
|
+
"description": "Methodology-based calculation of prevented CO₂e emissions, including formula, method, input values, and computation timestamp"
|
|
725
723
|
}
|
|
726
724
|
},
|
|
727
725
|
"required": [
|
|
@@ -733,38 +731,32 @@
|
|
|
733
731
|
"origin_location",
|
|
734
732
|
"prevented_emissions_calculation"
|
|
735
733
|
],
|
|
736
|
-
"additionalProperties": false
|
|
734
|
+
"additionalProperties": false,
|
|
735
|
+
"title": "GasID Data",
|
|
736
|
+
"description": "Complete GasID certificate data including summary metrics, methodology reference, audit trail, source MassID, waste properties, origin location, and emissions calculation"
|
|
737
737
|
},
|
|
738
738
|
"audit_data_hash": {
|
|
739
|
+
"type": "string",
|
|
740
|
+
"pattern": "^[0-9a-fA-F]{64}$",
|
|
739
741
|
"title": "Audit Data Hash",
|
|
740
742
|
"description": "SHA-256 hash of the original JSON content including private data before schema validation, used for data audit purposes",
|
|
741
743
|
"examples": [
|
|
742
744
|
"87f633634cc4b02f628685651f0a29b7bfa22a0bd841f725c6772dd00a58d489"
|
|
743
|
-
]
|
|
744
|
-
"type": "string",
|
|
745
|
-
"pattern": "^[0-9a-fA-F]{64}$"
|
|
745
|
+
]
|
|
746
746
|
},
|
|
747
747
|
"blockchain": {
|
|
748
|
-
"title": "Blockchain Information",
|
|
749
|
-
"description": "Blockchain deployment information including smart contract address, network, and token identifier",
|
|
750
748
|
"type": "object",
|
|
751
749
|
"properties": {
|
|
752
750
|
"smart_contract_address": {
|
|
751
|
+
"type": "string",
|
|
752
|
+
"pattern": "^0x[a-f0-9]{40}$",
|
|
753
753
|
"title": "Smart Contract Address",
|
|
754
754
|
"description": "Ethereum-compatible address of the smart contract that mints and manages this token",
|
|
755
755
|
"examples": [
|
|
756
756
|
"0x1234567890abcdef1234567890abcdef12345678"
|
|
757
|
-
]
|
|
758
|
-
"type": "string",
|
|
759
|
-
"pattern": "^0x[a-f0-9]{40}$"
|
|
757
|
+
]
|
|
760
758
|
},
|
|
761
759
|
"chain_id": {
|
|
762
|
-
"title": "Chain ID",
|
|
763
|
-
"description": "Blockchain network chain identifier (e.g., 137 for Polygon mainnet, 80002 for Amoy testnet)",
|
|
764
|
-
"examples": [
|
|
765
|
-
137,
|
|
766
|
-
80002
|
|
767
|
-
],
|
|
768
760
|
"anyOf": [
|
|
769
761
|
{
|
|
770
762
|
"type": "number",
|
|
@@ -774,31 +766,37 @@
|
|
|
774
766
|
"type": "number",
|
|
775
767
|
"const": 80002
|
|
776
768
|
}
|
|
769
|
+
],
|
|
770
|
+
"title": "Chain ID",
|
|
771
|
+
"description": "Blockchain network chain identifier (e.g., 137 for Polygon mainnet, 80002 for Amoy testnet)",
|
|
772
|
+
"examples": [
|
|
773
|
+
137,
|
|
774
|
+
80002
|
|
777
775
|
]
|
|
778
776
|
},
|
|
779
777
|
"network_name": {
|
|
780
|
-
"
|
|
781
|
-
"
|
|
782
|
-
"examples": [
|
|
778
|
+
"type": "string",
|
|
779
|
+
"enum": [
|
|
783
780
|
"Polygon",
|
|
784
781
|
"Amoy"
|
|
785
782
|
],
|
|
786
|
-
"
|
|
787
|
-
"
|
|
783
|
+
"title": "Blockchain Network Name",
|
|
784
|
+
"description": "Blockchain network name. Supported values include Polygon and Amoy",
|
|
785
|
+
"examples": [
|
|
788
786
|
"Polygon",
|
|
789
787
|
"Amoy"
|
|
790
788
|
]
|
|
791
789
|
},
|
|
792
790
|
"token_id": {
|
|
791
|
+
"type": "string",
|
|
792
|
+
"minLength": 1,
|
|
793
|
+
"pattern": "^\\d+$",
|
|
793
794
|
"title": "Token ID",
|
|
794
795
|
"description": "NFT token ID",
|
|
795
796
|
"examples": [
|
|
796
797
|
"456789",
|
|
797
798
|
"1000000"
|
|
798
|
-
]
|
|
799
|
-
"type": "string",
|
|
800
|
-
"minLength": 1,
|
|
801
|
-
"pattern": "^\\d+$"
|
|
799
|
+
]
|
|
802
800
|
}
|
|
803
801
|
},
|
|
804
802
|
"required": [
|
|
@@ -807,64 +805,66 @@
|
|
|
807
805
|
"network_name",
|
|
808
806
|
"token_id"
|
|
809
807
|
],
|
|
810
|
-
"additionalProperties": false
|
|
808
|
+
"additionalProperties": false,
|
|
809
|
+
"title": "Blockchain Information",
|
|
810
|
+
"description": "Blockchain deployment information including smart contract address, network, and token identifier"
|
|
811
811
|
},
|
|
812
812
|
"name": {
|
|
813
|
+
"type": "string",
|
|
814
|
+
"minLength": 1,
|
|
815
|
+
"maxLength": 100,
|
|
816
|
+
"pattern": "^GasID #\\d+ • .+ • .+t CO₂e$",
|
|
813
817
|
"title": "GasID Name",
|
|
814
818
|
"description": "Full display name for this GasID NFT. Format: \"GasID #[token_id] • [methodology] • [co2e]t CO₂e\"",
|
|
815
819
|
"examples": [
|
|
816
820
|
"GasID #456 • BOLD Carbon (CH₄) • 0.86t CO₂e",
|
|
817
821
|
"GasID #789 • BOLD Carbon (CH₄) • 1.2t CO₂e"
|
|
818
|
-
]
|
|
819
|
-
"type": "string",
|
|
820
|
-
"minLength": 1,
|
|
821
|
-
"maxLength": 100,
|
|
822
|
-
"pattern": "^GasID #\\d+ • .+ • .+t CO₂e$"
|
|
822
|
+
]
|
|
823
823
|
},
|
|
824
824
|
"short_name": {
|
|
825
|
+
"type": "string",
|
|
826
|
+
"minLength": 1,
|
|
827
|
+
"maxLength": 50,
|
|
828
|
+
"pattern": "^GasID #\\d+$",
|
|
825
829
|
"title": "GasID Short Name",
|
|
826
830
|
"description": "Compact name for UI summaries, tables, or tooltips. Format: \"GasID #[token_id]\"",
|
|
827
831
|
"examples": [
|
|
828
832
|
"GasID #456",
|
|
829
833
|
"GasID #789"
|
|
830
|
-
]
|
|
831
|
-
"type": "string",
|
|
832
|
-
"minLength": 1,
|
|
833
|
-
"maxLength": 50,
|
|
834
|
-
"pattern": "^GasID #\\d+$"
|
|
834
|
+
]
|
|
835
835
|
},
|
|
836
836
|
"description": {
|
|
837
|
+
"type": "string",
|
|
838
|
+
"minLength": 1,
|
|
839
|
+
"maxLength": 500,
|
|
837
840
|
"title": "Description",
|
|
838
841
|
"description": "Human-readable summary describing the waste batch, origin, processing method, and chain of custody. Ideally, maximum 300 characters.",
|
|
839
842
|
"examples": [
|
|
840
843
|
"This MassID represents 3 metric tons of organic food waste from Enlatados Produção, tracked through complete chain of custody from generation to composting.",
|
|
841
844
|
"This RecycledID represents 2.5 metric tons of recycled plastic bottles processed by Green Solutions Ltd."
|
|
842
|
-
]
|
|
843
|
-
"type": "string",
|
|
844
|
-
"minLength": 1,
|
|
845
|
-
"maxLength": 500
|
|
845
|
+
]
|
|
846
846
|
},
|
|
847
847
|
"image": {
|
|
848
|
+
"type": "string",
|
|
849
|
+
"minLength": 1,
|
|
850
|
+
"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]*)?$",
|
|
848
851
|
"title": "Image URI",
|
|
849
852
|
"description": "IPFS URI pointing to the NFT preview image displayed in marketplaces and wallets",
|
|
850
853
|
"examples": [
|
|
851
854
|
"ipfs://bafybeigdyrztvzl5cceubvaxob7iqh6f3f7s36c74ojav2xsz2uib2g3vm",
|
|
852
855
|
"ipfs://bafybeihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku"
|
|
853
|
-
]
|
|
854
|
-
"type": "string",
|
|
855
|
-
"minLength": 1,
|
|
856
|
-
"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]*)?$"
|
|
856
|
+
]
|
|
857
857
|
},
|
|
858
858
|
"background_color": {
|
|
859
859
|
"title": "Background Color",
|
|
860
860
|
"description": "Hexadecimal color code used as background color in NFT marketplace displays",
|
|
861
|
+
"type": "string",
|
|
862
|
+
"minLength": 1,
|
|
863
|
+
"pattern": "^#[0-9A-F]{6}$",
|
|
861
864
|
"examples": [
|
|
862
865
|
"#2D5A27",
|
|
863
866
|
"#FF5733"
|
|
864
|
-
]
|
|
865
|
-
"type": "string",
|
|
866
|
-
"minLength": 1,
|
|
867
|
-
"pattern": "^#[0-9A-F]{6}$"
|
|
867
|
+
]
|
|
868
868
|
},
|
|
869
869
|
"animation_url": {
|
|
870
870
|
"title": "Animation URL",
|
|
@@ -882,26 +882,28 @@
|
|
|
882
882
|
"description": "Optional list of public resource links with labels",
|
|
883
883
|
"type": "array",
|
|
884
884
|
"items": {
|
|
885
|
-
"title": "External Link",
|
|
886
|
-
"description": "External link with label and description",
|
|
887
885
|
"type": "object",
|
|
888
886
|
"properties": {
|
|
889
887
|
"label": {
|
|
890
|
-
"title": "Link Label",
|
|
891
|
-
"description": "Display name for the external link",
|
|
892
888
|
"type": "string",
|
|
893
889
|
"minLength": 1,
|
|
894
|
-
"maxLength": 50
|
|
890
|
+
"maxLength": 50,
|
|
891
|
+
"title": "Link Label",
|
|
892
|
+
"description": "Display name for the external link",
|
|
893
|
+
"examples": [
|
|
894
|
+
"example-value",
|
|
895
|
+
"Hello World"
|
|
896
|
+
]
|
|
895
897
|
},
|
|
896
898
|
"url": {
|
|
899
|
+
"type": "string",
|
|
900
|
+
"format": "uri",
|
|
897
901
|
"title": "Link URL",
|
|
898
902
|
"description": "Direct URI to the linked resource",
|
|
899
903
|
"examples": [
|
|
900
904
|
"https://explore.carrot.eco/",
|
|
901
905
|
"https://whitepaper.carrot.eco/"
|
|
902
|
-
]
|
|
903
|
-
"type": "string",
|
|
904
|
-
"format": "uri"
|
|
906
|
+
]
|
|
905
907
|
},
|
|
906
908
|
"description": {
|
|
907
909
|
"title": "Link Description",
|
|
@@ -915,17 +917,15 @@
|
|
|
915
917
|
"label",
|
|
916
918
|
"url"
|
|
917
919
|
],
|
|
918
|
-
"additionalProperties": false
|
|
920
|
+
"additionalProperties": false,
|
|
921
|
+
"title": "External Link",
|
|
922
|
+
"description": "External link with label and description"
|
|
919
923
|
}
|
|
920
924
|
},
|
|
921
925
|
"attributes": {
|
|
922
|
-
"title": "GasID NFT Attribute Array",
|
|
923
|
-
"description": "Schema for the fixed set of GasID NFT attributes, enforcing order and type for each trait.\n\nRequired attributes (13, in order): Methodology, Gas Type, CO₂e Prevented (kg), Credit Amount, Credit Type, Source Waste Type, Source Weight (kg), Origin City, Origin Country Subdivision, MassID, MassID Recycling Date, Recycling Date, Certificate Issuance Date.",
|
|
924
926
|
"type": "array",
|
|
925
927
|
"prefixItems": [
|
|
926
928
|
{
|
|
927
|
-
"title": "Methodology Attribute",
|
|
928
|
-
"description": "Methodology used for certification",
|
|
929
929
|
"type": "object",
|
|
930
930
|
"properties": {
|
|
931
931
|
"trait_type": {
|
|
@@ -933,14 +933,14 @@
|
|
|
933
933
|
"const": "Methodology"
|
|
934
934
|
},
|
|
935
935
|
"value": {
|
|
936
|
-
"
|
|
937
|
-
"
|
|
938
|
-
"examples": [
|
|
936
|
+
"type": "string",
|
|
937
|
+
"enum": [
|
|
939
938
|
"AMS-III.F. | BOLD Carbon (CH₄) - SSC",
|
|
940
939
|
"AMS-III.F. | BOLD Recycling Credit"
|
|
941
940
|
],
|
|
942
|
-
"
|
|
943
|
-
"
|
|
941
|
+
"title": "Methodology Name",
|
|
942
|
+
"description": "Full official name of the methodology",
|
|
943
|
+
"examples": [
|
|
944
944
|
"AMS-III.F. | BOLD Carbon (CH₄) - SSC",
|
|
945
945
|
"AMS-III.F. | BOLD Recycling Credit"
|
|
946
946
|
]
|
|
@@ -959,24 +959,24 @@
|
|
|
959
959
|
"max_value": {
|
|
960
960
|
"title": "Max Value",
|
|
961
961
|
"description": "Maximum possible value for numeric traits",
|
|
962
|
+
"type": "number",
|
|
963
|
+
"minimum": 0,
|
|
962
964
|
"examples": [
|
|
963
965
|
0,
|
|
964
966
|
45.2,
|
|
965
967
|
72.5
|
|
966
|
-
]
|
|
967
|
-
"type": "number",
|
|
968
|
-
"minimum": 0
|
|
968
|
+
]
|
|
969
969
|
}
|
|
970
970
|
},
|
|
971
971
|
"required": [
|
|
972
972
|
"trait_type",
|
|
973
973
|
"value"
|
|
974
974
|
],
|
|
975
|
-
"additionalProperties": false
|
|
975
|
+
"additionalProperties": false,
|
|
976
|
+
"title": "Methodology Attribute",
|
|
977
|
+
"description": "Methodology used for certification"
|
|
976
978
|
},
|
|
977
979
|
{
|
|
978
|
-
"title": "Gas Type Attribute",
|
|
979
|
-
"description": "Gas type attribute",
|
|
980
980
|
"type": "object",
|
|
981
981
|
"properties": {
|
|
982
982
|
"trait_type": {
|
|
@@ -984,14 +984,14 @@
|
|
|
984
984
|
"const": "Gas Type"
|
|
985
985
|
},
|
|
986
986
|
"value": {
|
|
987
|
-
"title": "Gas Type",
|
|
988
|
-
"description": "Type of gas prevented",
|
|
989
|
-
"examples": [
|
|
990
|
-
"Methane (CH₄)"
|
|
991
|
-
],
|
|
992
987
|
"type": "string",
|
|
993
988
|
"enum": [
|
|
994
989
|
"Methane (CH₄)"
|
|
990
|
+
],
|
|
991
|
+
"title": "Gas Type",
|
|
992
|
+
"description": "Greenhouse gas type whose emission was prevented through the waste management activity",
|
|
993
|
+
"examples": [
|
|
994
|
+
"Methane (CH₄)"
|
|
995
995
|
]
|
|
996
996
|
},
|
|
997
997
|
"display_type": {
|
|
@@ -1008,24 +1008,24 @@
|
|
|
1008
1008
|
"max_value": {
|
|
1009
1009
|
"title": "Max Value",
|
|
1010
1010
|
"description": "Maximum possible value for numeric traits",
|
|
1011
|
+
"type": "number",
|
|
1012
|
+
"minimum": 0,
|
|
1011
1013
|
"examples": [
|
|
1012
1014
|
0,
|
|
1013
1015
|
45.2,
|
|
1014
1016
|
72.5
|
|
1015
|
-
]
|
|
1016
|
-
"type": "number",
|
|
1017
|
-
"minimum": 0
|
|
1017
|
+
]
|
|
1018
1018
|
}
|
|
1019
1019
|
},
|
|
1020
1020
|
"required": [
|
|
1021
1021
|
"trait_type",
|
|
1022
1022
|
"value"
|
|
1023
1023
|
],
|
|
1024
|
-
"additionalProperties": false
|
|
1024
|
+
"additionalProperties": false,
|
|
1025
|
+
"title": "Gas Type Attribute",
|
|
1026
|
+
"description": "Type of greenhouse gas whose emissions were prevented (e.g., Methane (CH₄))"
|
|
1025
1027
|
},
|
|
1026
1028
|
{
|
|
1027
|
-
"title": "CO₂e Prevented Attribute",
|
|
1028
|
-
"description": "Total CO₂ equivalent emissions prevented in kilograms attribute with numeric display",
|
|
1029
1029
|
"type": "object",
|
|
1030
1030
|
"properties": {
|
|
1031
1031
|
"trait_type": {
|
|
@@ -1033,15 +1033,15 @@
|
|
|
1033
1033
|
"const": "CO₂e Prevented (kg)"
|
|
1034
1034
|
},
|
|
1035
1035
|
"value": {
|
|
1036
|
+
"type": "number",
|
|
1037
|
+
"minimum": 0,
|
|
1036
1038
|
"title": "CO₂e Prevented",
|
|
1037
1039
|
"description": "Total CO₂ equivalent emissions prevented in kilograms",
|
|
1038
1040
|
"examples": [
|
|
1039
1041
|
0,
|
|
1040
1042
|
45.2,
|
|
1041
1043
|
72.5
|
|
1042
|
-
]
|
|
1043
|
-
"type": "number",
|
|
1044
|
-
"minimum": 0
|
|
1044
|
+
]
|
|
1045
1045
|
},
|
|
1046
1046
|
"display_type": {
|
|
1047
1047
|
"type": "string",
|
|
@@ -1050,13 +1050,13 @@
|
|
|
1050
1050
|
"max_value": {
|
|
1051
1051
|
"title": "Max Value",
|
|
1052
1052
|
"description": "Maximum possible value for numeric traits",
|
|
1053
|
+
"type": "number",
|
|
1054
|
+
"minimum": 0,
|
|
1053
1055
|
"examples": [
|
|
1054
1056
|
0,
|
|
1055
1057
|
45.2,
|
|
1056
1058
|
72.5
|
|
1057
|
-
]
|
|
1058
|
-
"type": "number",
|
|
1059
|
-
"minimum": 0
|
|
1059
|
+
]
|
|
1060
1060
|
}
|
|
1061
1061
|
},
|
|
1062
1062
|
"required": [
|
|
@@ -1064,11 +1064,11 @@
|
|
|
1064
1064
|
"value",
|
|
1065
1065
|
"display_type"
|
|
1066
1066
|
],
|
|
1067
|
-
"additionalProperties": false
|
|
1067
|
+
"additionalProperties": false,
|
|
1068
|
+
"title": "CO₂e Prevented Attribute",
|
|
1069
|
+
"description": "Total CO₂ equivalent emissions prevented in kilograms attribute with numeric display"
|
|
1068
1070
|
},
|
|
1069
1071
|
{
|
|
1070
|
-
"title": "Credit Amount Attribute",
|
|
1071
|
-
"description": "Credit amount attribute with numeric display",
|
|
1072
1072
|
"type": "object",
|
|
1073
1073
|
"properties": {
|
|
1074
1074
|
"trait_type": {
|
|
@@ -1076,15 +1076,15 @@
|
|
|
1076
1076
|
"const": "Credit Amount"
|
|
1077
1077
|
},
|
|
1078
1078
|
"value": {
|
|
1079
|
+
"type": "number",
|
|
1080
|
+
"minimum": 0,
|
|
1079
1081
|
"title": "Credit Amount",
|
|
1080
1082
|
"description": "Credit amount",
|
|
1081
1083
|
"examples": [
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
]
|
|
1086
|
-
"type": "number",
|
|
1087
|
-
"minimum": 0
|
|
1084
|
+
1.5,
|
|
1085
|
+
100,
|
|
1086
|
+
2500.75
|
|
1087
|
+
]
|
|
1088
1088
|
},
|
|
1089
1089
|
"display_type": {
|
|
1090
1090
|
"type": "string",
|
|
@@ -1093,13 +1093,13 @@
|
|
|
1093
1093
|
"max_value": {
|
|
1094
1094
|
"title": "Max Value",
|
|
1095
1095
|
"description": "Maximum possible value for numeric traits",
|
|
1096
|
+
"type": "number",
|
|
1097
|
+
"minimum": 0,
|
|
1096
1098
|
"examples": [
|
|
1097
1099
|
0,
|
|
1098
1100
|
45.2,
|
|
1099
1101
|
72.5
|
|
1100
|
-
]
|
|
1101
|
-
"type": "number",
|
|
1102
|
-
"minimum": 0
|
|
1102
|
+
]
|
|
1103
1103
|
}
|
|
1104
1104
|
},
|
|
1105
1105
|
"required": [
|
|
@@ -1107,11 +1107,11 @@
|
|
|
1107
1107
|
"value",
|
|
1108
1108
|
"display_type"
|
|
1109
1109
|
],
|
|
1110
|
-
"additionalProperties": false
|
|
1110
|
+
"additionalProperties": false,
|
|
1111
|
+
"title": "Credit Amount Attribute",
|
|
1112
|
+
"description": "Credit amount attribute with numeric display"
|
|
1111
1113
|
},
|
|
1112
1114
|
{
|
|
1113
|
-
"title": "Credit Type Attribute",
|
|
1114
|
-
"description": "Credit type attribute",
|
|
1115
1115
|
"type": "object",
|
|
1116
1116
|
"properties": {
|
|
1117
1117
|
"trait_type": {
|
|
@@ -1119,14 +1119,14 @@
|
|
|
1119
1119
|
"const": "Credit Type"
|
|
1120
1120
|
},
|
|
1121
1121
|
"value": {
|
|
1122
|
-
"
|
|
1123
|
-
"
|
|
1124
|
-
"examples": [
|
|
1122
|
+
"type": "string",
|
|
1123
|
+
"enum": [
|
|
1125
1124
|
"Biowaste",
|
|
1126
1125
|
"Carbon (CH₄)"
|
|
1127
1126
|
],
|
|
1128
|
-
"
|
|
1129
|
-
"
|
|
1127
|
+
"title": "Credit Type",
|
|
1128
|
+
"description": "Category of environmental credit — indicates the impact pathway (biowaste diversion or methane prevention)",
|
|
1129
|
+
"examples": [
|
|
1130
1130
|
"Biowaste",
|
|
1131
1131
|
"Carbon (CH₄)"
|
|
1132
1132
|
]
|
|
@@ -1145,24 +1145,24 @@
|
|
|
1145
1145
|
"max_value": {
|
|
1146
1146
|
"title": "Max Value",
|
|
1147
1147
|
"description": "Maximum possible value for numeric traits",
|
|
1148
|
+
"type": "number",
|
|
1149
|
+
"minimum": 0,
|
|
1148
1150
|
"examples": [
|
|
1149
1151
|
0,
|
|
1150
1152
|
45.2,
|
|
1151
1153
|
72.5
|
|
1152
|
-
]
|
|
1153
|
-
"type": "number",
|
|
1154
|
-
"minimum": 0
|
|
1154
|
+
]
|
|
1155
1155
|
}
|
|
1156
1156
|
},
|
|
1157
1157
|
"required": [
|
|
1158
1158
|
"trait_type",
|
|
1159
1159
|
"value"
|
|
1160
1160
|
],
|
|
1161
|
-
"additionalProperties": false
|
|
1161
|
+
"additionalProperties": false,
|
|
1162
|
+
"title": "Credit Type Attribute",
|
|
1163
|
+
"description": "Credit type attribute"
|
|
1162
1164
|
},
|
|
1163
1165
|
{
|
|
1164
|
-
"title": "Source Waste Type Attribute",
|
|
1165
|
-
"description": "Source waste type attribute",
|
|
1166
1166
|
"type": "object",
|
|
1167
1167
|
"properties": {
|
|
1168
1168
|
"trait_type": {
|
|
@@ -1170,14 +1170,14 @@
|
|
|
1170
1170
|
"const": "Source Waste Type"
|
|
1171
1171
|
},
|
|
1172
1172
|
"value": {
|
|
1173
|
-
"title": "Waste Type",
|
|
1174
|
-
"description": "Category or type of waste material",
|
|
1175
|
-
"examples": [
|
|
1176
|
-
"Organic"
|
|
1177
|
-
],
|
|
1178
1173
|
"type": "string",
|
|
1179
1174
|
"enum": [
|
|
1180
1175
|
"Organic"
|
|
1176
|
+
],
|
|
1177
|
+
"title": "Waste Type",
|
|
1178
|
+
"description": "Broad classification of the waste material being tracked (e.g., Organic)",
|
|
1179
|
+
"examples": [
|
|
1180
|
+
"Organic"
|
|
1181
1181
|
]
|
|
1182
1182
|
},
|
|
1183
1183
|
"display_type": {
|
|
@@ -1194,24 +1194,24 @@
|
|
|
1194
1194
|
"max_value": {
|
|
1195
1195
|
"title": "Max Value",
|
|
1196
1196
|
"description": "Maximum possible value for numeric traits",
|
|
1197
|
+
"type": "number",
|
|
1198
|
+
"minimum": 0,
|
|
1197
1199
|
"examples": [
|
|
1198
1200
|
0,
|
|
1199
1201
|
45.2,
|
|
1200
1202
|
72.5
|
|
1201
|
-
]
|
|
1202
|
-
"type": "number",
|
|
1203
|
-
"minimum": 0
|
|
1203
|
+
]
|
|
1204
1204
|
}
|
|
1205
1205
|
},
|
|
1206
1206
|
"required": [
|
|
1207
1207
|
"trait_type",
|
|
1208
1208
|
"value"
|
|
1209
1209
|
],
|
|
1210
|
-
"additionalProperties": false
|
|
1210
|
+
"additionalProperties": false,
|
|
1211
|
+
"title": "Source Waste Type Attribute",
|
|
1212
|
+
"description": "Source waste type attribute"
|
|
1211
1213
|
},
|
|
1212
1214
|
{
|
|
1213
|
-
"title": "Source Weight Attribute",
|
|
1214
|
-
"description": "Weight of the source waste in kilograms attribute with numeric display",
|
|
1215
1215
|
"type": "object",
|
|
1216
1216
|
"properties": {
|
|
1217
1217
|
"trait_type": {
|
|
@@ -1219,14 +1219,14 @@
|
|
|
1219
1219
|
"const": "Source Weight (kg)"
|
|
1220
1220
|
},
|
|
1221
1221
|
"value": {
|
|
1222
|
+
"type": "number",
|
|
1223
|
+
"minimum": 0,
|
|
1222
1224
|
"title": "Source Weight",
|
|
1223
1225
|
"description": "Weight of the source waste in kilograms",
|
|
1224
1226
|
"examples": [
|
|
1225
1227
|
500.35,
|
|
1226
1228
|
3000
|
|
1227
|
-
]
|
|
1228
|
-
"type": "number",
|
|
1229
|
-
"minimum": 0
|
|
1229
|
+
]
|
|
1230
1230
|
},
|
|
1231
1231
|
"display_type": {
|
|
1232
1232
|
"type": "string",
|
|
@@ -1235,13 +1235,13 @@
|
|
|
1235
1235
|
"max_value": {
|
|
1236
1236
|
"title": "Max Value",
|
|
1237
1237
|
"description": "Maximum possible value for numeric traits",
|
|
1238
|
+
"type": "number",
|
|
1239
|
+
"minimum": 0,
|
|
1238
1240
|
"examples": [
|
|
1239
1241
|
0,
|
|
1240
1242
|
45.2,
|
|
1241
1243
|
72.5
|
|
1242
|
-
]
|
|
1243
|
-
"type": "number",
|
|
1244
|
-
"minimum": 0
|
|
1244
|
+
]
|
|
1245
1245
|
}
|
|
1246
1246
|
},
|
|
1247
1247
|
"required": [
|
|
@@ -1249,11 +1249,11 @@
|
|
|
1249
1249
|
"value",
|
|
1250
1250
|
"display_type"
|
|
1251
1251
|
],
|
|
1252
|
-
"additionalProperties": false
|
|
1252
|
+
"additionalProperties": false,
|
|
1253
|
+
"title": "Source Weight Attribute",
|
|
1254
|
+
"description": "Weight of the source waste in kilograms attribute with numeric display"
|
|
1253
1255
|
},
|
|
1254
1256
|
{
|
|
1255
|
-
"title": "Origin City Attribute",
|
|
1256
|
-
"description": "City or municipality where waste was originally generated and picked up",
|
|
1257
1257
|
"type": "object",
|
|
1258
1258
|
"properties": {
|
|
1259
1259
|
"trait_type": {
|
|
@@ -1261,15 +1261,17 @@
|
|
|
1261
1261
|
"const": "Origin City"
|
|
1262
1262
|
},
|
|
1263
1263
|
"value": {
|
|
1264
|
+
"type": "string",
|
|
1265
|
+
"minLength": 1,
|
|
1266
|
+
"maxLength": 50,
|
|
1264
1267
|
"title": "City",
|
|
1265
|
-
"description": "
|
|
1268
|
+
"description": "Name of the Brazilian municipality where the activity takes place",
|
|
1266
1269
|
"examples": [
|
|
1267
1270
|
"Brasília",
|
|
1268
|
-
"São Paulo"
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
"maxLength": 50
|
|
1271
|
+
"São Paulo",
|
|
1272
|
+
"Carazinho",
|
|
1273
|
+
"Jundiaí"
|
|
1274
|
+
]
|
|
1273
1275
|
},
|
|
1274
1276
|
"display_type": {
|
|
1275
1277
|
"title": "Display Type",
|
|
@@ -1285,24 +1287,24 @@
|
|
|
1285
1287
|
"max_value": {
|
|
1286
1288
|
"title": "Max Value",
|
|
1287
1289
|
"description": "Maximum possible value for numeric traits",
|
|
1290
|
+
"type": "number",
|
|
1291
|
+
"minimum": 0,
|
|
1288
1292
|
"examples": [
|
|
1289
1293
|
0,
|
|
1290
1294
|
45.2,
|
|
1291
1295
|
72.5
|
|
1292
|
-
]
|
|
1293
|
-
"type": "number",
|
|
1294
|
-
"minimum": 0
|
|
1296
|
+
]
|
|
1295
1297
|
}
|
|
1296
1298
|
},
|
|
1297
1299
|
"required": [
|
|
1298
1300
|
"trait_type",
|
|
1299
1301
|
"value"
|
|
1300
1302
|
],
|
|
1301
|
-
"additionalProperties": false
|
|
1303
|
+
"additionalProperties": false,
|
|
1304
|
+
"title": "Origin City Attribute",
|
|
1305
|
+
"description": "City or municipality where waste was originally generated and picked up"
|
|
1302
1306
|
},
|
|
1303
1307
|
{
|
|
1304
|
-
"title": "Origin Country Subdivision Attribute",
|
|
1305
|
-
"description": "ISO 3166-2 country subdivision code where waste was originally generated and picked up",
|
|
1306
1308
|
"type": "object",
|
|
1307
1309
|
"properties": {
|
|
1308
1310
|
"trait_type": {
|
|
@@ -1310,14 +1312,16 @@
|
|
|
1310
1312
|
"const": "Origin Country Subdivision"
|
|
1311
1313
|
},
|
|
1312
1314
|
"value": {
|
|
1315
|
+
"type": "string",
|
|
1316
|
+
"pattern": "^[A-Z]{2}-[A-Z0-9]{1,3}$",
|
|
1313
1317
|
"title": "Country Subdivision Code",
|
|
1314
|
-
"description": "
|
|
1318
|
+
"description": "State or region code following the ISO 3166-2 standard (e.g., BR-SP for São Paulo)",
|
|
1315
1319
|
"examples": [
|
|
1320
|
+
"BR-SP",
|
|
1321
|
+
"BR-RS",
|
|
1316
1322
|
"BR-AP",
|
|
1317
1323
|
"BR-DF"
|
|
1318
|
-
]
|
|
1319
|
-
"type": "string",
|
|
1320
|
-
"pattern": "^[A-Z]{2}-[A-Z0-9]{1,3}$"
|
|
1324
|
+
]
|
|
1321
1325
|
},
|
|
1322
1326
|
"display_type": {
|
|
1323
1327
|
"title": "Display Type",
|
|
@@ -1333,24 +1337,24 @@
|
|
|
1333
1337
|
"max_value": {
|
|
1334
1338
|
"title": "Max Value",
|
|
1335
1339
|
"description": "Maximum possible value for numeric traits",
|
|
1340
|
+
"type": "number",
|
|
1341
|
+
"minimum": 0,
|
|
1336
1342
|
"examples": [
|
|
1337
1343
|
0,
|
|
1338
1344
|
45.2,
|
|
1339
1345
|
72.5
|
|
1340
|
-
]
|
|
1341
|
-
"type": "number",
|
|
1342
|
-
"minimum": 0
|
|
1346
|
+
]
|
|
1343
1347
|
}
|
|
1344
1348
|
},
|
|
1345
1349
|
"required": [
|
|
1346
1350
|
"trait_type",
|
|
1347
1351
|
"value"
|
|
1348
1352
|
],
|
|
1349
|
-
"additionalProperties": false
|
|
1353
|
+
"additionalProperties": false,
|
|
1354
|
+
"title": "Origin Country Subdivision Attribute",
|
|
1355
|
+
"description": "ISO 3166-2 country subdivision code where waste was originally generated and picked up"
|
|
1350
1356
|
},
|
|
1351
1357
|
{
|
|
1352
|
-
"title": "MassID Token ID Attribute",
|
|
1353
|
-
"description": "MassID token ID attribute",
|
|
1354
1358
|
"type": "object",
|
|
1355
1359
|
"properties": {
|
|
1356
1360
|
"trait_type": {
|
|
@@ -1358,12 +1362,16 @@
|
|
|
1358
1362
|
"const": "MassID"
|
|
1359
1363
|
},
|
|
1360
1364
|
"value": {
|
|
1361
|
-
"title": "MassID Token ID",
|
|
1362
|
-
"description": "Token ID of the source MassID NFT as #<token_id>",
|
|
1363
|
-
"example": "#123",
|
|
1364
1365
|
"type": "string",
|
|
1365
1366
|
"minLength": 1,
|
|
1366
|
-
"pattern": "^#\\d+$"
|
|
1367
|
+
"pattern": "^#\\d+$",
|
|
1368
|
+
"title": "MassID Token ID",
|
|
1369
|
+
"description": "Token ID of the source MassID NFT as #<token_id>",
|
|
1370
|
+
"examples": [
|
|
1371
|
+
"#456789",
|
|
1372
|
+
"#1000000"
|
|
1373
|
+
],
|
|
1374
|
+
"example": "#456789"
|
|
1367
1375
|
},
|
|
1368
1376
|
"display_type": {
|
|
1369
1377
|
"title": "Display Type",
|
|
@@ -1379,24 +1387,24 @@
|
|
|
1379
1387
|
"max_value": {
|
|
1380
1388
|
"title": "Max Value",
|
|
1381
1389
|
"description": "Maximum possible value for numeric traits",
|
|
1390
|
+
"type": "number",
|
|
1391
|
+
"minimum": 0,
|
|
1382
1392
|
"examples": [
|
|
1383
1393
|
0,
|
|
1384
1394
|
45.2,
|
|
1385
1395
|
72.5
|
|
1386
|
-
]
|
|
1387
|
-
"type": "number",
|
|
1388
|
-
"minimum": 0
|
|
1396
|
+
]
|
|
1389
1397
|
}
|
|
1390
1398
|
},
|
|
1391
1399
|
"required": [
|
|
1392
1400
|
"trait_type",
|
|
1393
1401
|
"value"
|
|
1394
1402
|
],
|
|
1395
|
-
"additionalProperties": false
|
|
1403
|
+
"additionalProperties": false,
|
|
1404
|
+
"title": "MassID Token ID Attribute",
|
|
1405
|
+
"description": "MassID token ID attribute"
|
|
1396
1406
|
},
|
|
1397
1407
|
{
|
|
1398
|
-
"title": "MassID Recycling Date Attribute",
|
|
1399
|
-
"description": "Unix timestamp in milliseconds when the source waste was recycled attribute",
|
|
1400
1408
|
"type": "object",
|
|
1401
1409
|
"properties": {
|
|
1402
1410
|
"trait_type": {
|
|
@@ -1404,14 +1412,14 @@
|
|
|
1404
1412
|
"const": "MassID Recycling Date"
|
|
1405
1413
|
},
|
|
1406
1414
|
"value": {
|
|
1415
|
+
"type": "integer",
|
|
1416
|
+
"exclusiveMinimum": 0,
|
|
1417
|
+
"maximum": 9007199254740991,
|
|
1407
1418
|
"title": "MassID Recycling Date",
|
|
1408
1419
|
"description": "Unix timestamp in milliseconds when the source waste was recycled",
|
|
1409
1420
|
"examples": [
|
|
1410
1421
|
1704067200000
|
|
1411
|
-
]
|
|
1412
|
-
"type": "integer",
|
|
1413
|
-
"exclusiveMinimum": 0,
|
|
1414
|
-
"maximum": 9007199254740991
|
|
1422
|
+
]
|
|
1415
1423
|
},
|
|
1416
1424
|
"display_type": {
|
|
1417
1425
|
"type": "string",
|
|
@@ -1423,11 +1431,11 @@
|
|
|
1423
1431
|
"value",
|
|
1424
1432
|
"display_type"
|
|
1425
1433
|
],
|
|
1426
|
-
"additionalProperties": false
|
|
1434
|
+
"additionalProperties": false,
|
|
1435
|
+
"title": "MassID Recycling Date Attribute",
|
|
1436
|
+
"description": "Unix timestamp in milliseconds when the source waste was recycled attribute"
|
|
1427
1437
|
},
|
|
1428
1438
|
{
|
|
1429
|
-
"title": "Recycling Date Attribute",
|
|
1430
|
-
"description": "Unix timestamp in milliseconds when the recycling occurred (when the environmental gain was achieved) attribute",
|
|
1431
1439
|
"type": "object",
|
|
1432
1440
|
"properties": {
|
|
1433
1441
|
"trait_type": {
|
|
@@ -1435,14 +1443,14 @@
|
|
|
1435
1443
|
"const": "Recycling Date"
|
|
1436
1444
|
},
|
|
1437
1445
|
"value": {
|
|
1446
|
+
"type": "integer",
|
|
1447
|
+
"exclusiveMinimum": 0,
|
|
1448
|
+
"maximum": 9007199254740991,
|
|
1438
1449
|
"title": "Recycling Date",
|
|
1439
1450
|
"description": "Unix timestamp in milliseconds when the recycling occurred (when the environmental gain was achieved)",
|
|
1440
1451
|
"examples": [
|
|
1441
1452
|
1704067200000
|
|
1442
|
-
]
|
|
1443
|
-
"type": "integer",
|
|
1444
|
-
"exclusiveMinimum": 0,
|
|
1445
|
-
"maximum": 9007199254740991
|
|
1453
|
+
]
|
|
1446
1454
|
},
|
|
1447
1455
|
"display_type": {
|
|
1448
1456
|
"type": "string",
|
|
@@ -1454,11 +1462,11 @@
|
|
|
1454
1462
|
"value",
|
|
1455
1463
|
"display_type"
|
|
1456
1464
|
],
|
|
1457
|
-
"additionalProperties": false
|
|
1465
|
+
"additionalProperties": false,
|
|
1466
|
+
"title": "Recycling Date Attribute",
|
|
1467
|
+
"description": "Unix timestamp in milliseconds when the recycling occurred (when the environmental gain was achieved) attribute"
|
|
1458
1468
|
},
|
|
1459
1469
|
{
|
|
1460
|
-
"title": "Certificate Issuance Date Attribute",
|
|
1461
|
-
"description": "Unix timestamp in milliseconds when the certificate was issued attribute",
|
|
1462
1470
|
"type": "object",
|
|
1463
1471
|
"properties": {
|
|
1464
1472
|
"trait_type": {
|
|
@@ -1466,14 +1474,14 @@
|
|
|
1466
1474
|
"const": "Certificate Issuance Date"
|
|
1467
1475
|
},
|
|
1468
1476
|
"value": {
|
|
1477
|
+
"type": "integer",
|
|
1478
|
+
"exclusiveMinimum": 0,
|
|
1479
|
+
"maximum": 9007199254740991,
|
|
1469
1480
|
"title": "Certificate Issuance Date",
|
|
1470
1481
|
"description": "Unix timestamp in milliseconds when the certificate was issued",
|
|
1471
1482
|
"examples": [
|
|
1472
1483
|
1704067200000
|
|
1473
|
-
]
|
|
1474
|
-
"type": "integer",
|
|
1475
|
-
"exclusiveMinimum": 0,
|
|
1476
|
-
"maximum": 9007199254740991
|
|
1484
|
+
]
|
|
1477
1485
|
},
|
|
1478
1486
|
"display_type": {
|
|
1479
1487
|
"type": "string",
|
|
@@ -1485,9 +1493,13 @@
|
|
|
1485
1493
|
"value",
|
|
1486
1494
|
"display_type"
|
|
1487
1495
|
],
|
|
1488
|
-
"additionalProperties": false
|
|
1496
|
+
"additionalProperties": false,
|
|
1497
|
+
"title": "Certificate Issuance Date Attribute",
|
|
1498
|
+
"description": "Unix timestamp in milliseconds when the certificate was issued attribute"
|
|
1489
1499
|
}
|
|
1490
1500
|
],
|
|
1501
|
+
"title": "GasID NFT Attribute Array",
|
|
1502
|
+
"description": "Schema for the fixed set of GasID NFT attributes, enforcing order and type for each trait.\n\nRequired attributes (13, in order): Methodology, Gas Type, CO₂e Prevented (kg), Credit Amount, Credit Type, Source Waste Type, Source Weight (kg), Origin City, Origin Country Subdivision, MassID, MassID Recycling Date, Recycling Date, Certificate Issuance Date.",
|
|
1491
1503
|
"items": false
|
|
1492
1504
|
}
|
|
1493
1505
|
},
|
|
@@ -1508,5 +1520,9 @@
|
|
|
1508
1520
|
"image",
|
|
1509
1521
|
"attributes"
|
|
1510
1522
|
],
|
|
1511
|
-
"additionalProperties": false
|
|
1512
|
-
|
|
1523
|
+
"additionalProperties": false,
|
|
1524
|
+
"title": "GasID NFT IPFS Record",
|
|
1525
|
+
"description": "Complete GasID NFT IPFS record including prevented emissions calculation, source waste provenance, methodology reference, and NFT display attributes",
|
|
1526
|
+
"$id": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/tags/0.3.0/schemas/ipfs/gas-id/gas-id.schema.json",
|
|
1527
|
+
"version": "0.3.0"
|
|
1528
|
+
}
|