@europeum-ebsi/cli 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/LICENSE.txt +289 -0
  2. package/README.md +98 -0
  3. package/bin/cli.js +13 -0
  4. package/dist/abi/pilot/DidRegistry.js +568 -0
  5. package/dist/abi/pilot/DidRegistry.js.map +1 -0
  6. package/dist/abi/pilot/Ptr.js +666 -0
  7. package/dist/abi/pilot/Ptr.js.map +1 -0
  8. package/dist/abi/pilot/SchemaSCRegistry.js +264 -0
  9. package/dist/abi/pilot/SchemaSCRegistry.js.map +1 -0
  10. package/dist/abi/pilot/Tcr.js +715 -0
  11. package/dist/abi/pilot/Tcr.js.map +1 -0
  12. package/dist/abi/pilot/Timestamp.js +658 -0
  13. package/dist/abi/pilot/Timestamp.js.map +1 -0
  14. package/dist/abi/pilot/Tir.js +428 -0
  15. package/dist/abi/pilot/Tir.js.map +1 -0
  16. package/dist/abi/pilot/TnT.js +842 -0
  17. package/dist/abi/pilot/TnT.js.map +1 -0
  18. package/dist/abi/pilot/Tpr.js +492 -0
  19. package/dist/abi/pilot/Tpr.js.map +1 -0
  20. package/dist/abi/test/DidRegistry.js +568 -0
  21. package/dist/abi/test/DidRegistry.js.map +1 -0
  22. package/dist/abi/test/Ptr.js +666 -0
  23. package/dist/abi/test/Ptr.js.map +1 -0
  24. package/dist/abi/test/SchemaSCRegistry.js +300 -0
  25. package/dist/abi/test/SchemaSCRegistry.js.map +1 -0
  26. package/dist/abi/test/Tcr.js +715 -0
  27. package/dist/abi/test/Tcr.js.map +1 -0
  28. package/dist/abi/test/Timestamp.js +658 -0
  29. package/dist/abi/test/Timestamp.js.map +1 -0
  30. package/dist/abi/test/Tir.js +428 -0
  31. package/dist/abi/test/Tir.js.map +1 -0
  32. package/dist/abi/test/TnT.js +842 -0
  33. package/dist/abi/test/TnT.js.map +1 -0
  34. package/dist/abi/test/Tpr.js +492 -0
  35. package/dist/abi/test/Tpr.js.map +1 -0
  36. package/dist/app.js +659 -0
  37. package/dist/app.js.map +1 -0
  38. package/dist/buildParam/didr.js +374 -0
  39. package/dist/buildParam/didr.js.map +1 -0
  40. package/dist/buildParam/index.js +53 -0
  41. package/dist/buildParam/index.js.map +1 -0
  42. package/dist/buildParam/ptr.js +80 -0
  43. package/dist/buildParam/ptr.js.map +1 -0
  44. package/dist/buildParam/tcr.js +36 -0
  45. package/dist/buildParam/tcr.js.map +1 -0
  46. package/dist/buildParam/timestamp.js +350 -0
  47. package/dist/buildParam/timestamp.js.map +1 -0
  48. package/dist/buildParam/tir.js +110 -0
  49. package/dist/buildParam/tir.js.map +1 -0
  50. package/dist/buildParam/tnt.js +214 -0
  51. package/dist/buildParam/tnt.js.map +1 -0
  52. package/dist/buildParam/tpr.js +91 -0
  53. package/dist/buildParam/tpr.js.map +1 -0
  54. package/dist/buildParam/tsr.js +115 -0
  55. package/dist/buildParam/tsr.js.map +1 -0
  56. package/dist/cli.js +11 -0
  57. package/dist/cli.js.map +1 -0
  58. package/dist/commands/authorisation.js +144 -0
  59. package/dist/commands/authorisation.js.map +1 -0
  60. package/dist/commands/compute.js +680 -0
  61. package/dist/commands/compute.js.map +1 -0
  62. package/dist/commands/conformance.js +813 -0
  63. package/dist/commands/conformance.js.map +1 -0
  64. package/dist/commands/hardwarewallet.js +41 -0
  65. package/dist/commands/hardwarewallet.js.map +1 -0
  66. package/dist/commands/index.js +8 -0
  67. package/dist/commands/index.js.map +1 -0
  68. package/dist/commands/ledger.js +397 -0
  69. package/dist/commands/ledger.js.map +1 -0
  70. package/dist/commands/ptr.js +54 -0
  71. package/dist/commands/ptr.js.map +1 -0
  72. package/dist/commands/tcr.js +50 -0
  73. package/dist/commands/tcr.js.map +1 -0
  74. package/dist/commands/tir.js +64 -0
  75. package/dist/commands/tir.js.map +1 -0
  76. package/dist/commands/tnl.js +81 -0
  77. package/dist/commands/tnl.js.map +1 -0
  78. package/dist/commands/tsr.js +45 -0
  79. package/dist/commands/tsr.js.map +1 -0
  80. package/dist/commands/view.js +53 -0
  81. package/dist/commands/view.js.map +1 -0
  82. package/dist/config.js +497 -0
  83. package/dist/config.js.map +1 -0
  84. package/dist/index.js +7 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/interfaces/context.js +2 -0
  87. package/dist/interfaces/context.js.map +1 -0
  88. package/dist/interfaces/contracts/ProxyFactory.js +2 -0
  89. package/dist/interfaces/contracts/ProxyFactory.js.map +1 -0
  90. package/dist/interfaces/contracts/ProxyTemplateRegistry.js +2 -0
  91. package/dist/interfaces/contracts/ProxyTemplateRegistry.js.map +1 -0
  92. package/dist/interfaces/contracts/SchemaSCRegistry.js +2 -0
  93. package/dist/interfaces/contracts/SchemaSCRegistry.js.map +1 -0
  94. package/dist/interfaces/contracts/common.js +2 -0
  95. package/dist/interfaces/contracts/common.js.map +1 -0
  96. package/dist/interfaces/index.js +5 -0
  97. package/dist/interfaces/index.js.map +1 -0
  98. package/dist/interfaces/jsonrpc.interface.js +2 -0
  99. package/dist/interfaces/jsonrpc.interface.js.map +1 -0
  100. package/dist/interfaces/paginated-list.interface.js +2 -0
  101. package/dist/interfaces/paginated-list.interface.js.map +1 -0
  102. package/dist/interfaces/unsigned-transaction.interface.js +2 -0
  103. package/dist/interfaces/unsigned-transaction.interface.js.map +1 -0
  104. package/dist/interfaces/utils.interface.js +2 -0
  105. package/dist/interfaces/utils.interface.js.map +1 -0
  106. package/dist/programs/migrateDid.js +159 -0
  107. package/dist/programs/migrateDid.js.map +1 -0
  108. package/dist/programs/migrateDids.js +232 -0
  109. package/dist/programs/migrateDids.js.map +1 -0
  110. package/dist/programs/migrateTsr.js +201 -0
  111. package/dist/programs/migrateTsr.js.map +1 -0
  112. package/dist/scripts/accreditAndAuthorize/conformance/step1 +34 -0
  113. package/dist/scripts/accreditAndAuthorize/conformance/step2 +18 -0
  114. package/dist/scripts/accreditAndAuthorize/conformance/step3 +9 -0
  115. package/dist/scripts/accreditAndAuthorize/conformance/step4 +27 -0
  116. package/dist/scripts/accreditAndAuthorize/conformance/step5 +13 -0
  117. package/dist/scripts/accreditAndAuthorize/conformance/step6 +14 -0
  118. package/dist/scripts/accreditAndAuthorize/conformance/step7 +7 -0
  119. package/dist/scripts/accreditAndAuthorize/test/step1 +34 -0
  120. package/dist/scripts/accreditAndAuthorize/test/step2 +18 -0
  121. package/dist/scripts/accreditAndAuthorize/test/step3 +9 -0
  122. package/dist/scripts/accreditAndAuthorize/test/step4 +27 -0
  123. package/dist/scripts/accreditAndAuthorize/test/step5 +13 -0
  124. package/dist/scripts/accreditAndAuthorize/test/step6 +14 -0
  125. package/dist/scripts/accreditAndAuthorize/test/step7 +7 -0
  126. package/dist/scripts/accreditTI +21 -0
  127. package/dist/scripts/assets/Nodes.json +27 -0
  128. package/dist/scripts/assets/vcdm1.1/CTRevocableCredential.json +30 -0
  129. package/dist/scripts/assets/vcdm1.1/CredentialToAttestVerifiableAuthorisationForTrustChain.json +29 -0
  130. package/dist/scripts/assets/vcdm1.1/Nodes.json +27 -0
  131. package/dist/scripts/assets/vcdm1.1/TrustedNodesList.json +35 -0
  132. package/dist/scripts/assets/vcdm1.1/VerifiableAccreditationToAccredit.json +35 -0
  133. package/dist/scripts/assets/vcdm1.1/VerifiableAccreditationToAttest.json +33 -0
  134. package/dist/scripts/assets/vcdm1.1/VerifiableAuthorisationForTrustChain.json +22 -0
  135. package/dist/scripts/assets/vcdm1.1/VerifiableAuthorisationToInvoke.json +24 -0
  136. package/dist/scripts/assets/vcdm1.1/VerifiableAuthorisationToOnboard.json +24 -0
  137. package/dist/scripts/assets/vcdm2.0/CredentialToAttestVerifiableAuthorisationForTrustChain.json +29 -0
  138. package/dist/scripts/assets/vcdm2.0/TrustedNodesList.json +36 -0
  139. package/dist/scripts/assets/vcdm2.0/VerifiableAccreditationToAccredit.json +40 -0
  140. package/dist/scripts/assets/vcdm2.0/VerifiableAccreditationToAttest.json +38 -0
  141. package/dist/scripts/assets/vcdm2.0/VerifiableAuthorisationForTrustChain.json +30 -0
  142. package/dist/scripts/assets/vcdm2.0/VerifiableAuthorisationToInvoke.json +24 -0
  143. package/dist/scripts/assets/vcdm2.0/VerifiableAuthorisationToOnboard.json +23 -0
  144. package/dist/scripts/bootstrap/0a-loadTPROperator +5 -0
  145. package/dist/scripts/bootstrap/0b-loadAdmin +8 -0
  146. package/dist/scripts/bootstrap/1-populateTPR +92 -0
  147. package/dist/scripts/bootstrap/2-populateDID +6 -0
  148. package/dist/scripts/bootstrap/3-populateTimestamp +9 -0
  149. package/dist/scripts/bootstrap/4-populateTIR +8 -0
  150. package/dist/scripts/bootstrap/5-populateTSR +85 -0
  151. package/dist/scripts/bootstrap/6-setupConformanceIssuer +35 -0
  152. package/dist/scripts/bootstrap/README.md +218 -0
  153. package/dist/scripts/issueVcInvoke +10 -0
  154. package/dist/scripts/issueVcOnboard +9 -0
  155. package/dist/scripts/issueVcRootTAO +11 -0
  156. package/dist/scripts/issueVcTAO +12 -0
  157. package/dist/scripts/issueVcTI +12 -0
  158. package/dist/scripts/issueVcTnl +32 -0
  159. package/dist/scripts/issue_CTRevocableCredential +12 -0
  160. package/dist/scripts/issue_SelfAttestationSupportOffice +10 -0
  161. package/dist/scripts/issue_VerifiableAccreditationToAccredit +11 -0
  162. package/dist/scripts/issue_VerifiableAccreditationToAttest +11 -0
  163. package/dist/scripts/issue_VerifiableAuthorisationForTrustChain +10 -0
  164. package/dist/scripts/issue_VerifiableAuthorisationToOnboard +9 -0
  165. package/dist/scripts/preregisterIssuer +6 -0
  166. package/dist/scripts/registerDidDocument +15 -0
  167. package/dist/scripts/registerIssuer +6 -0
  168. package/dist/scripts/updateVcRootTAO +10 -0
  169. package/dist/scripts/updateVcTAO +11 -0
  170. package/dist/scripts/updateVcTI +11 -0
  171. package/dist/scripts/vcdm2.0/issueSelfAttestationSupportOffice +10 -0
  172. package/dist/scripts/vcdm2.0/issueVcInvoke +12 -0
  173. package/dist/scripts/vcdm2.0/issueVcOnboard +11 -0
  174. package/dist/scripts/vcdm2.0/issueVcRootTAO +14 -0
  175. package/dist/scripts/vcdm2.0/issueVcTAO +15 -0
  176. package/dist/scripts/vcdm2.0/issueVcTI +15 -0
  177. package/dist/scripts/vcdm2.0/issueVcTnl +34 -0
  178. package/dist/scripts/vcdm2.0/registerDidDocument +15 -0
  179. package/dist/scripts/vcdm2.0/updateVcRootTAO +13 -0
  180. package/dist/scripts/vcdm2.0/updateVcTAO +14 -0
  181. package/dist/scripts/vcdm2.0/updateVcTI +14 -0
  182. package/dist/scripts/vcdm2.0/verifyVcTnl +10 -0
  183. package/dist/scripts/verifyVcTnl +10 -0
  184. package/dist/scripts/wct/accreditAndAuthorize +133 -0
  185. package/dist/scripts/wct/accreditAndAuthorize2 +89 -0
  186. package/dist/scripts/wct/holderWallet +39 -0
  187. package/dist/scripts/wct/holderWallet2 +39 -0
  188. package/dist/scripts/wct/issueToHolder +38 -0
  189. package/dist/scripts/wct/issueToHolder2 +38 -0
  190. package/dist/scripts/wct/pda1 +3 -0
  191. package/dist/scripts/wct/verifier +8 -0
  192. package/dist/scripts/wct/verifier2 +7 -0
  193. package/dist/utils/Client.js +155 -0
  194. package/dist/utils/Client.js.map +1 -0
  195. package/dist/utils/HardwareWallet.js +326 -0
  196. package/dist/utils/HardwareWallet.js.map +1 -0
  197. package/dist/utils/http.js +132 -0
  198. package/dist/utils/http.js.map +1 -0
  199. package/dist/utils/index.js +8 -0
  200. package/dist/utils/index.js.map +1 -0
  201. package/dist/utils/jsonrpc.js +38 -0
  202. package/dist/utils/jsonrpc.js.map +1 -0
  203. package/dist/utils/print.js +56 -0
  204. package/dist/utils/print.js.map +1 -0
  205. package/dist/utils/utils.js +427 -0
  206. package/dist/utils/utils.js.map +1 -0
  207. package/dist/utils/vcdm.js +47 -0
  208. package/dist/utils/vcdm.js.map +1 -0
  209. package/package.json +121 -0
