# File Certification

```
fileCertification(hash, title, uuid, data, signerPubKey)
```

Call this function with the correct arguments in the correct order where:\
\
**hash:** \
is a String and represents the hash of your file, this is expecting a sha256 hash and it should be 64 bytes (characters) max.\
\
**title:** \
is a string and represents the reference of the file, this is limited to 64 bytes (characters) max.\
\
**uuid:** \
is a String and represents a unique identifiant for your certification, this has to be generated by any uuid library, SIGN webapp is using the [uuid library](https://github.com/uuidjs/uuid#readme), if the uuid is already used by another record on the dApp storage you will receive the "This uuid already exist" error, this is to avoid collision.

{% hint style="info" %}
Example of uuid v1 used in sign-web.app\
\&#xNAN;*1bb05c20-9e4b-11ea-9bc2-61ecf68f28a5*
{% endhint %}

**data:** \
is a String and represents the data of your certification grouped in a JSON structure, this is organised as you want to ease the gathering of data to a single call:

{% hint style="info" %}
Example in sign-web.app\
\&#xNAN;*{* \
&#x20;  *hash: fileHash,* \
&#x20;  *timestamp: timestamp,* \
&#x20;  *title: fileRef,* \
&#x20;  *ipfs: ipfsHash* \
*};*
{% endhint %}

**signerPubKey:** \
is a String that represents the public key of an account signing the invocation calling this method.

{% hint style="info" %}
To get the public key using waves signer in your webapp you simply need to get it with:\
\&#xNAN;*document.signer.\_userData.publicKey*
{% endhint %}
