You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Star0 (0)You must be signed in to star a repository
About
At Zentrix we believe in transpency and security of disclosure agreements with freelance marketplace, our ai agents and contracts keeps your contract secure and ensures the work is to be done within milestone basis. Freelancers will be paid as per milestone they achieved throughout the project.
Zentrix is a decentralized, freelance marketplace built to solve the universal freelance trust dilemma. On Web2 platforms (like Upwork or Fiverr), payments and accounts are subjected to arbitrary holds, high 10–20% rake fees, and opaque dispute processes.
Zentrix anchors money, milestones, agreements, and professional reputation directly on the MST Blockchain, combined with Sarvam AI (30B) for privacy-preserving talent discovery.
The Zentrix Advantage
Zero Platform Commission (0%): Value flows directly between client and freelancer without middleman extraction.
Autonomous Milestone Escrow: Client funds 100% upfront in tMSTC. Funds are locked non-custodially in smart contracts.
72-Hour Auto-Release Guarantee: Eliminates client ghosting. If a client goes unresponsive after milestone delivery, the smart contract unlocks funds automatically to the freelancer.
Soulbound Credentials (ERC-721): Completing milestones mints permanent, non-transferable on-chain credentials. Reputation cannot be purchased, transferred, or deleted by a centralized company.
Private AI Matchmaking: Server-side Sarvam 30B LLM matches requirements with verified talent while guaranteeing zero Personally Identifiable Information (PII) leakage.
Upfront Full Funding: Clients deposit the entire project budget in tMSTC upon contract creation.
Pull Payments: Freelancers withdraw approved funds on their own terms via the Checks-Effects-Interactions pattern, preventing reentrancy and DOS attacks.
Negotiated Deadlines: Freelancer and client can mutually propose and accept deadline extensions on-chain.
Fair Arbiter Dispute Path: If a milestone submission is rejected and disputed, an designated arbiter can fairly split or allocate remaining milestone funds.
Strict Theme Token Enforcement: Powered by src/styles/tokens.css. Zero raw hex values in components:
Primary Red: #D84040 (--zx-primary)
Deep Red: #A31D1D (--zx-primary-deep)
Warm Cream: #ECDCBF (--zx-cream)
Dark Ink: #2A0F0F (--zx-ink)
Soft Surface: #F7EFDF (--zx-surface)
Live On-Chain Data: Dashboard, Pricing, and Marketplace query live contract methods (withdrawable(), tierPrices(), tierOf(), balanceOf()) rather than rendering placeholder mocks.
🧩 Smart Contract Reference
All contracts are written in Solidity ^0.8.20, use OpenZeppelin v5, and are deployed exclusively on MST Blockchain Testnet (Chain ID 91562037). No mainnet deployments exist. Source: contracts/contracts/
Trust-minimized, multi-milestone project escrow. Client funds are locked non-custodially on gig creation; freelancer payments are released per-milestone via pull-payment withdrawal, preventing reentrancy and DOS.
Strictly non-transferable (Soulbound) ERC-721 credential tokens minted by ZentrixEscrow on final milestone approval. Any transfer attempt is reverted at the _update hook level.
Tiered soulbound ERC-721 subscription NFTs gating daily AI query quotas in the Sarvam 30B agent. Passes expire after 30 days; excess payment is automatically refunded.
Access Roles
Role
Constant
Purpose
DEFAULT_ADMIN_ROLE
—
Update tier pricing, withdraw fees
PAUSER_ROLE
keccak256("PAUSER_ROLE")
Emergency pause / unpause
Constants & Tier Pricing (Testnet)
Constant
Value
Description
PASS_DURATION
30 days
Subscription validity after purchase
Tier
Label
Price
Daily AI Queries
0
Free
Free (no NFT required)
2 / day
1
PRO
5 tMSTC
10 / day
2
Enterprise
15 tMSTC
15 / day
Prices live in tierPrices[tier] and are updatable by admin.
Active pass per wallet (overwritten on renewal/upgrade)
tierPrices
mapping(uint8 => uint256)
Price in wei per tier
Functions
Function
Visibility
Modifier(s)
Description
buy(tier)
external payable
whenNotPaused, nonReentrant
Purchases 30-day pass for tier 1 or 2. Mints ERC-721, records PassData, auto-refunds excess. Emits PassPurchased.
tierOf(account)
external view
—
Returns active tier (0 if no pass or expired). Used by agent engine for quota enforcement.
getPass(account)
external view
—
Returns (tier, expiresAt, tokenId).
setPrice(tier, priceWei)
external
DEFAULT_ADMIN_ROLE
Updates tier price. Emits PriceUpdated.
withdrawFees()
external
DEFAULT_ADMIN_ROLE, nonReentrant
Admin withdraws accumulated pass purchase fees.
pause() / unpause()
external
PAUSER_ROLE
Emergency circuit breaker.
_update(to, tokenId, auth)
internal override
whenNotPaused
Soulbound enforcement: reverts transfers between non-zero addresses.
Events
Event
Parameters
Emitted When
PassPurchased
buyer, tokenId, tier, expiresAt
New pass subscription minted
PriceUpdated
tier, newPrice
Admin updates a tier's price
Reverts
Condition
Behaviour
tier != 1 && tier != 2
Reverts with "ZentrixPass: invalid tier"
msg.value < tierPrices[tier]
Reverts with "ZentrixPass: insufficient payment"
Excess refund call fails
Reverts with "ZentrixPass: excess refund failed"
withdrawFees() on zero balance
Reverts with "ZentrixPass: zero balance"
Transfer between non-zero addresses
_update reverts with "ZentrixPass: soulbound, non-transferable"
Test Suite Results
bun x hardhat test
ZentrixEscrow & ZentrixReputation
Gig Creation & Funding
✔ should allow a client to create a gig with a valid plan
✔ should revert funding if msg.value does not equal sum(plan)
Lifecycle: Acceptance, Submission, Approval, Withdrawal
✔ should complete golden path: accept -> submit -> approve -> withdraw
✔ should allow client to cancel unaccepted gig after 48 hours
Dispute Resolution & Auto-Release
✔ should auto-release milestone funds after reviewWindow expires
✔ should handle reject -> dispute -> arbiter split correctly
Deadline Negotiation
✔ should require proposal and mutual acceptance for deadline extension
Soulbound Tokens: Transfer Reversion
✔ should revert any transfer of Reputation NFT between users
ZentrixPass
✔ should have correct initial tier prices
✔ should allow purchasing Pro Pass (Tier 1) and report tier 1
✔ should refund excess payment when buying a pass
✔ should expire after 30 days and return tier 0
✔ should revert transfer between accounts (soulbound)
✔ should allow admin to update tier price
✔ should allow admin to withdraw accumulated fees
15 passing (986ms)
🤖 Sarvam AI Integration
Sarvam AI (sarvam-30b) powers the intelligent matchmaking features:
Server-Side Exclusivity: The browser never directly contacts the AI provider or exposes keys.
Tool Calling: The model invokes specialized tools (search_gigs, search_freelancers) through the Bun server.
Quota & Tier Metering: Each query consumes daily credits associated with the wallet's ZentrixPass tier. Daily quotas reset at IST midnight (18:30 UTC).
🧭 Navigation & Wireframe Specification
Logo: Direct link to Home.
Home (/): Hero headline, animated live metrics, core pillars, and golden path walkthrough.
About (/about): Technical architecture bento grid, live network parameters, contract cards with copyable addresses.
Products:
Marketplace (/marketplace): Filter by tags (Web3, AI, Smart Contracts), search gigs, post custom milestone gig, apply with proposal.
AI Agents (/agent): Chat bubble interface with suggestions, loading dots, and server-side Sarvam 30B streaming.
Monitor:
Pricing (/pricing): ZentrixPass tiers, live tierPrices() on-chain prices, and instant minting.
The repository includes an automated verification gate script (scripts/gate.sh) that validates contract safety, secret hygiene, token styling, and live testnet proof:
bash scripts/gate.sh web — Executes TypeScript typecheck and production Vite build.
bash scripts/gate.sh secrets — Scans for leaked private keys, API tokens, and credentials.
bash scripts/gate.sh theme — Verifies zero raw hex color strings exist outside tokens.css.
bash scripts/gate.sh proof — Confirms deployed contracts and proof transactions on MSTScan.
🛡️ Security & Compliance
No Secrets in Code: Secrets are strictly prohibited from commits and logs.
Testnet-Only Scope: Hard-gated to Chain ID 91562037. Mainnet transactions and private networks are rejected.
Reentrancy Protection: All value-transferring methods in ZentrixEscrow utilize OpenZeppelin ReentrancyGuard and pull-payment withdrawal patterns.
Arbiter Transparency: For hackathon evaluation, the deployer wallet acts as the dispute arbiter. Mainnet roadmap targets decentralized Kleros/Aragon-style community juries.
📄 License
This project is open-source and licensed under the MIT License. See the LICENSE file for complete terms.
MIT License
Copyright (c) 2026 Zentrix Contributors
About
At Zentrix we believe in transpency and security of disclosure agreements with freelance marketplace, our ai agents and contracts keeps your contract secure and ensures the work is to be done within milestone basis. Freelancers will be paid as per milestone they achieved throughout the project.