WorkProof is a Web3-powered ERP module built on Arbitrum One that transforms professional credentials into verifiable on-chain assets. It enables talent to mint Soulbound Tokens (SBTs) as immutable proof of their work experience, monetize their profiles through paid access passes with automatic royalties, and execute freelance service contracts with full payment guarantees via on-chain escrow. Built with Rust, Vue 3, and Solidity, it connects talent, companies, and validators in a trustless ecosystem where reputation has real economic value.
# Complete Project Report: ERP Platform + WorkProof
## 1. Overview
**ERP Platform** is a modular enterprise suite built with **Rust** (backend) and **Vue 3** (frontend), whose core module is **WorkProof** — a B2B solution for the **tokenization of professional credentials** and **hiring professional services with payment and delivery guarantees** on **Arbitrum One** (Ethereum Layer 2).
> **Mission:** Build the complete ecosystem where professionals tokenize their credentials, companies hire verified talent, and both parties can execute service contracts with funds protected in escrow — all on-chain, transparent, and with real economic guarantees.
## 2. The 3 Pillars of the Ecosystem
### Pillar 1: Verifiable Credentials (TalentSBT)
Soulbound Tokens (non-transferable) representing verified professional experience. A validator reviews the evidence and, upon approval, mints an SBT to the talent's wallet. It is their **immutable on-chain CV**.
### Pillar 2: Profile Monetization (TalentAccessPass)
Companies pay in USDC to unlock full profiles. Talent receives **automatic royalties** for each access sold. This is the economic model that turns reputation into passive income.
### Pillar 3: Guaranteed Hiring (FreelanceEscrow)
The key differentiator: **professional service contracts with on-chain escrow**. Funds are locked in the smart contract until both parties confirm delivery. This solves the historic trust problem between freelancers and clients.
## 3. FreelanceEscrow — Detailed Economic Model
The `FreelanceEscrow.sol` contract (546 lines) implements a complete guaranteed hiring system:
### Gig Flow
```
1. CREATION → Validator creates gig, client deposits signal (e.g. 50%)
2. ACCEPTANCE → Freelancer accepts the gig
3. FUNDING → Client deposits the remainder before the event
4. EXECUTION → Service is performed
5. APPROVAL → Dual approval (client + freelancer)
6. RELEASE → Funds are automatically released to the freelancer
```
### Protection Mechanisms
| Mechanism | Protects | Description |
|---|---|---|
| **USDC Escrow** | Both | Funds locked in contract, no one can touch them unilaterally |
| **Signal/Deposit** | Freelancer | Client pays a % upfront as commitment |
| **Dual Approval** | Both | Both parties must confirm the service was completed |
| **Auto-release (24h)** | Freelancer | If client doesn't respond after the event, funds are released automatically |
| **Dispute Resolution** | Both | An arbiter (validator) splits funds according to their judgment |
### Cancellation Policy (protects the freelancer)
| Time before event | Client refund | Freelancer payment |
|---|---|---|
| **>30 days** | Remainder returned, signal to freelancer | Receives signal as compensation |
| **15-30 days** | 50% of total | 50% of total |
| **<15 days** | 0% — no refund | 100% of total |
### Protocol Economics- **Platform fee:** 5% (500 basis points) on every payment to the freelancer- **Payments in:** USDC (stablecoin) on Arbitrum- **Treasury:** Configurable address that receives commissions
### On-Chain Contract Roles- **OPERATOR_ROLE:** Can execute auto-release
- **ARBITER_ROLE:** Resolves disputes by splitting funds- **VALIDATOR_ROLE:** Creates gigs as intermediary between client and freelancer
## 4. Technical Architecture
| Layer | Technology |
|---|---|
| **Backend** | Rust + Axum, SQLx (PostgreSQL), Redis, JWT (Argon2) |
| **Frontend** | Vue 3 + Vite, TypeScript, TailwindCSS, Pinia, Vue Router |
| **Blockchain** | Solidity (Hardhat), Arbitrum One, ethers.js, OpenZeppelin |
| **Infrastructure** | Docker Compose, Makefile, OpenAPI/Swagger |
### Project Structure
```
erp-platform/
├── backend/ → Rust API (Axum + SQLx + Redis)
│ ├── src/modules/ → auth, admin, dashboard, workproof, test
│ └── migrations/ → 9 SQL migrations
├── frontend/ → Vue 3 SPA (Vite + TypeScript)
│ ├── src/views/ → auth, dashboard, admin, workproof, company
│ ├── src/stores/ → auth, dashboard, talent, validator, web3, theme
│ └── src/contracts/ → ABIs + accessors for 3 smart contracts
├── blockchain/ → Solidity Smart Contracts (Hardhat)
│ └── contracts/ → 7 contracts + mocks
└── docs/ → Specifications and design proposals
```
### Smart Contracts
| Contract | Lines | Function |
|---|---|---|
| **TalentSBT.sol** | ~300 | Soulbound Credentials: submit, approve, reject, mint, revoke, burn |
| **TalentAccessPass.sol** | ~220 | Profile access NFTs with automatic royalties |
| **FreelanceEscrow.sol** | 546 | Full escrow: deposit, funding, dual approval, auto-release, tiered cancellation, disputes |
| **WorkProof.sol** | ~120 | Base contract for work proof tokenization |
| **WorkProofService.sol** | ~470 | Auxiliary service for WorkProof operations |
| **JobAccessPass.sol** | ~210 | Job vacancy access management |
| **JobService.sol** | ~470 | Employment services |
## 5. System Roles (RBAC)
| Role | Description | Key Permissions |
|---|---|---|
| **Talent** | Professionals who tokenize credentials and offer services | Request SBTs, create Access Pass, participate in escrow gigs, collect royalties |
| **Validator** | Reviewers and arbiters of the ecosystem | Approve/reject credentials, create gigs, resolve disputes, manage escrow |
| **Company** | Companies that hire verified talent | Search talent, purchase profile access, create gigs as clients |
| **Admin** | Full protocol governance | Everything + burn/revoke SBTs, configure fees, manage roles, audit |
## 6. Functional Panels
### 6.1 Talent Dashboard — "Career Control Center"
- **Credentials:** NFT gallery of on-chain verified SBTs
- **Requests:** Request verification + evidence upload (JPG, PNG, PDF with drag-drop)
- **Access Pass:** Create monetizable profile, collect royalties in USDC
- **Escrow Gigs:** Accept gigs, approve completion, open disputes — with payment guarantee
### 6.2 Validator Dashboard — "Operations Hub"
- **Pending Requests:** Queue of credentials to verify
- **Review History:** Decision history
- **Escrow Gigs:** Monitor all gigs, resolve disputes with fund splitting
- **Create Gig:** Create gigs as intermediary between client and freelancer
### 6.3 Company Dashboard — "Verified Talent Acquisition Center"
- **Talent Marketplace:** Search by verified skills and reputation level
- **Unlocked Profiles:** Profiles unlocked with paid access
- **Corporate Issuance:** Institutional credential issuance
### 6.4 Admin Panel — "Protocol Control Tower"
- **On-Chain Parameters:** Fees and treasury
- **Verification Queue:** Entity moderation
- **Dispute Center:** Ecosystem conflicts
- **SBT Management:** Lookup, revoke and burn credentials
- **Network Health:** Gas, latency, blocks
- **Global Notifications:** System alert engine
## 7. Backend — Modules and Endpoints
### Auth Module
- `POST /auth/login` — JWT login
- `POST /auth/register` — Registration
- `POST /auth/refresh` — Refresh token
- `POST /auth/logout` — Logout
- `GET /auth/me` — Current user
### Admin Module
- `GET /admin/system` — System info
- `GET /admin/users` — User list
- `POST /admin/roles/assign` — Assign role to user
- `POST /admin/roles/remove` — Remove role from user
### WorkProof Module
- `POST /workproof/create` — Create workproof
- `GET /workproof/summary` — Workproof summary
- `GET /workproof/stats` — Statistics
- `POST /workproof/purchase-access` — Purchase access
- `POST /workproof/evidence/upload` — Evidence file upload (multipart, JPG/PNG/PDF, max 10MB, SHA-256 checksum)
### Dashboard Module
- `GET /dashboard/stats` — Statistics
- `GET /dashboard/widgets` — User widgets
- `POST /dashboard/widgets` — Create widget
## 8. Database (PostgreSQL)
| Table | Purpose |
|---|---|
| **users** | Users with roles, permissions (JSONB), wallet_address |
| **widgets** | Configurable dashboard widgets |
| **notifications** | Notification system |
| **test_items** | Test module items |
| **workproofs** | Tokenized work proofs |
| **workproof_access** | Purchased access records |
| **evidence_files** | Uploaded evidence files (filename, path, mime, size, checksum) |
## 9. End-to-End Usage Flow
```
TALENT VALIDATOR COMPANY
│ │ │
├─ Uploads CV + evidence ──►│ │
│ ├─ Reviews and approves ──►│
│◄─ SBT minted to wallet ──┤ │
│ │ │
├─ Creates Access Pass ────►│ │
│ (price: 50 USDC) │ │
│ │ ├─ Searches verified talent
│ │ ├─ Pays 50 USDC for access
│◄─ Receives royalties ────┤ │◄─ Unlocks full profile
│ │ │
│ ═══ GUARANTEED HIRING (ESCROW) ═══ │
│ │ │
│ ├─ Creates gig (mediator) │
│ │ Client deposits signal │◄─ Deposits 50% signal
│◄─ Accepts the gig ───────┤ │
│ │ ├─ Deposits remainder (100%)
│ │ │
│ ══ SERVICE EXECUTED ════ │ │
│ │ │
│◄─ Approves completion ───►│ ├─ Approves completion
│ │ │
│◄─ FUNDS RELEASED ────────┤──── 5% fee to treasury ─►│
│ (95% to freelancer) │ │
```
## 10. Security
- **Authentication:** JWT with refresh tokens + Argon2 password hashing
- **RBAC:** Granular roles and permissions embedded in JWT claims
- **Blockchain:** Role-specific permissions for on-chain operations
- **File Upload:** Type/size validation, SHA-256 checksum, secure disk storage
- **Protections:** CORS, rate limiting, SQL injection prevention (SQLx), XSS headers
- **Privacy:** No PII on-chain; only IPFS/Arweave hashes of encrypted blobs
## 11. Internationalization (i18n)
The system supports **3 complete languages**:
- **English** (en)
- **Spanish** (es)
- **Brazilian Portuguese** (pt-BR)
All views, labels, error messages, and transaction states are translated.
## 12. Project Objectives
### Main Objective
Build a **complete Web3 ecosystem** where professional reputation becomes a verifiable digital asset, and service hiring is executed with **real economic guarantees** through smart contracts on Arbitrum.
### Specific Objectives
1. **For Talent:** Own their credentials as digital assets (SBTs), monetize their profile with royalties, and receive guaranteed payments for professional services through escrow
2. **For Companies:** Hire on-chain verified talent with delivery guarantee — if the service isn't completed, funds are protected with cancellation policies and dispute resolution
3. **For Validators:** Act as trusted arbiters of the ecosystem — verify credentials, create gigs as intermediaries, and resolve disputes with authority
4. **For the Protocol:** Generate sustainable revenue (5% fee per escrow transaction + profile access fees) with full administrative governance
5. **Technically:** Modular, secure, and scalable architecture on Arbitrum (L2) for low costs and fast confirmations
### Problems Solved
| Current Problem | WorkProof Solution |
|---|---|
| Falsified CVs | On-chain verified credentials (immutable SBTs) |
| Freelancer doesn't get paid | Escrow with locked funds + auto-release |
| Client doesn't receive the service | Tiered cancellation policy + arbiter disputes |
| Expensive intermediaries | Smart contracts eliminate middlemen, transparent 5% fee |
| Centralized professional data | Self-sovereign identity — talent owns their data |
| No incentive to verify | Automatic royalties for every access sold |
DEMO USERS
Username: admin_demo | Password: demo1234
Username: validator_demo | Password: demo1234
Username: talent_demo | Password: demo1234
Username: company_demo | Password: demo1234