Introduction

OpenCerts Demo

Certificate Schema

JSON Schema

https://github.com/GovTechSG/open-certificate/blob/master/schema/1.4/schema.json

Required Fields

  • id
  • name
  • issuedOn
  • Issuers
  • recipient

Sample Recipient

{

"name": "Blockchain Academy",

"did": "DID:SG-UEN:U18274928E",

"url": "https://blockchainacademy.com",

"email": "registrar@blockchainacademy.com",

"certificateStore": "0xd9580260be45c3c0c2fb259a82f219b513054012"

}

Sample Date

2018-08-01T00:00:00+08:00

Note: Update expiredOn to expiresOn

Create Your Own Certificate!

JSON Schema Validator

https://www.jsonschemavalidator.net/

Required Fields

  • id
  • name
  • issuedOn
  • Issuers
  • recipient

Sample Recipient

{

"name": "Blockchain Academy",

"did": "DID:SG-UEN:U18274928E",

"url": "https://blockchainacademy.com",

"email": "registrar@blockchainacademy.com",

"certificateStore": "0x1C4B83f39DA76d39B3ABbb1AfFf5cB4e629edBF4"

}

Sample Date

2018-08-01T00:00:00+08:00

Certificate Store

0x2F441142BF360c36722d18a82D58bF2Fb0be4463

0x2F441142BF360c36722d18a82D58bF2Fb0be4463

custom awesome skin album private ozone potato define brief pig kiwi kiwi

Environment for CLI

Installing the CLI Tool

  • Installation - At this point you must have NodeJS installed
  • Make a workspace directory, e.g

> mkdir open-cert-workspace

> cd open-cert-workspace

> git clone https://github.com/GovTechSG/certificate-cli.git

3. Install opencert CLI application into workspace

> npm install --production --ignore-scripts

Using the CLI Tool

3. Place unsigned certificates in a folder inside workspace directory e.g

> mkdir unsigned_certs

> mv <path\certs> unsigned_certs

4. Execute CLI batching utility: (For unix systems, change below slash to ‘/’)

> node index.js batch unsigned_certs\ c signed_certs\

2018-08-30T05:06:55.313Z info: Batch Certificate Root: 70250f22ecaa7c12cdde4a4bc6dc3bf2464433691cd462bcfe980d7e85f6a06c

Wallet Preparation

Ledger Nano

https://www.ledger.com/

Or Metamask

https://metamask.io/

Faucet (Free Ethers on Ropsten)

https://faucet.ropsten.be/

Deploying Certificate Store

Interacting With Certificate Store

Preparation

Admin Panel

http://admin.opencerts.io

Certificate Batch’s Merkle Root

Registry

Github Repo

Web Viewer Repository

https://github.com/GovTechSG/opencerts-website

Create a new folder for your organisation

/components/CertificateTemplates/<Organisation Name>

Write the rendering template

Register the template

Suggestions

During initialisation of the device:

  • Break the 20 word seed value into multiple parts and kept separately

After initialisation of the device:

  • Keep the pin and device separately, by different person

Important Notes

Certificates generated cannot be regenerated

  • Do not regenerate a new merkle root to commit an old batch of certificates
  • Store the documents securely

Recommended to have a self-service portal for students to retrieve their certificates

Have certificate backups readily available

Resources

OpenCerts Technical Training 1 - Google Slides