# Protocol

{% hint style="info" %}
Contracts on Polygon Mainnet 👇\
\
\&#xNAN;***PrutopiaUser***: [0xd00B2f8b8Dc2cDF3066A0670693333A520BC4137](https://polygonscan.com/address/0xd00B2f8b8Dc2cDF3066A0670693333A520BC4137)\
\&#xNAN;***PrutopiaExperience***: [0x8047198D98312CC655846C1C10D7d32bf000ebd8](https://polygonscan.com/address/0x8047198D98312CC655846C1C10D7d32bf000ebd8)\
\&#xNAN;***PrutopiaWorkRecord***: [0x0DB66B7697a6e6B74c764E34E49e2Af9D210D2C9](https://polygonscan.com/address/0x0DB66B7697a6e6B74c764E34E49e2Af9D210D2C9)

Contracts on Polygon Amoy (Testnet) 👇\
\
\&#xNAN;***PrutopiaUser***: [0xFCA5E805ADaE635e85af273a7209922283cf8F47](https://amoy.polygonscan.com/address/0xFCA5E805ADaE635e85af273a7209922283cf8F47)\
\&#xNAN;***PrutopiaExperience***: [0x55A69384eE9eb00cef7eF292C2f4f3300F48668e](https://amoy.polygonscan.com/address/0x55A69384eE9eb00cef7eF292C2f4f3300F48668e)\
\&#xNAN;***PrutopiaWorkRecord***: [0x74d286406E02aC4B33460EC43c994709eA63fB9f](https://amoy.polygonscan.com/address/0x74d286406E02aC4B33460EC43c994709eA63fB9f)
{% endhint %}

## Overview

Prutopia has developed 3 Smart Contracts that allow storing and handling data and metadata, and expose an unmutable business logic.

<figure><img src="https://3541131919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUhY7XKQR2IRhgp8IRgm6%2Fuploads%2FBdXOPFdwtML3HKTBVKXX%2Fimage.png?alt=media&#x26;token=f8ea6bf4-a9fb-486b-9a99-3c3b033fb27a" alt=""><figcaption></figcaption></figure>

## Data Layer

Seeing the Blockchain as a Database, we can identify the following entities that store all necessary data.

<figure><img src="https://3541131919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUhY7XKQR2IRhgp8IRgm6%2Fuploads%2F9hm2I6Ep6vhBfThi3bd3%2Fimage.png?alt=media&#x26;token=e360121d-3b54-45ff-8182-121dd93279a3" alt=""><figcaption></figcaption></figure>

## Details

Visit each page to know more details about the Smart Contacts.

### User Smart Contract

{% content-ref url="protocol/user-smart-contract" %}
[user-smart-contract](https://docs.prutopia.io/architecture/protocol/user-smart-contract)
{% endcontent-ref %}

### Experience Smart Contract

{% content-ref url="protocol/experience-smart-contract" %}
[experience-smart-contract](https://docs.prutopia.io/architecture/protocol/experience-smart-contract)
{% endcontent-ref %}

### Work Record Smart Contract

{% content-ref url="protocol/work-record-smart-contract" %}
[work-record-smart-contract](https://docs.prutopia.io/architecture/protocol/work-record-smart-contract)
{% endcontent-ref %}

## Fee Structure

{% hint style="info" %}
Although the contract logic enables the potential option to charge for each registration, it is not in the short-term roadmap to charge for this service.
{% endhint %}

### Experience

Fees for adding an Experience can be paid with Native Token or with a configured ERC20. Price is fixed. This price can never be higher than 10 MATIC or 5 USD and is hardcoded in the contract.

### Work Record

Fees aren't charged when adding a Work Record but only when it is ended. It can be only paid with a configured ERC20, using only USD pegged. The amount is determined by a percentage on the Work Record price, and that the reason for using a USD pegged token. This percentage can never be higher than a 10% and is hardcoded in the contract. For small amounts there is a minimum, that can never be higher than 5 USD. This value is also hardcoded.
