0% found this document useful (0 votes)
7 views8 pages

SRS Document

SoulPort is a decentralized protocol on Base that allows users to manage their professional reputation through on-chain records and Soulbound Tokens. The MVP includes features like user onboarding, credential import, reputation scoring, and decentralized escrow for freelance transactions. The project aims to provide a portable 'living resume' for freelancers, students, and creators while ensuring security and usability.

Uploaded by

melestically
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views8 pages

SRS Document

SoulPort is a decentralized protocol on Base that allows users to manage their professional reputation through on-chain records and Soulbound Tokens. The MVP includes features like user onboarding, credential import, reputation scoring, and decentralized escrow for freelance transactions. The project aims to provide a portable 'living resume' for freelancers, students, and creators while ensuring security and usability.

Uploaded by

melestically
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

### 1.

Introduction

#### 1.1 Purpose

SoulPort is a decentralized protocol on Base (Ethereum L2) that enables users to own, verify, and
monetize their professional reputation portably. It addresses centralized platform lock-in (LinkedIn,
Upwork) by creating immutable on-chain records of skills, reviews, credentials, and work history via
Soulbound Tokens (SBTs) and Ethereum Attestation Service (EAS).

The system targets freelancers, students, and creators, providing:

- Portable "living resume" via on-chain badges.

- Trustless freelance transactions (escrow + arbitration).

- Sybil-resistant reputation scoring.

This SRS defines requirements for an MVP suitable for Base Batches 003 Student Track submission (by
April 27, 2026).

#### 1.2 Scope

**In Scope (MVP)**:

- User onboarding with Coinbase Smart Wallet.

- On-chain attestations/reviews via EAS.

- SBT minting for credentials/reviews.

- Basic reputation scoring.

- Decentralized escrow for jobs (USDC).

- Dispute resolution stub (Kleros integration plan).

- Web2 credential import: Education/certificates (Reclaim/ZK-Email) + manual LinkedIn/Upwork upload


(parse JSON/screenshots for self-attestation).

- Visual resume UI showing badges + scores.


- Hybrid storage (on-chain proofs + IPFS/Ceramic off-chain details).

**Out of Scope (Post-MVP/Phased)**:

- Full automated LinkedIn profile import (limited by platform restrictions; selective proofs possible later).

- Full Upwork review/history automation (manual/self-attest only).

- Advanced AI curation or paid boosts.

- Mobile app (web-first).

#### 1.3 Definitions, Acronyms, Abbreviations

- SBT: Soulbound Token (non-transferable NFT for identity/credentials).

- EAS: Ethereum Attestation Service.

- ZKP: Zero-Knowledge Proof.

- Reclaim: Protocol for HTTP session-based ZK proofs from Web2 sites.

- Kleros: Decentralized arbitration.

- Base: Coinbase's OP Stack L2.

#### 1.4 References

- Base Docs: [Link]

- EAS Docs: [Link]

- Reclaim Docs: [Link] (supports employment/education; 2500+ providers,


strong on universities/payroll).

- Kleros Docs: [Link]

- Vitalik's DeSoc paper (2022).

#### 1.5 Overview


SRS organized as: Functional Requirements → Non-Functional → Project Structure →
Assumptions/Constraints → Risks.

### 2. Overall Description

#### 2.1 Product Perspective

SoulPort builds on Base's low-cost ecosystem to create a "Soulbound Economy" layer. It differentiates
from Talent Protocol (dev-focused quantitative) and Nomis (wallet scoring) by emphasizing **qualitative
peer feedback** + full freelance tooling.

#### 2.2 Product Functions

High-level user stories:

- As a freelancer/student, I can import education creds → mint on-chain badge.

- As a client, I can post job → escrow funds → attest review upon completion.

- As a user, I can view my portable on-chain resume.

- As either party, I can initiate dispute if needed.

#### 2.3 User Classes & Characteristics

- Freelancers/Students: Undergrads, creators; need easy onboarding, visual profiles.

- Clients: Businesses/DeFi projects; need trust signals (reputation scores).

- All: Web3 users with wallets; assume basic crypto familiarity.

#### 2.4 Operating Environment

- Blockchain: Base Mainnet/Sepolia.

- Frontend: Browser (desktop/mobile responsive).

- Wallets: Coinbase Smart Wallet primary.

- Backend: Minimal ([Link] for off-chain indexing if needed).


#### 2.5 Design & Implementation Constraints

- Solidity ^0.8.20 + Foundry for contracts.

- React + Wagmi/Viem for frontend.

- EAS schemas registered on Base.

- Gas optimization mandatory (uint8 fields, etc.).

### 3. Functional Requirements

#### 3.1 User Onboarding & Wallet

- FR1.1: User connects via Coinbase Smart Wallet (passkey support).

- FR1.2: Generate/view wallet-linked profile (ENS or address-based).

#### 3.2 Credential Import & Verification (Cold Start)