@@ -0,0 +1,38 @@
1
+ {
2
+ "@context": ["https://www.w3.org/ns/credentials/v2"],
3
+ "type": [
4
+ "VerifiableCredential",
5
+ "VerifiableAttestation",
6
+ "VerifiableTrustModel",
7
+ "VerifiableAccreditationToAttest"
8
+ ],
9
+ "issuer": "",
10
+ "credentialSchema": {
11
+ "id": "ebsi:pilot:trusted-schemas-registry:/schemas/z2DzoeZrgduRwk3y4RAetwSHRZAHAqNF6fWWMaEcZUdAY",
12
+ "type": "FullJsonSchemaValidator2021"
13
+ },
14
+ "credentialStatus": {
15
+ "id": "",
16
+ "type": "EbsiAccreditationEntry"
17
+ },
18
+ "credentialSubject": {
19
+ "id": "",
20
+ "permissionFor": [
21
+ {
22
+ "schemaId": "ebsi:pilot:trusted-schemas-registry:/schemas/zB5yLy7GXdZs1iaJ7wN2K5mhwZDTxjECM2fELYE73mu3E",
23
+ "types": [
24
+ "VerifiableCredential",
25
+ "VerifiableAttestation",
26
+ "CTRevocable"
27
+ ],
28
+ "jurisdiction":
29
+ "https://publications.europa.eu/resource/authority/atu/EUR"
30
+ }
31
+ ]
32
+ },
33
+ "termsOfUse": {
34
+ "parentAccreditation": "",
35
+ "rootAuthorisation": "",
36
+ "type": "AccreditationPolicy"
37
+ }
38
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "@context": [
3
+ "https://www.w3.org/ns/credentials/v2"
4
+ ],
5
+ "type": [
6
+ "VerifiableCredential",
7
+ "VerifiableAttestation",
8
+ "VerifiableTrustModel",
9
+ "VerifiableAuthorisationForTrustChain"
10
+ ],
11
+ "issuer": "",
12
+ "credentialSchema": {
13
+ "id": "ebsi:pilot:trusted-schemas-registry:/schemas/z2DzoeZrgduRwk3y4RAetwSHRZAHAqNF6fWWMaEcZUdAY",
14
+ "type": "FullJsonSchemaValidator2021"
15
+ },
16
+ "credentialStatus": {
17
+ "id": "",
18
+ "type": "EbsiAccreditationEntry"
19
+ },
20
+ "credentialSubject": {
21
+ "id": "",
22
+ "reservedAttributeId": ""
23
+ },
24
+ "termsOfUse": {
25
+ "type": "TrustFrameworkPolicy",
26
+ "trustFramework": "",
27
+ "policyId": "",
28
+ "legalBasis": ""
29
+ }
30
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "@context": [
3
+ "https://www.w3.org/ns/credentials/v2"
4
+ ],
5
+ "type": [
6
+ "VerifiableCredential",
7
+ "VerifiableAttestation",
8
+ "VerifiableAuthorisationToInvoke"
9
+ ],
10
+ "issuer": "",
11
+ "credentialSubject": {
12
+ "id": "",
13
+ "contractAddress": ""
14
+ },
15
+ "termsOfUse": {
16
+ "parentAccreditation": "",
17
+ "rootAuthorisation": "",
18
+ "type": "AttestationPolicy"
19
+ },
20
+ "credentialSchema": {
21
+ "id": "ebsi:pilot:trusted-schemas-registry:/schemas/zB5yLy7GXdZs1iaJ7wN2K5mhwZDTxjECM2fELYE73mu3E",
22
+ "type": "FullJsonSchemaValidator2021"
23
+ }
24
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "@context": [
3
+ "https://www.w3.org/ns/credentials/v2"
4
+ ],
5
+ "type": [
6
+ "VerifiableCredential",
7
+ "VerifiableAttestation",
8
+ "VerifiableAuthorisationToOnboard"
9
+ ],
10
+ "issuer": "",
11
+ "credentialSubject": {
12
+ "id": ""
13
+ },
14
+ "termsOfUse": {
15
+ "parentAccreditation": "",
16
+ "rootAuthorisation": "",
17
+ "type": "AttestationPolicy"
18
+ },
19
+ "credentialSchema": {
20
+ "id": "ebsi:pilot:trusted-schemas-registry:/schemas/zB5yLy7GXdZs1iaJ7wN2K5mhwZDTxjECM2fELYE73mu3E",
21
+ "type": "FullJsonSchemaValidator2021"
22
+ }
23
+ }
@@ -0,0 +1,5 @@
1
+ # Script to load the admin with the ROLE OPERATOR in the Trusted Apps Registry
2
+ # This role is granted by the multisignature wallet
3
+ env SET_ENV
4
+ using user null
5
+ using user ES256K did1 PRIVATE_KEY_TPR_OPERATOR DID_TPR_OPERATOR
@@ -0,0 +1,8 @@
1
+ # Script to load a user with admin attributes in the Trusted Policies Registry
2
+ # (example: "TIR:insertIssuer" -> attribute to insert issuers in the Trusted Issuers Registry)
3
+ env SET_ENV
4
+ using user null
5
+ using user ES256K did1 PRIVATE_KEY_ES256K_SUPPORT_OFFICE DID_SUPPORT_OFFICE
6
+ using user ES256 did1 PRIVATE_KEY_ES256_SUPPORT_OFFICE DID_SUPPORT_OFFICE
7
+ set user.supportOfficeAccreditationUrl ACCREDITATION_URL_SUPPORT_OFFICE
8
+ set user.accreditationUrl ACCREDITATION_URL_ROOT_TAO
@@ -0,0 +1,92 @@
1
+ run bootstrap/0a-loadTPROperator
2
+
3
+ # New Policies
4
+
5
+ #DID
6
+ proxyledger tpr insertPolicy DID:updateBaseDocument ["updateBaseDocument in DID Registry"]
7
+ proxyledger tpr insertPolicy DID:addController ["addController in DID Registry"]
8
+ proxyledger tpr insertPolicy DID:revokeController ["revokeController in DID Registry"]
9
+ proxyledger tpr insertPolicy DID:addVerificationMethod ["addVerificationMethod in DID Registry"]
10
+ proxyledger tpr insertPolicy DID:addVerificationRelationship ["addVerificationRelationship in DID Registry"]
11
+ proxyledger tpr insertPolicy DID:revokeVerificationMethod ["revokeVerificationMethod in DID Registry"]
12
+ proxyledger tpr insertPolicy DID:expireVerificationMethod ["expireVerificationMethod in DID Registry"]
13
+ proxyledger tpr insertPolicy DID:rollVerificationMethod ["rollVerificationMethod in DID Registry"]
14
+ proxyledger tpr insertPolicy TCR:deployProxy ["deployProxy in Trusted Contracts Registry"]
15
+ proxyledger tpr insertPolicy TCR:manageTemplates ["manage templates in the Proxy Template Regsitry"]
16
+
17
+ #TIR
18
+ proxyledger tpr insertPolicy TIR:updateIssuer ["updateIssuer in Trusted Issuers Registry"]
19
+ proxyledger tpr insertPolicy TIR:setAttributeMetadata ["setAttributeMetadata in Trusted Issuers Registry"]
20
+
21
+ #Timestamp
22
+ proxyledger tpr insertPolicy TS:insertHashAlgorithm ["insertHashAlgorithm in Timestamp"]
23
+ proxyledger tpr insertPolicy TS:updateHashAlgorithm ["updateHashAlgorithm in Timestamp"]
24
+
25
+ #TSR
26
+ proxyledger tpr insertPolicy TSR:insertSchema ["insertSchema in Trusted Schemas Registry"]
27
+ proxyledger tpr insertPolicy TSR:updateSchema ["updateSchema in Trusted Schemas Registry"]
28
+ proxyledger tpr insertPolicy TSR:updateMetadata ["updateMetadata in Trusted Schemas Registry"]
29
+
30
+ # User Attributes
31
+ # List taken from https://ec.europa.eu/digital-building-blocks/wikis/display/BLOCKCHAININT/RFC+-+Procedure+for+multisig+wallet+maintenance
32
+
33
+ # Iulian Florin NITA
34
+ proxyledger tpr insertUserAttributes 0x1CBE1945fa323F5C5CeD4ec560C2D1600b4b4364 ["DID:updateBaseDocument", "DID:addController", "DID:revokeController", "DID:addVerificationMethod", "DID:addVerificationRelationship", "DID:revokeVerificationMethod", "DID:expireVerificationMethod", "DID:rollVerificationMethod"]
35
+ proxyledger tpr insertUserAttributes 0x1CBE1945fa323F5C5CeD4ec560C2D1600b4b4364 ["TIR:insertIssuer", "TIR:updateIssuer", "TIR:setAttributeMetadata"]
36
+ proxyledger tpr insertUserAttributes 0x1CBE1945fa323F5C5CeD4ec560C2D1600b4b4364 ["TS:insertHashAlgorithm", "TS:updateHashAlgorithm"]
37
+ proxyledger tpr insertUserAttributes 0x1CBE1945fa323F5C5CeD4ec560C2D1600b4b4364 ["TSR:insertSchema", "TSR:updateSchema", "TSR:updateMetadata"]
38
+
39
+ # Alen Horvat
40
+ proxyledger tpr insertUserAttributes 0x30dE361706Ddc9D5D0B19AFe9B89212CcD453566 ["DID:updateBaseDocument", "DID:addController", "DID:revokeController", "DID:addVerificationMethod", "DID:addVerificationRelationship", "DID:revokeVerificationMethod", "DID:expireVerificationMethod", "DID:rollVerificationMethod"]
41
+ proxyledger tpr insertUserAttributes 0x30dE361706Ddc9D5D0B19AFe9B89212CcD453566 ["TIR:insertIssuer", "TIR:updateIssuer", "TIR:setAttributeMetadata"]
42
+ proxyledger tpr insertUserAttributes 0x30dE361706Ddc9D5D0B19AFe9B89212CcD453566 ["TS:insertHashAlgorithm", "TS:updateHashAlgorithm"]
43
+ proxyledger tpr insertUserAttributes 0x30dE361706Ddc9D5D0B19AFe9B89212CcD453566 ["TSR:insertSchema", "TSR:updateSchema", "TSR:updateMetadata"]
44
+
45
+ # Julian GONZALEZ AGUDELO
46
+ proxyledger tpr insertUserAttributes 0x69e48d89bf5e09588E858D757323b4abBBB3f814 ["DID:updateBaseDocument", "DID:addController", "DID:revokeController", "DID:addVerificationMethod", "DID:addVerificationRelationship", "DID:revokeVerificationMethod", "DID:expireVerificationMethod", "DID:rollVerificationMethod"]
47
+ proxyledger tpr insertUserAttributes 0x69e48d89bf5e09588E858D757323b4abBBB3f814 ["TIR:insertIssuer", "TIR:updateIssuer", "TIR:setAttributeMetadata"]
48
+ proxyledger tpr insertUserAttributes 0x69e48d89bf5e09588E858D757323b4abBBB3f814 ["TS:insertHashAlgorithm", "TS:updateHashAlgorithm"]
49
+ proxyledger tpr insertUserAttributes 0x69e48d89bf5e09588E858D757323b4abBBB3f814 ["TSR:insertSchema", "TSR:updateSchema", "TSR:updateMetadata"]
50
+
51
+ # wesley DEGLISE
52
+ proxyledger tpr insertUserAttributes 0x37daE23C7C8915E6b8FA13b32BBA00c6b6f35993 ["DID:updateBaseDocument", "DID:addController", "DID:revokeController", "DID:addVerificationMethod", "DID:addVerificationRelationship", "DID:revokeVerificationMethod", "DID:expireVerificationMethod", "DID:rollVerificationMethod"]
53
+ proxyledger tpr insertUserAttributes 0x37daE23C7C8915E6b8FA13b32BBA00c6b6f35993 ["TIR:insertIssuer", "TIR:updateIssuer", "TIR:setAttributeMetadata"]
54
+ proxyledger tpr insertUserAttributes 0x37daE23C7C8915E6b8FA13b32BBA00c6b6f35993 ["TS:insertHashAlgorithm", "TS:updateHashAlgorithm"]
55
+ proxyledger tpr insertUserAttributes 0x37daE23C7C8915E6b8FA13b32BBA00c6b6f35993 ["TSR:insertSchema", "TSR:updateSchema", "TSR:updateMetadata"]
56
+
57
+ # Arnaud RIESS
58
+ proxyledger tpr insertUserAttributes 0x9faB1fF75B0309e4dF4360331ed630F963a30869 ["DID:updateBaseDocument", "DID:addController", "DID:revokeController", "DID:addVerificationMethod", "DID:addVerificationRelationship", "DID:revokeVerificationMethod", "DID:expireVerificationMethod", "DID:rollVerificationMethod"]
59
+ proxyledger tpr insertUserAttributes 0x9faB1fF75B0309e4dF4360331ed630F963a30869 ["TIR:insertIssuer", "TIR:updateIssuer", "TIR:setAttributeMetadata"]
60
+ proxyledger tpr insertUserAttributes 0x9faB1fF75B0309e4dF4360331ed630F963a30869 ["TS:insertHashAlgorithm", "TS:updateHashAlgorithm"]
61
+ proxyledger tpr insertUserAttributes 0x9faB1fF75B0309e4dF4360331ed630F963a30869 ["TSR:insertSchema", "TSR:updateSchema", "TSR:updateMetadata"]
62
+
63
+ # Guillermo Liarte Cano
64
+ proxyledger tpr insertUserAttributes 0x108d42f3C66DB73E70B3fFe6Dd1F3ABb0f5C83A0 ["DID:updateBaseDocument", "DID:addController", "DID:revokeController", "DID:addVerificationMethod", "DID:addVerificationRelationship", "DID:revokeVerificationMethod", "DID:expireVerificationMethod", "DID:rollVerificationMethod"]
65
+ proxyledger tpr insertUserAttributes 0x108d42f3C66DB73E70B3fFe6Dd1F3ABb0f5C83A0 ["TIR:insertIssuer", "TIR:updateIssuer", "TIR:setAttributeMetadata"]
66
+ proxyledger tpr insertUserAttributes 0x108d42f3C66DB73E70B3fFe6Dd1F3ABb0f5C83A0 ["TS:insertHashAlgorithm", "TS:updateHashAlgorithm"]
67
+ proxyledger tpr insertUserAttributes 0x108d42f3C66DB73E70B3fFe6Dd1F3ABb0f5C83A0 ["TSR:insertSchema", "TSR:updateSchema", "TSR:updateMetadata"]
68
+
69
+ # Pablo STAIANO
70
+ proxyledger tpr insertUserAttributes 0x3d47cfAeF18364586C9cCAF70F6ED79b2eA38429 ["DID:updateBaseDocument", "DID:addController", "DID:revokeController", "DID:addVerificationMethod", "DID:addVerificationRelationship", "DID:revokeVerificationMethod", "DID:expireVerificationMethod", "DID:rollVerificationMethod"]
71
+ proxyledger tpr insertUserAttributes 0x3d47cfAeF18364586C9cCAF70F6ED79b2eA38429 ["TIR:insertIssuer", "TIR:updateIssuer", "TIR:setAttributeMetadata"]
72
+ proxyledger tpr insertUserAttributes 0x3d47cfAeF18364586C9cCAF70F6ED79b2eA38429 ["TS:insertHashAlgorithm", "TS:updateHashAlgorithm"]
73
+ proxyledger tpr insertUserAttributes 0x3d47cfAeF18364586C9cCAF70F6ED79b2eA38429 ["TSR:insertSchema", "TSR:updateSchema", "TSR:updateMetadata"]
74
+
75
+ # Yannick HUARD
76
+ proxyledger tpr insertUserAttributes 0xfa8adA8Bd7CEbC130F455f5683ae173B3a3AC365 ["DID:updateBaseDocument", "DID:addController", "DID:revokeController", "DID:addVerificationMethod", "DID:addVerificationRelationship", "DID:revokeVerificationMethod", "DID:expireVerificationMethod", "DID:rollVerificationMethod"]
77
+ proxyledger tpr insertUserAttributes 0xfa8adA8Bd7CEbC130F455f5683ae173B3a3AC365 ["TIR:insertIssuer", "TIR:updateIssuer", "TIR:setAttributeMetadata"]
78
+ proxyledger tpr insertUserAttributes 0xfa8adA8Bd7CEbC130F455f5683ae173B3a3AC365 ["TS:insertHashAlgorithm", "TS:updateHashAlgorithm"]
79
+ proxyledger tpr insertUserAttributes 0xfa8adA8Bd7CEbC130F455f5683ae173B3a3AC365 ["TSR:insertSchema", "TSR:updateSchema", "TSR:updateMetadata"]
80
+
81
+ # Stefan-Adrian Bancu
82
+ proxyledger tpr insertUserAttributes 0xaA61dA5CbC1E563F065Af74f278abd55c399353D ["DID:updateBaseDocument", "DID:addController", "DID:revokeController", "DID:addVerificationMethod", "DID:addVerificationRelationship", "DID:revokeVerificationMethod", "DID:expireVerificationMethod", "DID:rollVerificationMethod"]
83
+ proxyledger tpr insertUserAttributes 0xaA61dA5CbC1E563F065Af74f278abd55c399353D ["TIR:insertIssuer", "TIR:updateIssuer", "TIR:setAttributeMetadata"]
84
+ proxyledger tpr insertUserAttributes 0xaA61dA5CbC1E563F065Af74f278abd55c399353D ["TS:insertHashAlgorithm", "TS:updateHashAlgorithm"]
85
+ proxyledger tpr insertUserAttributes 0xaA61dA5CbC1E563F065Af74f278abd55c399353D ["TSR:insertSchema", "TSR:updateSchema", "TSR:updateMetadata"]
86
+
87
+ # Support EBSI
88
+ proxyledger tpr insertUserAttributes 0xA4B6C8710f6bF233b8b480498916DEC224A5a891 ["DID:updateBaseDocument", "DID:addController", "DID:revokeController", "DID:addVerificationMethod", "DID:addVerificationRelationship", "DID:revokeVerificationMethod", "DID:expireVerificationMethod", "DID:rollVerificationMethod"]
89
+ proxyledger tpr insertUserAttributes 0xA4B6C8710f6bF233b8b480498916DEC224A5a891 ["TIR:insertIssuer", "TIR:updateIssuer", "TIR:setAttributeMetadata"]
90
+ proxyledger tpr insertUserAttributes 0xA4B6C8710f6bF233b8b480498916DEC224A5a891 ["TS:insertHashAlgorithm", "TS:updateHashAlgorithm"]
91
+ proxyledger tpr insertUserAttributes 0xA4B6C8710f6bF233b8b480498916DEC224A5a891 ["TSR:insertSchema", "TSR:updateSchema", "TSR:updateMetadata"]
92
+ proxyledger tpr insertUserAttributes 0xA4B6C8710f6bF233b8b480498916DEC224A5a891 ["TCR:deployProxy", "TCR:manageTemplates"]
@@ -0,0 +1,6 @@
1
+ # DID admin
2
+ run bootstrap/0b-loadAdmin
3
+ proxyledger did insertDidDocument
4
+ proxyledger did addVerificationMethod user.did ES256
5
+ proxyledger did addVerificationRelationship user.did authentication ES256
6
+ proxyledger did addVerificationRelationship user.did assertionMethod ES256
@@ -0,0 +1,9 @@
1
+ run bootstrap/0b-loadAdmin
2
+
3
+ proxyledger timestamp insertHashAlgorithm 256 sha-256 2.16.840.1.101.3.4.2.1 1 sha2-256
4
+ proxyledger timestamp insertHashAlgorithm 384 sha-384 2.16.840.1.101.3.4.2.2 1 sha2-384
5
+ proxyledger timestamp insertHashAlgorithm 512 sha-512 2.16.840.1.101.3.4.2.3 1 sha2-512
6
+ proxyledger timestamp insertHashAlgorithm 224 sha3-224 2.16.840.1.101.3.4.2.7 1 sha3-224
7
+ proxyledger timestamp insertHashAlgorithm 256 sha3-256 2.16.840.1.101.3.4.2.8 1 sha3-256
8
+ proxyledger timestamp insertHashAlgorithm 384 sha3-384 2.16.840.1.101.3.4.2.9 1 sha3-384
9
+ proxyledger timestamp insertHashAlgorithm 512 sha3-512 2.16.840.1.101.3.4.2.10 1 sha3-512
@@ -0,0 +1,8 @@
1
+ run bootstrap/0b-loadAdmin
2
+
3
+ # support office
4
+ reservedAttributeId: compute randomID
5
+ vc: run issue_SelfAttestationSupportOffice user.did reservedAttributeId
6
+ proxyledger tir setAttributeMetadata user.did reservedAttributeId roottao
7
+ proxyledger tir setAttributeData user.did reservedAttributeId vc
8
+
@@ -0,0 +1,85 @@
1
+ run bootstrap/0b-loadAdmin
2
+
3
+ # load json file exported from json-schema repo
4
+ schemes: load SCHEMES_FILE
5
+
6
+ proxyledger tsr insertSchema schemes.0.idBase16 schemes.0.content {}
7
+ proxyledger tsr insertSchema schemes.1.idBase16 schemes.1.content {}
8
+ proxyledger tsr insertSchema schemes.2.idBase16 schemes.2.content {}
9
+ proxyledger tsr insertSchema schemes.3.idBase16 schemes.3.content {}
10
+ proxyledger tsr insertSchema schemes.4.idBase16 schemes.4.content {}
11
+ proxyledger tsr insertSchema schemes.5.idBase16 schemes.5.content {}
12
+ proxyledger tsr insertSchema schemes.6.idBase16 schemes.6.content {}
13
+ proxyledger tsr insertSchema schemes.7.idBase16 schemes.7.content {}
14
+ proxyledger tsr insertSchema schemes.8.idBase16 schemes.8.content {}
15
+ proxyledger tsr insertSchema schemes.9.idBase16 schemes.9.content {}
16
+ proxyledger tsr insertSchema schemes.10.idBase16 schemes.10.content {}
17
+ proxyledger tsr insertSchema schemes.11.idBase16 schemes.11.content {}
18
+ proxyledger tsr insertSchema schemes.12.idBase16 schemes.12.content {}
19
+ proxyledger tsr insertSchema schemes.13.idBase16 schemes.13.content {}
20
+ proxyledger tsr insertSchema schemes.14.idBase16 schemes.14.content {}
21
+ proxyledger tsr insertSchema schemes.15.idBase16 schemes.15.content {}
22
+ proxyledger tsr insertSchema schemes.16.idBase16 schemes.16.content {}
23
+ proxyledger tsr insertSchema schemes.17.idBase16 schemes.17.content {}
24
+ proxyledger tsr insertSchema schemes.18.idBase16 schemes.18.content {}
25
+ proxyledger tsr insertSchema schemes.19.idBase16 schemes.19.content {}
26
+ proxyledger tsr insertSchema schemes.20.idBase16 schemes.20.content {}
27
+ proxyledger tsr insertSchema schemes.21.idBase16 schemes.21.content {}
28
+ proxyledger tsr insertSchema schemes.22.idBase16 schemes.22.content {}
29
+ proxyledger tsr insertSchema schemes.23.idBase16 schemes.23.content {}
30
+ proxyledger tsr insertSchema schemes.24.idBase16 schemes.24.content {}
31
+ proxyledger tsr insertSchema schemes.25.idBase16 schemes.25.content {}
32
+ proxyledger tsr insertSchema schemes.26.idBase16 schemes.26.content {}
33
+ proxyledger tsr insertSchema schemes.27.idBase16 schemes.27.content {}
34
+ proxyledger tsr insertSchema schemes.28.idBase16 schemes.28.content {}
35
+ proxyledger tsr insertSchema schemes.29.idBase16 schemes.29.content {}
36
+ proxyledger tsr insertSchema schemes.30.idBase16 schemes.30.content {}
37
+ proxyledger tsr insertSchema schemes.31.idBase16 schemes.31.content {}
38
+ proxyledger tsr insertSchema schemes.32.idBase16 schemes.32.content {}
39
+ proxyledger tsr insertSchema schemes.33.idBase16 schemes.33.content {}
40
+ proxyledger tsr insertSchema schemes.34.idBase16 schemes.34.content {}
41
+ proxyledger tsr insertSchema schemes.35.idBase16 schemes.35.content {}
42
+ proxyledger tsr insertSchema schemes.36.idBase16 schemes.36.content {}
43
+ proxyledger tsr insertSchema schemes.37.idBase16 schemes.37.content {}
44
+ proxyledger tsr insertSchema schemes.38.idBase16 schemes.38.content {}
45
+ proxyledger tsr insertSchema schemes.39.idBase16 schemes.39.content {}
46
+ proxyledger tsr insertSchema schemes.40.idBase16 schemes.40.content {}
47
+ proxyledger tsr insertSchema schemes.41.idBase16 schemes.41.content {}
48
+ proxyledger tsr insertSchema schemes.42.idBase16 schemes.42.content {}
49
+ proxyledger tsr insertSchema schemes.43.idBase16 schemes.43.content {}
50
+ proxyledger tsr insertSchema schemes.44.idBase16 schemes.44.content {}
51
+ proxyledger tsr insertSchema schemes.45.idBase16 schemes.45.content {}
52
+ proxyledger tsr insertSchema schemes.46.idBase16 schemes.46.content {}
53
+ proxyledger tsr insertSchema schemes.47.idBase16 schemes.47.content {}
54
+ proxyledger tsr insertSchema schemes.48.idBase16 schemes.48.content {}
55
+ proxyledger tsr insertSchema schemes.49.idBase16 schemes.49.content {}
56
+ proxyledger tsr insertSchema schemes.50.idBase16 schemes.50.content {}
57
+ proxyledger tsr insertSchema schemes.51.idBase16 schemes.51.content {}
58
+ proxyledger tsr insertSchema schemes.52.idBase16 schemes.52.content {}
59
+ proxyledger tsr insertSchema schemes.53.idBase16 schemes.53.content {}
60
+ proxyledger tsr insertSchema schemes.54.idBase16 schemes.54.content {}
61
+ proxyledger tsr insertSchema schemes.55.idBase16 schemes.55.content {}
62
+ proxyledger tsr insertSchema schemes.56.idBase16 schemes.56.content {}
63
+ proxyledger tsr insertSchema schemes.57.idBase16 schemes.57.content {}
64
+ proxyledger tsr insertSchema schemes.58.idBase16 schemes.58.content {}
65
+ proxyledger tsr insertSchema schemes.59.idBase16 schemes.59.content {}
66
+ proxyledger tsr insertSchema schemes.60.idBase16 schemes.60.content {}
67
+ proxyledger tsr insertSchema schemes.61.idBase16 schemes.61.content {}
68
+ proxyledger tsr insertSchema schemes.62.idBase16 schemes.62.content {}
69
+ proxyledger tsr insertSchema schemes.63.idBase16 schemes.63.content {}
70
+ proxyledger tsr insertSchema schemes.64.idBase16 schemes.64.content {}
71
+ proxyledger tsr insertSchema schemes.65.idBase16 schemes.65.content {}
72
+ proxyledger tsr insertSchema schemes.66.idBase16 schemes.66.content {}
73
+ proxyledger tsr insertSchema schemes.67.idBase16 schemes.67.content {}
74
+ proxyledger tsr insertSchema schemes.68.idBase16 schemes.68.content {}
75
+ proxyledger tsr insertSchema schemes.69.idBase16 schemes.69.content {}
76
+ proxyledger tsr insertSchema schemes.70.idBase16 schemes.70.content {}
77
+ proxyledger tsr insertSchema schemes.71.idBase16 schemes.71.content {}
78
+ proxyledger tsr insertSchema schemes.72.idBase16 schemes.72.content {}
79
+ proxyledger tsr insertSchema schemes.73.idBase16 schemes.73.content {}
80
+ proxyledger tsr insertSchema schemes.74.idBase16 schemes.74.content {}
81
+ proxyledger tsr insertSchema schemes.75.idBase16 schemes.75.content {}
82
+ proxyledger tsr insertSchema schemes.76.idBase16 schemes.76.content {}
83
+ proxyledger tsr insertSchema schemes.77.idBase16 schemes.77.content {}
84
+ proxyledger tsr insertSchema schemes.78.idBase16 schemes.78.content {}
85
+ proxyledger tsr insertSchema schemes.79.idBase16 schemes.79.content {}
@@ -0,0 +1,35 @@
1
+ # create keys for conformance
2
+ using user null
3
+ using user ES256K did1
4
+ using user ES256 did1 user.keys.ES256K.privateKeyHex
5
+ set confIssuer user
6
+
7
+ # register conformance in the DID Registry
8
+ proxyledger did insertDidDocument
9
+ proxyledger did addVerificationMethod user.did ES256
10
+ proxyledger did addVerificationRelationship user.did authentication ES256
11
+ proxyledger did addVerificationRelationship user.did assertionMethod ES256
12
+
13
+ # conformance service can authorize Root TAOs then it needs to be registered in TPR
14
+ run bootstrap/0a-loadTPROperator
15
+ proxyledger tpr insertUserAttributes confIssuer.address ["TIR:setAttributeMetadata"]
16
+ using user confIssuer
17
+
18
+ # registration in the TIR
19
+ reservedAttributeId: compute randomID
20
+ vc: run issue_SelfAttestationSupportOffice user.did reservedAttributeId
21
+ proxyledger tir setAttributeMetadata user.did reservedAttributeId roottao
22
+ proxyledger tir setAttributeData user.did reservedAttributeId vc
23
+
24
+ # register a proxy
25
+ set proxyData {"prefix":"","headers":{},"testSuffix":"/credentials/status/1"}
26
+ set proxyData.prefix domain /conformance/v4/issuer-mock
27
+ proxyledger tir addIssuerProxy user.did proxyData
28
+ proxyId: compute sha256 proxyData
29
+
30
+ set user.accreditationUrl tirUrl /issuers/ user.did /attributes/ reservedAttributeId
31
+ set proxyUrl tirUrl /issuers/ user.did /proxies/ proxyId
32
+ set user.proxyId proxyId
33
+
34
+ view user
35
+ view proxyUrl
@@ -0,0 +1,218 @@
1
+ # EBSI Network Bootstrap Guide
2
+
3
+ This document describes the procedure to bootstrap a new EBSI network. It is intended for administrators setting up a fresh deployment with custom smart contracts.
4
+
5
+ ## Prerequisites
6
+
7
+ - All EBSI smart contracts must be deployed on the target blockchain
8
+ - At least one account with **Operator** role in the Trusted Policies Registry (TPR)
9
+ - Node.js v18 or higher (v22 recommended for optimal stability)
10
+ - SSH access to the RPC node (for direct blockchain connectivity)
11
+
12
+ ## 1. Environment Configuration
13
+
14
+ ### 1.1 Direct Blockchain Access (proxyledger)
15
+
16
+ The bootstrap process uses `proxyledger` to bypass the Ledger API and interact directly with the Besu RPC node. This is required because the Ledger API may not be available or configured for a new network.
17
+
18
+ 1. Establish an SSH tunnel to the RPC node to expose it locally:
19
+
20
+ ```bash
21
+ ssh -L <local_port>:<rpc_host>:<rpc_port> <user>@<bastion_host>
22
+ ```
23
+
24
+ 2. Define the Besu provider endpoint in your environment. Use the appropriate variable for your target environment:
25
+
26
+ | Environment | Variable | Example |
27
+ |-------------|----------|---------|
28
+ | Test | `TEST_BESU_PROVIDER` | `http://localhost:18545` |
29
+ | Pilot | `PILOT_BESU_PROVIDER` | `http://localhost:28545` |
30
+ | Custom | `BESU_PROVIDER` | `http://localhost:38545` |
31
+
32
+ Example for a custom environment:
33
+
34
+ ```bash
35
+ export BESU_PROVIDER=http://localhost:38545
36
+ ```
37
+
38
+ ### 1.2 Contract Addresses (Custom Environments Only)
39
+
40
+ If you are not using the standard **test** or **pilot** environments, you must define all contract addresses in your `.env` file or environment:
41
+
42
+ | Variable | Description |
43
+ |----------|-------------|
44
+ | `DID_SC_ADDRESS` | DID Registry contract address |
45
+ | `TIMESTAMP_SC_ADDRESS` | Timestamp Registry contract address |
46
+ | `TNT_SC_ADDRESS` | Trusted Nodes List contract address |
47
+ | `TIR_SC_ADDRESS` | Trusted Issuers Registry contract address |
48
+ | `TPR_SC_ADDRESS` | Trusted Policies Registry contract address |
49
+ | `TSR_SC_ADDRESS` | Trusted Schemas Registry contract address |
50
+
51
+ ### 1.3 Copy and Configure Environment
52
+
53
+ ```bash
54
+ cp .env.example .env
55
+ # Edit .env with your provider URL and contract addresses
56
+ ```
57
+
58
+ ## 2. Start the CLI
59
+
60
+ Build the project (if running from source) and start the EBSI CLI:
61
+
62
+ ```bash
63
+ # From source
64
+ pnpm run build
65
+ pnpm start
66
+
67
+ # Or using npx (public package)
68
+ npx @europeum-ebsi/cli
69
+ ```
70
+
71
+ When the prompt displays `==>`, the CLI is ready to receive commands.
72
+
73
+ ## 3. Define Required Variables
74
+
75
+ Before running the bootstrap scripts, define the following variables. You can generate most values randomly using the CLI, **except** the TPR Operator private key, which must be the key of the account that holds the Operator role in the TPR.
76
+
77
+ ### Variables to Set (Required)
78
+
79
+ ```
80
+ set PRIVATE_KEY_TPR_OPERATOR <private_key_of_tpr_operator>
81
+ set DID_TPR_OPERATOR <did_of_tpr_operator>
82
+ set PRIVATE_KEY_ES256K_SUPPORT_OFFICE <private_key_es256k_support_office>
83
+ set PRIVATE_KEY_ES256_SUPPORT_OFFICE <private_key_es256_support_office>
84
+ set DID_SUPPORT_OFFICE <did_of_support_office>
85
+ ```
86
+
87
+ ### Variables to Set (Environment-Dependent)
88
+
89
+ ```
90
+ set SET_ENV test
91
+ ```
92
+
93
+ Use `test` or `pilot` for standard environments. For custom deployments, ensure `EBSI_ENV` and the corresponding provider are correctly configured.
94
+
95
+ ### Optional Variables (for `0b-loadAdmin`)
96
+
97
+ The bootstrap scripts that load the Support Office user may require these if your workflows depend on accreditation URLs:
98
+
99
+ ```
100
+ set ACCREDITATION_URL_SUPPORT_OFFICE <url>
101
+ set ACCREDITATION_URL_ROOT_TAO <url>
102
+ ```
103
+
104
+ For initial bootstrap, placeholder values may suffice. After completing [Step 4](#step-4-populate-trusted-issuers-registry-tir), use `view reservedAttributeId` to obtain the attribute ID and construct `ACCREDITATION_URL_SUPPORT_OFFICE` (e.g. `{tirUrl}/issuers/{DID_SUPPORT_OFFICE}/attributes/{reservedAttributeId}`) for future Support Office operations.
105
+
106
+ ---
107
+
108
+ **Note:** The TPR Operator private key cannot be generated—it must correspond to an account that already has the Operator role on the deployed TPR contract. Generate all other keys and DIDs using the CLI's key generation commands before running the scripts.
109
+
110
+ ## 4. Bootstrap Steps
111
+
112
+ Execute the steps below **in order**. Scripts are resolved from `dist/scripts/bootstrap/` when running the built application.
113
+
114
+ ---
115
+
116
+ ### Step 1: Populate Trusted Policies Registry (TPR)
117
+
118
+ Registers policies in the Trusted Policies Registry and assigns attributes to users.
119
+
120
+ **Command:**
121
+
122
+ ```
123
+ run bootstrap/1-populateTPR
124
+ ```
125
+
126
+ **Customization:** To use a different set of users, edit `src/scripts/bootstrap/1-populateTPR` before building. The script contains hardcoded Ethereum addresses and policy associations.
127
+
128
+ ---
129
+
130
+ ### Step 2: Populate DID Registry
131
+
132
+ Registers the Support Office in the DID Registry.
133
+
134
+ **Command:**
135
+
136
+ ```
137
+ run bootstrap/2-populateDID
138
+ ```
139
+
140
+ ---
141
+
142
+ ### Step 3: Populate Timestamp Registry
143
+
144
+ Creates the required hash algorithms in the Timestamp Registry.
145
+
146
+ **Command:**
147
+
148
+ ```
149
+ run bootstrap/3-populateTimestamp
150
+ ```
151
+
152
+ ---
153
+
154
+ ### Step 4: Populate Trusted Issuers Registry (TIR)
155
+
156
+ Inserts the Support Office verifiable credential into the Trusted Issuers Registry.
157
+
158
+ **Command:**
159
+
160
+ ```
161
+ run bootstrap/4-populateTIR
162
+ ```
163
+
164
+ **For future use:** The reserved attribute ID is needed for Support Office configuration. View it with:
165
+
166
+ ```
167
+ view reservedAttributeId
168
+ ```
169
+
170
+ Use this value to construct and set `ACCREDITATION_URL_SUPPORT_OFFICE` (e.g. `{tirUrl}/issuers/{DID_SUPPORT_OFFICE}/attributes/{reservedAttributeId}`) for later Support Office operations.
171
+
172
+ ---
173
+
174
+ ### Step 5: Populate Trusted Schemas Registry (TSR)
175
+
176
+ Registers JSON schemas from the [EBSI JSON Schema repository](https://gitlab.com/europeum/public/json-schema).
177
+
178
+ 1. Clone the [json-schema repository](https://gitlab.com/europeum/public/json-schema) and follow its instructions to export the schemas into a JSON file.
179
+ 2. Set the path to the exported file:
180
+
181
+ ```
182
+ set SCHEMES_FILE <path/to/exported/schemes.json>
183
+ ```
184
+
185
+ 3. Run the population script:
186
+
187
+ ```
188
+ run bootstrap/5-populateTSR
189
+ ```
190
+
191
+ **Limitation:** The script is configured to register 80 schemas. If your JSON file contains more, you must extend `src/scripts/bootstrap/5-populateTSR` with additional `proxyledger tsr insertSchema` lines before rebuilding.
192
+
193
+ ---
194
+
195
+ ## 5. Bootstrap Complete
196
+
197
+ After completing all steps, the network is bootstrapped with:
198
+
199
+ - Trusted Policies Registry policies and user attributes
200
+ - Support Office DID and verification methods
201
+ - Timestamp hash algorithms
202
+ - Support Office as a trusted issuer in the TIR
203
+ - JSON schemas in the TSR
204
+
205
+ ## 6. Environment-Specific Notes
206
+
207
+ Each deployment may have specific requirements. Consider:
208
+
209
+ - **User lists:** Adjust `1-populateTPR` to add or remove operators and their policy attributes
210
+ - **Schema count:** Update `5-populateTSR` if more than 80 schemas are needed
211
+ - **Custom accreditation:** Configure accreditation URLs and legal identifiers as required by your trust framework
212
+
213
+ For detailed CLI usage, tutorials, and command reference, consult the official documentation:
214
+
215
+ - [EBSI Hub – CLI](https://hub.ebsi.eu/tools/cli)
216
+ - [CLI Commands](https://hub.ebsi.eu/tools/cli/commands)
217
+ - [Support Office Tutorials](https://hub.ebsi.eu/tools/cli/support-office-tutorials)
218
+ - [Onboarding Tutorial](https://hub.ebsi.eu/tools/cli/onboarding-tutorial)
@@ -0,0 +1,10 @@
1
+ # way of use:
2
+ # ==> run issueVcInvoke <didSubject> <address>
3
+
4
+ payloadVcInvoke: load assets/vcdm1.1/VerifiableAuthorisationToInvoke.json
5
+ set payloadVcInvoke.issuer user.did
6
+ set payloadVcInvoke.credentialSubject.id $1
7
+ set payloadVcInvoke.credentialSubject.contractAddress $2
8
+ set payloadVcInvoke.termsOfUse.id user.accreditationUrl
9
+ set payloadVcInvoke.credentialSchema.id tsrUrl /schemas/zH74MKkYTbQ6ZfTxufi6A3Aw8giS4piGm8dpgxFmkJjmu
10
+ compute createVcJwt payloadVcInvoke {} ES256 1.1
@@ -0,0 +1,9 @@
1
+ # way of use:
2
+ # ==> run issueVcOnboard <didSubject>
3
+
4
+ payloadVcOnboard: load assets/vcdm1.1/VerifiableAuthorisationToOnboard.json
5
+ set payloadVcOnboard.issuer user.did
6
+ set payloadVcOnboard.credentialSubject.id $1
7
+ set payloadVcOnboard.termsOfUse.id user.accreditationUrl
8
+ set payloadVcOnboard.credentialSchema.id tsrUrl /schemas/zH74MKkYTbQ6ZfTxufi6A3Aw8giS4piGm8dpgxFmkJjmu
9
+ compute createVcJwt payloadVcOnboard {} ES256 1.1
@@ -0,0 +1,11 @@
1
+ # way of use:
2
+ # ==> run issueVcRootTAO <didSubject>
3
+
4
+ reservedAttributeId: compute randomID
5
+ payloadVcRootTAO: load assets/vcdm1.1/VerifiableAuthorisationForTrustChain.json
6
+ set payloadVcRootTAO.issuer user.did
7
+ set payloadVcRootTAO.credentialSubject.id $1
8
+ set payloadVcRootTAO.termsOfUse.id user.supportOfficeAccreditationUrl
9
+ set payloadVcRootTAO.credentialSchema.id tsrUrl /schemas/zH74MKkYTbQ6ZfTxufi6A3Aw8giS4piGm8dpgxFmkJjmu
10
+ set payloadVcRootTAO.credentialSubject.reservedAttributeId reservedAttributeId
11
+ compute createVcJwt payloadVcRootTAO {} ES256 1.1
@@ -0,0 +1,12 @@
1
+ # way of use:
2
+ # ==> run issueVcTAO <didSubject>
3
+
4
+ reservedAttributeId: compute randomID
5
+ payloadVcTAO: load assets/vcdm1.1/VerifiableAccreditationToAccredit.json
6
+ set payloadVcTAO.issuer user.did
7
+ set payloadVcTAO.credentialSubject.id $1
8
+ set payloadVcTAO.credentialSubject.accreditedFor.0.schemaId tsrUrl /schemas/zH74MKkYTbQ6ZfTxufi6A3Aw8giS4piGm8dpgxFmkJjmu
9
+ set payloadVcTAO.termsOfUse.0.id user.accreditationUrl
10
+ set payloadVcTAO.credentialSchema.id tsrUrl /schemas/zHXHLkJpZg4w9nt2GbEBbyE8uhkfirbmT3nF7mJ9kFnjv
11
+ set payloadVcTAO.credentialSubject.reservedAttributeId reservedAttributeId
12
+ compute createVcJwt payloadVcTAO {} ES256 1.1