# Welcome to Prutopia!

{% hint style="info" %}
To see the documentation in Spanish you can enter [here](https://documentacion.prutopia.io/).
{% endhint %}

## Overview

Prutopia is the universal work profile for the internet, where individuals have full ownership of their professional data, a high level of verifiability, and the ability to seamlessly use their work identity across the web.

To illustrate, a freelancer can consolidate their reputation and work history from multiple platforms into a single profile that they own and control, while being able to prove the authenticity of that information. Employers, clients, and other counterparties can easily verify who validated each work experience, who provided ratings or endorsements, and decide for themselves whether they trust those sources. All of this is possible without relying on a trusted intermediary or requiring users to disclose traditional identity attributes such as their gender, nationality, birth name, or government-issued identification, creating a more balanced and user-centric model of professional identity.

With this work identity, users can interact across the internet using a single, portable professional profile, whether on social networks, job boards, freelance marketplaces, digital wallets, or other online platforms.

{% hint style="info" %}
You can see the latest updates and contact us at [www.prutopia.io](https://www.prutopia.io/?source=docs)
{% endhint %}

## Understanding Prutopia

What is the purpose of people's lives? How does Prutopia align with that? How does it materialize? These are some questions answered in the following sections.

{% content-ref url="/pages/GKrJDjREuepdoeJNknEr" %}
[Purpose](/overview/purpose)
{% endcontent-ref %}

{% content-ref url="/pages/d9paMsolQQznEcRNFMeA" %}
[Product](/overview/product)
{% endcontent-ref %}

## Core concepts

Key concepts to understand and learn more about Prutopia.

{% content-ref url="/pages/9DbqBYAIlsie9gGq5JTe" %}
[Core Concepts](/core-concepts/blockchain)
{% endcontent-ref %}

## Integrations

Learn more about the benefits of allowing professionals to use their Prutopia CV on your platform.

{% content-ref url="/pages/YZrXU5InTDyMm47SP6Ii" %}
[Integrations](/integrations/lets-work-together)
{% endcontent-ref %}

## Architecture

Learn more about the smart contracts, API, and the detailed technological architecture used and enabled by Prutopia.

{% content-ref url="/pages/ukyFQ6x6aWDCiOvsAQzN" %}
[Architecture](/architecture/protocol)
{% endcontent-ref %}


# Purpose

{% hint style="info" %}
Our main thesis is that the purpose of life for all people revolves around **freedom**.
{% endhint %}

## What means Prutopia?

### Freedom: your purpose <a href="#heading-freedom-your-purpose" id="heading-freedom-your-purpose"></a>

What is your purpose in life? What are you looking for in the future? The answer always ends in greater power of decision/action about your life. **That is freedom**.

Creating a product involves creating value for people, and this means helping them achieve their purpose in life.

> *Prutopia is built seeking to contribute to that point: it is a native internet CV in which people shape their work identity by being empowered in the workplace, working on 3 aspects: data portability (power), data veracity, and interoperability.*

#### **Data Portability (Power)** <a href="#heading-data-portability-power" id="heading-data-portability-power"></a>

Blockchain technology **allows power to be in the hands of the individual**. Each identity has an ID (address) on the network, which can be used to identify the authorship of their actions in the digital world without the need for an intermediary to guard those data. Once the person has that power, no one can take it away (not even the Prutopia team that creates the tools for this to be reality).

#### **Data Veracity** <a href="#heading-data-veracity" id="heading-data-veracity"></a>

A paper CV is the perfect example of power over data: it's in my hand, no one can take it away. But how much veracity does it have? None.

Blockchain, in turn, allows us to demonstrate the authorship of actions of an identity within it, who else is validating that information, at what time, etc. **This allows the internet to be truthful.**

Data portability and veracity give individuals greater degrees of freedom, as they do not depend on third parties to freely manage their work identity.

#### **Interoperability** <a href="#heading-interoperability" id="heading-interoperability"></a>

*In the traditional world*: completing the paper CV, delivering it to different businesses... updating work information, completing the CV again, delivering it again.

*In the digital world*: completing the CV on a job board, completing it on a service marketplace, completing it on another job board, updating work information... completing it again.

The CV continues to function as it did in the traditional era. That's why, at Prutopia, we are creating a tool suitable for the internet: **a native internet curriculum vitae, online, without friction, easy to create, update, and connect.**

People will gather every work history, job experience, and other relevant data across the internet (reviews on platforms, educational certificates, etc.) with demonstrable validation of this data by third parties (companies, educational institutions, etc.), and connect seamlessly across different sites with a single click, allowing information to migrate smoothly both in job updates (for example: every time they provide a new service on a freelancing platform it would update on Prutopia...) and on job-seeking platforms where their Prutopia profile is connected (...and in turn on job boards where the Prutopia profile is linked).

### The New Internet CV <a href="#heading-the-new-internet-cv" id="heading-the-new-internet-cv"></a>

Taking these 3 points into account, individuals can shape identities free from determination (and not in traditional concepts, as explained in the [identity article](https://mirror.xyz/prutopia.eth/zb2ASQVz1BvVLwiiaCQw9waRxeoWoVrxKNmLfFGI8dI)) that generate trust in their counterpart, building a reputational capital for their connection throughout the internet.

Those concepts are at the essence of Prutopia, even in its name: "*Pr*" for Prometheus, the titan who according to Greek mythology, stole fire from the gods to give it to the people, demonstrating a struggle against the status quo, and "*utopia*" because that seems in our daily reality a utopian concept.

***Prutopia is born with that philosophy to go in search of a utopia and make it a reality.***

## **More Detail**

For more information, we recommend reading the articles on our [blog](https://mirror.xyz/prutopia.eth).


# Product

Prutopia can be analyzed both as a protocol and as a product. Both aspects represent the construction of a solid three-stage path that will allow for the creation of a work profile for the entire internet.

1. **CV Standard**: A resume that becomes the internet standard in terms of structure and content. This benefits professionals by eliminating the need to have expertise in industries they are not familiar with, and also helps recruiters and companies save hours of work analyzing and transforming CVs. The professional is provided with a digital profile at [app.prutopia.io](https://app.prutopia.io), as well as a PDF document following the structure mentioned below.
2. **Work Profile**: The ability to create a visually appealing window to the world, with opportunities for differentiation (100% customizable).
3. **Work Reputation**: The development of a reputation protocol that enables its use in other contexts (e.g., finance).

{% hint style="info" %}
As of **July 2026**, the first stage has been fully developed, and work on the second stage is currently in progress.
{% endhint %}

## Stage 1: CV Standard

Users can create their resume with Prutopia and easily obtain an optimized CV suitable for ATS filters.

The optimization occurs on two levels: **structure** and **content**.\
Regarding structure, the **Harvard model** is used — a format widely accepted within the recruitment industry. In-depth studies are conducted, including research on commonly used models, input from industry specialists, and testing with ATS systems, to validate the most effective format. These studies analyze the sections, order, and other relevant elements

<figure><img src="/files/vpCtGe10AO9QBqkYZjZQ" alt=""><figcaption></figcaption></figure>

Regarding content, previously evaluated criteria are used to ensure a stronger presentation of the professional (for example: describing work experience in 5 or 6 bullet points, ideally highlighting metrics and results). Combined with ongoing analysis of roles at leading companies worldwide, this provides a solid foundation for offering AI-powered optimization suggestions to the user.

***

#### **Experiences**

Users can add as many **work** and **educational experiences** as they wish (with detailed distinctions between different types provided).

This can be done manually or through the **“Upload Existing CV”** or **“Import from LinkedIn”** functions, both of which use GPT-powered processing to make the initial input experience significantly easier.

All experiences are recorded on the [**blockchain**](/core-concepts/blockchain), creating a unique, public, and immutable log. This means users can edit or delete experiences, and those changes will be reflected on their Prutopia profile — but earlier versions will remain on the blockchain and can be accessed by any third party with the technical knowledge to retrieve them.

***

#### **Jobs**

The **Jobs** section allows professionals to discover job opportunities from multiple platforms, such as Computrabajo and Bumeran, in a single place.

When viewing a job posting, users can use the **Tailor CV** feature to evaluate how well their profile matches the position's requirements. Teo identifies strengths, highlights areas for improvement, and recommends changes to increase compatibility with the opportunity.

With a single click, users can apply the recommended changes and generate a personalized version of their resume specifically tailored to that job. They can then download it as a PDF and use it to apply directly through the platform where the job was originally posted.

This approach allows professionals to maintain a single up-to-date profile in Prutopia while easily creating optimized resume versions for each job opportunity, eliminating the need to manually edit and manage multiple documents.

***

#### **Teo**

**Teo** is Prutopia's AI agent, specialized in professional profiles, resumes, and career development.

It has been trained with specialized knowledge on best practices for building high-impact professional profiles, writing effective resumes, optimizing them for Applicant Tracking Systems (ATS), and tailoring them to different hiring processes.

Through natural conversation, Teo helps professionals create, improve, and maintain their work profiles by providing personalized recommendations and applying improvements with a single click.

Its main capabilities include:

* Creating a professional profile from scratch.
* Importing and structuring information from an existing resume.
* Optimizing resume content to improve clarity and impact.
* Tailoring a resume for a specific job opportunity.
* Evaluating how well a profile matches a job posting.
* Recommending improvements to increase the chances of success in a hiring process.
* Helping users keep their professional profile up to date with minimal effort.

By centralizing all professional information in a single profile, Teo enables users to generate multiple resume versions tailored to different opportunities without maintaining multiple documents, making the job search process more efficient.

Teo is part of Prutopia's vision of building an intelligent work identity, where artificial intelligence acts as a lifelong career assistant that accompanies professionals throughout their careers.

***

#### **Download CV**

If the professional prefers, they can also **download the ATS-optimized CV** and use it independently, outside of the Prutopia platform.

***

#### **Universal Easy Apply (UEA)**

{% hint style="info" %}
**Universal Easy Apply** is available as a browser extension.\
Download it from the [Chrome Web Store](https://chromewebstore.google.com/detail/prutopia-universal-easy-a/bhjdpebbjnpknfdhjlgfapeocdghapnd).
{% endhint %}

**Universal Easy Apply (UEA)** is a browser extension that simplifies job applications by reducing the time and effort required to complete online application forms.

Instead of manually filling the same information over and over again, users can apply using their Prutopia profile, letting the extension complete the application flow for them.

UEA works on top of existing job application forms, without requiring any changes from job boards or employers.

**What Universal Easy Apply Solves:**

Applying for jobs today usually means:

* Re-entering the same personal and professional data repeatedly
* Filling long and inconsistent forms across platforms
* Spending significant time on each application

Universal Easy Apply removes this friction by automating form completion using a single work profile.

**How It Works:**

1. **Single Work Profile**\
   The user maintains one profile in Prutopia with their professional information.
2. **Browser Extension**\
   Universal Easy Apply runs as a browser extension and activates when the user is applying for a job.
3. **Form Detection & Mapping**\
   The extension detects application form fields and maps them to the corresponding data in the user’s profile.
4. **Simplified Application**\
   With one action, the required fields are completed, dramatically reducing the time needed to apply.
5. **Always Up to Date**\
   Updates made to the profile are automatically reflected in future applications.

**Key Properties:**

* **Time-saving**: Drastically reduces application time
* **Universal**: Works across job boards, ATSs, and custom forms
* **Non-invasive**: No integration required from employers
* **User-controlled**: Users decide what data is used in each application
* **Profile-based**: One profile, multiple applications

**Why It Matters:**

Universal Easy Apply focuses on **efficiency**.

By minimizing the effort required to complete application forms, users can apply to more opportunities with less friction, while keeping their information consistent and up to date.

***

#### **Usernames**

Users can be discovered and share their profile using their username in the format:\
**`prutopia.io/{username}`**

This is powered by [**ENS Domains (Ethereum Name Service)**](https://ens.domains/), a universal naming system for the internet built on Ethereum. ENS allows human-readable names (like `vitalik.eth`) to map to identities, wallets, and data, replacing complex addresses with simple, portable usernames.

#### Username Format

Usernames must:

* Be between **3 and 16 characters**
* Contain only:
  * lowercase letters (`a-z`)
  * numbers (`0-9`)
  * hyphens (`-`)

Examples:

* `prutopia.io/vitalik` (linked to `vitalik.prutopia.eth`) → displayed as **@vitalik**

#### Types of Usernames

An account can choose between two types of usernames:

**1. Offchain Names (Prutopia Subnames)**

* Format: `username.prutopia.eth`
* Displayed as: `@username`
* Free to use
* Issued and managed by Prutopia
* Implemented as **offchain ENS subnames**
* Each account can have **one active username**
* Can be revoked or reassigned by Prutopia if necessary

Use this option to get started instantly.

**2. Onchain Names (.eth)**

* Format: `username.eth`
* Displayed as: `@username.eth`
* Owned by your wallet
* Registered via ENS (onchain)
* Not controlled or revocable by Prutopia
* Requires payment (gas + registration)

To use a `.eth`, the account must set it as its **primary name**.

#### Switching Usernames

An account can switch between:

* different `prutopia.eth` subnames
* a `prutopia.eth` subname and a `.eth` name (via primary name)

**Rules:**

* You can change your username **once every 28 days**
* Switching does **not affect**:
  * your profile
  * your history
  * your reputation

#### Trust & Identity

Usernames are a key part of your identity on Prutopia.

While you *can* change them, frequent changes may:

* reduce trust
* make it harder for others to recognize you

If you want flexibility, consider updating your **display name** instead.

#### Ownership & Control

| Type           | Cost | Controlled by | Revocable |
| -------------- | ---- | ------------- | --------- |
| `prutopia.eth` | Free | Prutopia      | Yes       |
| `.eth`         | Paid | Your wallet   | No        |

Prutopia reserves the right to **remove or reassign subnames** (`*.prutopia.eth`) when necessary, including but not limited to:

* impersonation
* trademark conflicts
* abuse or spam

#### Summary

* Your public identity is **@username**
* Your profile can be shared at **prutopia.io/{username}**
* Start free with a `prutopia.eth` subname
* Upgrade anytime to a `.eth`
* Switch every 28 days (including between subnames)
* Your identity persists regardless of name changes

## Stage 2: Work Profile

{% hint style="info" %}
Next stage to be developed: your work profile, for the entire internet.
{% endhint %}

## Stage 3: Cross-platform work reputation

{% hint style="info" %}
The third stage to be developed: leverage your professional reputation across other domains.
{% endhint %}

## Protocol

Prutopia has developed a [protocol comprised of 3 smart contracts ](/architecture/protocol)that enable the registration of work and educational experiences, as well as user data registration (if necessary). This allows the infrastructure layer to be built on an immutable database ([blockchain](/core-concepts/blockchain), in this case, Polygon) so that users can have control over their data independently of Prutopia as an organization, and other protocols and projects can use that information freely if necessary.

Prutopia also provides an [API ](/architecture/api)for those who wish to integrate easily for reading and writing such data.

Details about this information can be found in the [Architecture ](/architecture/protocol)section.


# Blockchain

{% hint style="info" %}
If you have knowledge about blockchain technology, you can skip this section. Otherwise, you will find a basic conceptual understanding without technical depth.
{% endhint %}

Without delving into deep technical aspects, we focus on two concepts:

* [**Blockchain technology**](https://academy.bit2me.com/en/que-es-cadena-de-bloques-blockchain/) (referring to its public nature and not to private ones) refers to a [decentralized ](https://academy.bit2me.com/en/que-es-la-descentralizacion-en-web-3/)database managed by a network of nodes without a central point of control.
* [**Web3**](https://learn.metamask.io/lessons/what-is-web3): understood as the evolution of web2, enabling users to read the web, write, and own digital assets.

<figure><img src="/files/9zmtBOJn6dI7HttfaUxw" alt="" width="375"><figcaption></figcaption></figure>

About blockchain, instead of being controlled by a single centralized server, **multiple** [**nodes** ](https://academy.bit2me.com/en/que-es-un-nodo/)manage it, reducing the likelihood of a single point of failure and control. Each identity has a unique identifier on this (an [**address**](https://www.coinbase.com/en-es/learn/wallet/what-is-a-wallet-address)) and can prove ownership of this identifier using a [**private key**](https://www.coinbase.com/learn/crypto-basics/what-is-a-private-key).

{% hint style="info" %}
To clarify: imagine an island (blockchain) with multiple houses (addresses). To ensure that what happens in that house and what is stored there belongs to me and corresponds to my actions, I have the key (private key) that opens it and can demonstrate this.
{% endhint %}

Each blockchain has a native asset (**cryptocurrency**) that incentivizes node operation and is used to pay for transactions. In the same example: transactions on the island are paid in the local currency, and everyone who registers them receives rewards for their work.

When referring to programmable blockchains, [**Ethereum** ](https://ethereum.org/en/)is a key example. It functions as a decentralized database and supports [**smart contracts**](https://academy.bit2me.com/en/que-son-los-smart-contracts/), allowing functions to be executed without intermediaries while ensuring high security and immutability. What is written in this database is set in stone due to its immutable nature.

Interacting with blockchain can be complex and costly, but continuous advancements are improving user experience and reducing costs. For example, [MPC wallets](https://web3auth.io/mpc.html) use technology that allows logging in with familiar social accounts (e.g., Google, LinkedIn) while providing the security and benefits of web3.

Focusing on Prutopia, using the [**Polygon** ](https://polygon.technology/)blockchain (which benefits from Ethereum's features), individuals will create their work identities stored in a decentralized database. This ensures they have sole control over their identities, and counterparts can validate their records to ensure authenticity. This global database built on the internet allows seamless [interoperability ](/core-concepts/interoperability)across various online sites and platforms.


# Prutopia Registry

In Prutopia, you can enrich your curriculum through direct entries in the protocol as well as integrations with third parties. Below are the concepts for direct entry registration.

## Experiences

As a professional, you can register work or educational experiences. The former can correspond to those in an employment relationship, i.e., as an employee of a particular organization, or relate to roles as a freelancer, contractor or similar.

For example:

* **Employee**: Business Analyst at Mercado Libre from February 2020 to December 2023.
* **Freelancer**: <mark style="color:green;">Developer</mark> since January 2024 with multiple services performed through Fiverr and Upwork and with clients obtained through social networks such as Instagram and LinkedIn.

On the other hand, you can also register educational experiences you have had at various institutions, at all levels.

For example:

* Bachelor in Organizational Administration at the University of Buenos Aires, June 2017 - December 2022.

## Services

Services (or also called 'jobs') are related to those roles as a freelancer. Each one is linked to a particular role and can include a detailed description that helps build a reputation.

For example:

* '*Solidity Developer: smart contract development*'. Hired through Fiverr. 120 hours worked. 5 stars. Linked to the role of <mark style="color:green;">Developer</mark>

You can see more details of the technical implementation in the [Architecture ](/architecture/protocol)section.


# Validation

Each record can be validated by the corresponding counterpart. That is:

* **Work experiences**: can be validated by companies or clients.
* **Educational experiences**: can be validated by educational institutions.

The professional will determine who the corresponding counterpart is, and they can perform the validation on-chain. In more technical terms: the user with their address registers an experience and determines an address that can (or cannot) validate that record, and anyone could verify who made the validation and whether they trust that this address is who they claim to be. For example:

> * Luciano Padovani
> * lucianito.eth (address: 0x936ed6f327b2d6fb9cdaf3ddfc9d5a4eb203cf93)
> * Record: worked at Prutopia
> * Reference to the organization: prutopia.eth (0xaa7B0ccb69E2Be14a2b19c3D265E5Cc2F18b1200)

On the other hand, prutopia.eth can validate or not this experience on-chain.

Any other party could verify that this address is the one validating, and whether they trust that prutopia.eth is indeed the organization Prutopia.

{% hint style="info" %}
The integration with ENS will be implemented in the very near future.
{% endhint %}


# Interoperability

Interoperability is a key concept within Prutopia. Thanks to web3, each identity (remember that one person can be multiple identities, or multiple people can be one identity) is identified on the internet as a unique address. This enables interactions on multiple sites to identify the same identity.

The professional can interact with different job boards, service marketplaces, and more, using their same Prutopia curriculum. This allows them to gather every reputational data point from all these sites, have them under their control, and connect with a simple one-click experience across different places, ensuring that the data is not partitioned across various platforms but unified under the user's power.

{% hint style="info" %}
For example: a person uses Fiverr and has completed 10 services there. They connect their profile with Prutopia and can then connect with the job board SatoshiJobs to use their Fiverr reputation on that site.
{% endhint %}


# Let's work together!

## Platforms

By seeking integration with such platforms, users would be allowed to import their work history and reputation from more and more partitioned and distributed points of work identity across the internet. They can maintain an updated and dynamic resume on these platforms.

Companies that own these platforms benefit in several ways:

* **Removing friction for users** to fill out their work profile in multiple places multiple times. A significant issue with online job applications is that people do not tolerate such a lengthy process to apply, and they do not want to repeat it more than once (especially if they have to do it on other platforms and/or update the data in the future).
* Constantly **updated user data** with verifiable **accuracy**.
* **Programmatic data** that makes matching with employers through filters or AI easier.
* **Optimizes an** [**ATS** ](https://youtu.be/8bSdDa_2H1w?si=e1FNJ-b-yPdvFDyS)**to the maximum extent**: data is shared in the desired framework (backend), not as a PDF, although visually (frontend), it has a better aesthetic.
* Instant **background checks** create a more efficient onboarding process, reducing costs and time.

## Contact

If you're interested in integrating **Prutopia** services into your platform or partner with us, you can contact us through the following channels:

* **Email:** <hello@prutopia.io>
* **X:** [**https://x.com/prutopia\_app**](https://x.com/prutopia_app)
* **LinkedIn:** [**https://www.linkedin.com/company/prutopia**](https://www.linkedin.com/company/prutopia)

You can check our current integrations 👉


# Prutopia Network

**Prutopia Network** is a network of partners and integrations that bring value to professionals and complement the construction of a universal work profile for the internet.

\
Below, you can explore the details of each of them.


# Platforms and Companies

This section will present the integrations carried out with different types of organizations.

#### [ENS (Ethereum Name Service)](https://ens.domains/)

It is a decentralized naming system built on Ethereum that maps human-readable names (like `vitalik.eth`) to digital identities, wallets, and data. In **Prutopia**, ENS is used as the foundation for *usernames*, enabling portable, user-owned identities that can be resolved across apps and shared as simple, consistent handles.

You can read more about usernames [here](/overview/product#usernames).

#### [Frutero](https://www.frutero.club/)

A community of builders that creates founders, where talent is transformed into impact. Frutero will enable its community members to incorporate validated learning experiences into their **Prutopia** professional profiles.


# Experts

Here you’ll find leading partners who support and add value to professional development in areas such as employability and mentorship.

#### [Emplea Habilidad](https://own.page/empleabilidad)

Offers personalized 1:1 guidance in employability and personal branding, covering processes such as landing a first job, re-entering the workforce, career advancement, career transitions, and positioning in the job market.

#### [María Victoria Pizurnia](https://linktr.ee/Mariavpizurnia)

HR trainer with over 5 years of experience in end-to-end recruitment and talent management. She supports HR professionals in developing skills that enhance their performance and career growth.

#### [Geny Empleabilidad](https://beacons.ai/genyempleabilidad)

Publicist with more than 10 years of experience in marketing, specializing in positioning profiles to be discovered by global recruiters. She is also a speaker on tech employability across Latin America and Europe.


# Protocol

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

Contracts on Polygon Amoy (Testnet) 👇\
\
***PrutopiaUser***: [0xFCA5E805ADaE635e85af273a7209922283cf8F47](https://amoy.polygonscan.com/address/0xFCA5E805ADaE635e85af273a7209922283cf8F47)\
***PrutopiaExperience***: [0x55A69384eE9eb00cef7eF292C2f4f3300F48668e](https://amoy.polygonscan.com/address/0x55A69384eE9eb00cef7eF292C2f4f3300F48668e)\
***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="/files/rvCXLvwUiDu5ta0Ri5Pq" 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="/files/up0HOjhpO1PW9tpbQANu" alt=""><figcaption></figcaption></figure>

## Details

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

### User Smart Contract

{% content-ref url="/pages/daoYdUvbF0HfwvQ373G4" %}
[User Smart Contract](/architecture/protocol/user-smart-contract)
{% endcontent-ref %}

### Experience Smart Contract

{% content-ref url="/pages/72o8nlwHEYPsWdOQI8dq" %}
[Experience Smart Contract](/architecture/protocol/experience-smart-contract)
{% endcontent-ref %}

### Work Record Smart Contract

{% content-ref url="/pages/ClkrFcqzm3xN0GLLtQWS" %}
[Work Record Smart Contract](/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.


# User Smart Contract

This contract stores two different things:

### User Data

This is an on-chain way to store basic user information (name, bio, social networks, picture).  It's not mandatory, is just another option. User can choose to use different sources to display their info (i.e. ENS, NFTs, LinkedIn or other on-chain or off-chain sources).

#### Structure

```solidity
struct UserInfo {
    address user;
    string name;
    string bio;
    string[] networkLinks;
    string profilePicture;
    string moreInfoLink;
}  
```

Example:

```json
{
  "user": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
  "name": "John Doe",
  "bio": "I am a developer with 5 years of experience...",
  "networkLinks": [
    "twitter.com/johndoe",
    "linkedin.com/in/johndoe"
  ],
  "profilePicture": "https://i.pravatar.cc/300",
  "moreInfoLink": "ipfs://ipfs.io/XXXXXXX"
}
```

### Permissions

Permissions are a tool that allows the user to delegate to an operator the ability to register a record on their behalf. This is necessary if the user wants to use [Prutopia API](/architecture/api) or eventually another third party tool.

#### Types

There are two type of permissions: General and Experience. The first one are permissions relative to general actions and the second one are permissions relative to a certain experience.

#### Structure

```solidity
struct GeneralPermission {
    bool updateInfo;
    bool addExperience;
    bool editExperience;
    bool endExperience;
    bool deleteExperience;
    bool addCompanyValidation;
    bool updateWorkRecordValidation;
    bool usePlatformAddress;
    bool total;
}
```

Each permission name describes the action that is allowed to be executed by the operator. User can choose to configure "total" permissions, that acts as a superpermission for all operations.

```solidity
struct ExperiencePermission {
    bool addWorkRecord;
    bool editWorkRecord;
    bool endWorkRecord;
    bool deleteWorkRecord;
    bool cancelWorkRecord;
}
```

Experience Permissions are used for freelance experiences and allows to perform Work Record functions for a specific Experience. To understand this better, think of a user who do regular jobs on a freelance service platform and wants to allow that platform to write that services but specifically for that experience, and not for another.

### Functions

**updateInfo:** Used to insert/update their profile.

**updateGeneralPermissions:** Used to update General Permissions.

**updateGeneralPermissionsWithSig:** Used to update General Permissions with user Signature. This allows the user to configure General Permissions delegating the blockchain transaction to a third party.

**updateExperiencePermissions:** Used to update ExperiencePermissions.

**updateExperiencePermissionsWithSig:** Used to update Experience Permissions with user Signature. This allows the user to configure Experience Permissions delegating the blockchain transaction to a third party.


# Experience Smart Contract

This contract stores all the Work and Educational Experiences of the user.

#### Structure

```solidity
struct Experience {
    uint256 experienceId;
    address user;
    uint8 experienceType;
    string role;
    string description;
    string company;
    address companyAddress;
    uint256 startDate;
    uint256 endDate;
    bool companyValidation;
    Skill[] skills;
    string moreInfoLinks;
}
struct Skill {
    string skill;
    uint8 level;
}
```

Example

```json
{
  "experienceId": 1,
  "user": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
  "experienceType": 0,
  "role": "Developer",
  "description": "Fullstack Blockchain Developer",
  "company": "",
  "companyAddress": "0xea83c649dd49a6ec44c9e2943eb673a8fbb7bab6",
  "startDate": 1704078000,
  "endDate": 1717124400,
  "companyValidation": true,
  "skills": [
    {
      "skill": "Javascript",
      "level": 8
    },
    {
      "skill": "English",
      "level": 0
    }
  ],
  "moreInfoLink": "ipfs://ipfs.io/XXXXXXX"  
}
```

#### Field Semantics

* experienceId: Experience Identificator. This value is assigned correlatively by the Smart Contract.
* user: Address of the user. Owner of the record.
* experienceType: Type of the Experience (0 = Professional, 1 = Educational).
* role: Role name.
* description: Describe the role with more details.
* company: Name of the company/institution. It's just descriptive, this experience cannot be verified if this field is used. Must be empty if a Company Address is provided or if the Experience is freelance.
* companyAddress: Address of the company/institution. Must be provided by the company/institution itself. Must be different from user address. The owner of this address can verify the Experience. Could be empty if the company/institution have no address or if the Experience is freelance.&#x20;
* startDate: Date when the Experience began. Store as Unix Timestamp (Seconds since Jan-01-1970). Mandatory field.
* endDate: Date when the Experience ended. Store as Unix Timestamp (Seconds since Jan-01-1970).  Could be 0 if the Experience has not ended yet. Must be 0 if the Experience is freelance. Must be greater than startDate.
* companyValidation: If a companyAddress is provided, the owner of it can validate the Experience.
* skills: Skills used for this experience.
* moreInfoLink: Link to an optional metadata. Typically this link will point to a JSON with different fields for any kind of metadata (Photos, Videos, Informative Fields, etc).

### Functions

**addExperience:** Adds a new experience.&#x20;

**updateExperience:** Updates an existing experience.&#x20;

**endExperience:** Ends an existing experience.

**deleteExperience:** Deletes an existing experience.

**updateExperienceValidation:** Validates an existing experience.

### Validation Rules

The are several rules that an Experience must follow to ensure a consistent state. This apply to addExperience, updateExperience and endExperience operation.

* User address must be different from address zero.
* Experience type must be 0 (Professional) or 1 (Educational)
* Role must not be empty.
* Must specify either a company name or a company address for non-freelance (one or another, not both).
* User address must be different from company Address.
* Freelance experience (No company name or company address) must not have endDate.
* StartDate must not be empty.
* EndDate must be greater than startDate.


# Work Record Smart Contract

This contract stores all the Services or Jobs of a Freelance Experience of the user .

#### Structure

```solidity
struct WorkRecord {
    uint256 workRecordId;
    uint256 experienceId;
    address user;
    string consumer;
    address consumerAddress;
    address platformAddress;
    string title;
    string description;
    string[] tags;
    uint256 startDate;
    uint256 endDate;
    string status;
    uint256 price;
    uint256 hoursWorked;
    uint16 calification;
    bool consumerValidation;
    string consumerComments;
    Skill[] skills;
    string moreInfoLinks;
}
struct Skill {
    string skill;
    uint8 level;    
}
```

Example

```json
{
  "workRecordId": 1,
  "experienceId": 1,
  "user": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
  "consumer": "",
  "consumerAddress": "0xea83c649dd49a6ec44c9e2943eb673a8fbb7bab6",
  "platformAddress": "0xaa9d8b1f9a2f9b0f9b2b0f9b0f9b0f9b0f9b0f9b",
  "title": "Web App",
  "description": "Web App for General Store",
  "tags": [
    "web",
    "app"
  ],
  "startDate": 1704078000,
  "endDate": 1717124400,
  "status": "Complete",
  "price": 12345,
  "hoursWorked": 100,
  "calification": 430,
  "consumerValidation": true,
  "consumerComments": "Great job!",
  "skills": [
    {
      "skill": "e-commerce",
      "level": 7
    },
    {
      "skill": "French",
      "level": 5
    }
  ],
  "moreInfoLink": "ipfs://ipfs.io/XXXXXXX"    
}
```

#### Field Semantics

* workRecordId: Work Record Identificator. This value is assigned correlatively by the Smart Contract.
* experienceId: Experience Identificator. The Experience must be freelancer.
* user: Address of the user. Owner of the record.
* consumer: Name of the consumer of the service. It's just descriptive, this Work Record cannot be verified if this field is used. Must be empty if a Consumer Address is provided.
* consumerAddress: Address of the consumer of the service. Must be provided by the consumer itself. The owner of this address can verify the Work Record. Could be empty if the consumer have no address (consumer field is used instead).
* platformAddress: Address of the platform that mediate in the service. Must be provided by the platform itself. If the service is done using a platform like Upwork or Fiverr, it's unlikely that the consumer could validate this service. But, in this case, is the platform itself who validate it.
* title: Title of the service.&#x20;
* description: Describe the service/job with more details.
* tags: Keywords that match with this service. They are just descriptive. It would be used to search and classificate the services.
* startDate: Date when the Work Record began. Store as Unix Timestamp (Seconds since Jan-01-1970). Mandatory field. Must be greater than the Experience startDate.
* endDate: Date when the Work Record ended. Store as Unix Timestamp (Seconds since Jan-01-1970).  Could be 0 if the Work Record has not ended yet. Must be greater than startDate.
* status: current Work Record Status (Pending - Completed - Cancelled).
* price: Amount charged in USD. Store as cents (1 USD = 100).&#x20;
* hoursWorked: Amount of hours used to complete the service.&#x20;
* calification: Consumer calification for the service. Store in basis points (1 = 100). Must be between 0 and 500 (0 - 5). Must be provided only when an endDate is provided.&#x20;
* consumerValidation: If a consumerAddress is provided, the owner of it can validate the Work Record.
* consumerComments: Consumer comments about the service. Must be provided only when an endDate is provided.&#x20;
* skills: Skills used for this Work Record.
* moreInfoLink: Link to an optional metadata. Typically this link will point to a JSON with different fields for any kind of metadata (Photos, Videos, Informative Fields, etc).

### Functions

**addWorkRecord:** Adds a new Work Record.

**updateWorkRecord:** Updates an existing Work Record.

**endWorkRecord:** Ends an existing Work Record.

**deleteWorkRecord:** Deletes an existing Work Record.

**updateWorkRecordValidation:** Validates an existing Work Record.

**cancelWorkRecord:** Cancels an existing Work Record.

### Validation Rules

The are several rules that a Work Record must follow to ensure a consistent state. This apply to addWorkRecord, updateWorkRecord and endWorkRecord operation.

* User address must match Experience user address.
* Experience must be freelance.
* Must specify either a consumer name or a consumer address (one or another, not both).
* User address must be different from consumer address and platform address.
* Title must not be empty.
* Description must not be empty.
* StartDate must not be empty.
* Work Record dates must be within the Experience dates.
* EndDate must be greater than startDate.
* Calification must not be greater than 500.


# API

## Overview

Prutopia developed an API for interacting with the blockchain in a programatically way, without any specific web3/blockchain knowledge.&#x20;

## Access

API has restricted access. Please [contact us](/other/faqs#contact) for more information.

## Reference

To see a complete reference, please visit <https://api-test.prutopia.io:3005/api>.


# FAQs

<details>

<summary>Why Should I Use Prutopia?</summary>

Prutopia builds the world's most efficient resume with Harvard-style structure, content optimized through our AI-based system validated by HR experts and data from top global companies. It is compatible with ATS filters and helps you get more interviews.

</details>

<details>

<summary>Can I Use It on Different Websites?</summary>

[Universal Easy Apply](https://chromewebstore.google.com/detail/universal-easy-apply-by-p/bhjdpebbjnpknfdhjlgfapeocdghapnd?pli=1) already allows you to apply to any job on the internet with our one-click extension. Additionally, you can share the link to your optimized profile on your social networks or with stakeholders to showcase your professional resume quickly and easily.

</details>

<details>

<summary>Why Is It Better Than Other Platforms?</summary>

Because a resume should be efficient, not just aesthetically pleasing. Most platforms offer pretty templates, but they don't focus on ensuring your resume passes the filters used by companies: today, only 25% of resumes succeed in ATS systems. Additionally, a recruiter spends between 5 and 7 seconds reviewing each resume. Prutopia builds a resume designed for both humans and automated systems, optimizing the content with industry-standard recruitment criteria and increasing your chances of being seen and selected.

</details>

<details>

<summary>Why Not Use ChatGPT, Gemini, or Any Other AI Directly to Create the Resume?</summary>

Large Language Models (LLMs) are powerful, but they are generalists and their responses depend on the data they have. At Prutopia, we have the fundamental concepts of what makes a good resume, constantly updated according to the practices of top global companies. We use LLMs to help you structure your resume following these specific logics, ensuring it is efficient for both automated systems and recruiters.

</details>

<details>

<summary>Why Use Blockchain Technology? What Does It Imply?</summary>

We use blockchain technology to ensure the immutability of your professional data, offering transparency, security, and full control over your profile. Blockchain works as a new layer of the internet that allows building trust protocols, creating a verifiable and reliable professional reputation that you can use safely across the entire digital ecosystem.

</details>

<details>

<summary>Are my work data public?</summary>

Just like on your profiles across various professional social networks or your own website, your work data will be visible to anyone who checks your profile, as it will be stored on the blockchain, which is an open, traceable, and immutable database with no single point of control. You will be able to add experiences, modify them, or delete them whenever you wish, and that will be visible on your Prutopia profile, while the historical record of your changes can be accessed by those with the technical knowledge to do so through the blockchain.

This is to provide greater authenticity to your counterpart and to save you technical complexity in the process.

</details>

<details>

<summary>Contact</summary>

* **Email:** <hello@prutopia.io>
* **X:** [**https://x.com/prutopia\_app**](https://x.com/prutopia_app)
* **WhatsApp Business**: [**https://wa.me/message/GWXP3VZSXCU3F1**](https://wa.me/message/GWXP3VZSXCU3F1)
* **LinkedIn:** [**https://www.linkedin.com/company/prutopia**](https://www.linkedin.com/company/prutopia)

</details>


# Tutorials

{% content-ref url="/pages/KxlYfyH9nQN7lu994r0V" %}
[Connect your profile with Fiverr](/other/tutorials/connect-your-profile-with-fiverr)
{% endcontent-ref %}

{% content-ref url="/pages/7tosprbuHKH5RX9zwkQ3" %}
[Connect your profile with Upwork](/other/tutorials/connect-your-profile-with-upwork)
{% endcontent-ref %}


# Connect your profile with Fiverr

The tutorial pertains to importing reputation from Fiverr into Hire Argentina.

### 1) Select *Add Experience* - *Link Services* - *Fiverr*

<figure><img src="/files/9Uj7Q9ytavWqAXcIYTsE" alt=""><figcaption><p>Steps on <a href="/pages/KxrwgiXf8TUdHqTUdTUZ">Hire Argentina</a></p></figcaption></figure>

### 2) Copy your user URL and paste it in the corresponding field

<div align="left"><figure><img src="/files/FBnnTPUDlyTAxF87VmYa" alt="" width="563"><figcaption><p>Copy...</p></figcaption></figure></div>

<div align="right"><figure><img src="/files/bkXRLo8t8lYnhKOS0vmO" alt="" width="314"><figcaption><p>...and paste</p></figcaption></figure></div>

### 3) Copy the unique code for your profile and paste it in the 'Description' field

<figure><img src="/files/Gya1Mk5w0UfoWur4UCR6" alt="" width="314"><figcaption><p>Copy...</p></figcaption></figure>

<figure><img src="/files/OU68cMRwpNwQH5Hrvj4g" alt=""><figcaption><p>and paste</p></figcaption></figure>

### 4) Your profile will be verified and your last 10 services will be imported ✅


# Connect your profile with Upwork

The tutorial pertains to importing reputation from Upwork into Hire Argentina.

### 1) Select *Add Experience* - *Link Services* - *Upwork*

<figure><img src="/files/OPoHs14QX59J0AWHYL2g" alt=""><figcaption></figcaption></figure>

### 2) Copy your user URL and paste it in the corresponding field

<figure><img src="/files/X0Ct9wLhfaQCxKeMdH4K" alt=""><figcaption></figcaption></figure>

### 3) Copy the unique code for your profile and paste it in the 'Description' field

<figure><img src="/files/im54i0uJpOiPtfwrE83O" alt="" width="480"><figcaption><p>Copy...</p></figcaption></figure>

<figure><img src="/files/ZyUSL89OmPqkYvFsOjIE" alt=""><figcaption><p>...and paste</p></figcaption></figure>

### 4) Your profile will be verified and your last 10 services will be imported ✅


