How it works?


Minting is the task of placing a certificate in a folder on the Ethereum network and transferring the certificate to its owner.


Each certificate must belongs to a folder, a smart contract with a unique address located in the network. It is created for an organisation and then, it is deployed before a certificate is placed into it.

For example, in the case of academic certificate, a folder for an academic institution or a university or college or any organisation, is created and then is deployed.

It is specified by a schema which describes how the information inside a certificate should be constructed. Therefore a certificate must conform to a schema specified by the folder.

A schema or how data is structured should describes its use case. For example an academic schema contains fields for student name, school name and etc.

Signature and evidence

A certificate record can be stored off-chain or outside the blockchain network. An academic certificate record, for example contains values of fields specified by an academic schema.

A traditional database server such as MySQL hosted on public domain or in a distributed peer-to-peer file system such as IPFS or Swarm can be used to store those datas.

Before a certificate is minted, two artifacts are generated, the signature and evidence, using information specific to a folder and the certificate record.

An example for an information that is specific to a folder can be the name, symbol and address of an academic institution that will issue academic certificates.

Transfer of certificate

Once a certificate is created, its equivalent signature is also created and stored on the network. The next thing to do is to transfer it to the rightful owner.

To transfer certificate is like to transfer cryptocurrency on any blockchain network. The sender must know receiver’s account id or public key. Therefore the public key of the owner must be submitted before transferring a certificate.

In the case of an academic certificate, the sender (by default) is the thuleen system administrator, whereas the certificate owner is the student who will receive the certificate.

Validating certificate

In order to validate a certificate, an application which will be used, say by a third party, must be able to calculate a signature and compare it to the original signature which had been stored earlier on to the network.

thuleen provides a web based application or decentralised application (DApp) with public key registration, certificate display and validation features. It can be installed and hosted on a web hosting infrastructure or IPFS network.

The signature calculation is based on the certificate record in question and its evidence, claim and sent by an owner in question, via an arbitrarily channel, say Telegram or Whatsapp or email.

If the calculated signature match the one stored on to the network, then the certificate in question is considered valid or vice versa.

Proof of ownership, genuinity and existence

A valid certificate proofs its ownership, genuinity and existence.

Meaning of a valid certificate on the Ethereum blockchain network, which has at least three fundamental characteristics —distributed, trustless and immutable.

Genuinity of a certificate can be proven since the signature and evidence are generated based on its folder, the single source of origin. So signature calculation based on a different folder will give a different results.

The uniqueness of a certificate within a folder is also guaranteed as a slight change of data in a certificate can results in a different set of signature and evidence. That is to say, a folder can contains multiples certificates with each of them have different pairs of signature and evidence.

Therefore one can logically deduces that a certificate is genuine when it is valid since it has a unique pair of signature and evidence, in which both are derived from a unique folder.

NOTE: The network can not holds two equal folders, and each folder can not holds two equal certificates.

Existence of the certificate can be proven if a certificate is genuine. This is because a stored signature must exist in the first place before validating takes place.

Therefore if calculated signature and stored signature match, then a certificate in question does exist.

Ownership of the certificate can also be proven because in each certificate there is receiver’s or owner’s public key record.

The ownership can be contested by comparing the public key inside his or her (Ethereum-compatible) wallet with the one imprinted in the certificate.

A certificate can exist without an owner. In other words, a certificate can be a valid certificate but nobody owns it. This state is achieved when the receiver’s public key is set to zero or “0x0“.