- FR2.1: Import education/course completion via Reclaim Protocol (e.g., university portal,
Coursera/Udemy if supported; prove enrollment/certificate).

- FR2.2: Import email-based creds (degree/cert) via ZK-Email (prove DKIM-signed email content).

- FR2.3: Manual LinkedIn/Upwork import: Upload archive/JSON/screenshots → self-attest basic info


(experience, skills) → issue self-signed EAS attestation (flagged as self-attested).

- FR2.4: On successful proof, mint SBT badge with metadata (issuer, timestamp, URI).

#### 3.3 Reputation & Attestations

- FR3.1: Define EAS schema: Professional Review (recipient: address, skillCategory: uint8, rating: uint8,
projectURI: string, timestamp: uint64).

- FR3.2: Client issues attestation after job (on-chain or off-chain + Merkle root).

- FR3.3: Mint SBT for significant creds (e.g., high-rating review, hackathon win).
- FR3.4: Compute reputation score on-chain/off-chain: Weighted sum S_u = Σ(R_i × W_client,i) + Σ(C_j ×
W_course,j) (W based on issuer reputation/humanity check).

#### 3.4 Freelance Workflow

- FR4.1: Post job (description, skill req, payment in USDC).

- FR4.2: Accept job → lock funds in escrow contract.

- FR4.3: On completion: Client confirms → release funds + issue attestation/SBT.

- FR4.4: Dispute flow: Initiate Kleros arbitration (stub for MVP: log dispute; full integration post-MVP).

#### 3.5 UI & Viewing

- FR5.1: Visual resume dashboard: Grid of badges (click → show EAS proof/Basescan link).

- FR5.2: Search/browse users by skill/reputation score.

### 4. Non-Functional Requirements

#### 4.1 Performance

- NFR1: Attestation issuance < 10 seconds (Base tx speed).

- NFR2: Page load < 3 seconds; resume render < 2 seconds.

- NFR3: Gas per attestation/review < 100k (optimize data types).

#### 4.2 Security

- NFR4: Non-transferable SBTs (override transfer functions).

- NFR5: Use audited libs (OpenZeppelin).

- NFR6: ZK proofs ensure no credential exposure.

- NFR7: Sybil resistance: Weight reviews by issuer reputation; optional Coinbase Verified check.
#### 4.3 Usability

- NFR8: Intuitive UI (professional LinkedIn-like design).

- NFR9: Mobile-responsive.

- NFR10: No seed phrase exposure (passkey onboarding).

#### 4.4 Reliability & Availability

- NFR11: On-chain data immutable (Base finality).

- NFR12: Off-chain storage (IPFS/Ceramic) with on-chain anchors.

#### 4.5 Maintainability

- NFR13: Open-source contracts + frontend (MIT license).

- NFR14: Modular code (separate contracts for escrow, SBT, scoring).

#### 4.6 Scalability

- NFR15: Support 1,000+ attestations/month (Base throughput).

### 5. Project Structure (Recommended Repo Layout)

```

soulport/

├── contracts/ # Foundry project

│ ├── src/

│ │ ├── [Link] # Non-transferable ERC721

│ │ ├── [Link] # Scoring logic

│ │ ├── [Link] # USDC escrow


│ │ └── schemas/ # EAS schema definitions/scripts

│ ├── test/ # Foundry tests

│ ├── script/ # Deployment scripts

│ └── [Link]

├── frontend/ # React + Vite

│ ├── src/

│ │ ├── components/ # Badge, ResumeGrid, JobCard, etc.

│ │ ├── pages/ # Profile, Jobs, Import, Dashboard

│ │ ├── hooks/ # useAttest, useReclaim, useWallet

│ │ ├── services/ # EAS SDK, Reclaim SDK calls

│ │ └── [Link]

│ ├── public/

│ └── [Link]

├── backend/ # Optional Node/Express (off-chain helpers)

│ ├── src/

│ │ └── [Link] # API for IPFS pinning, attestation indexing

│ └── [Link]

├── docs/ # SRS, pitch deck, diagrams

├── [Link]

├── .gitignore

└── [Link] # Optional for local dev

```

- Use monorepo (Turborepo/Pnpm workspaces) if team grows.

- Deploy contracts via Foundry script to Base Sepolia → verify on Basescan.


### 6. Assumptions & Dependencies

- User has Base-compatible wallet + USDC.

- Reclaim supports target education providers (universities strong; Coursera/Udemy partial).

- LinkedIn/Upwork: Manual import only for MVP.

- Kleros: Full integration requires PNK staking; MVP uses event emission for disputes.

### 7. Risks & Mitigations

- Risk: Reclaim limitations on LinkedIn/Upwork → Mitigation: Prioritize education + manual; demo as


phased feature.

- Risk: Gas costs spike → Mitigation: Optimize + test on Sepolia.

- Risk: Security bugs → Mitigation: Foundry fuzz + Slither; plan post-grant audit.

You might also like