Secure, transparent freelance payments on Cardano (preprod) with an escrow smart contract (Aiken), Mesh-powered React frontend, and Express/JavaScript backend. Designed to run on low-spec machines (no Tailwind, minimal deps).
- Frontend: Vite + React + Mesh SDK (CIP-30), CSS modules.
- Backend: Node + Express + JavaScript (ESM), MongoDB, Blockfrost.
- Smart contracts: Aiken validator (escrow) with inline datum; optional minting policy.
- Aiken (required):
iwr https://get.aiken-lang.org | iex(Windows) orcurl -sSf https://get.aiken-lang.org | sh(macOS/Linux) - Node.js >= 18.0.0
- MongoDB (local or Atlas)
- Cardano CLI (optional - only for advanced debugging)
See docs/SETUP.md for detailed installation instructions.
- Install dependencies:
npm run install:all - Copy
ENV.exampletobackend/.envandfrontend/.env, fill in values - Get Blockfrost API key from https://blockfrost.io/
- Build contract:
cd contracts && aiken build && aiken address(copy address to backend) - Start backend:
cd backend && npm run dev - Start frontend:
cd frontend && npm run dev
frontend/SPA (wallet connect, deposits, approvals, disputes).backend/API + chain verifier + reconcile jobs.contracts/Aiken sources and build artifacts.docs/architecture and API references.scripts/helper scripts (seeding, contract build).
- Client posts job and creates contract with milestones.
- Client funds escrow (Mesh payToContract) using returned datum/address.
- Freelancer submits deliverables; client approves milestone (redeemer Approve).
- Payout sent to freelancer; platform fee routed to fee address.
- Dispute/refund paths via dedicated redeemers and admin arbitration.
- Target network: Cardano preprod via Blockfrost.
- Wallets: Nami / Eternl / Lace (CIP-30).
- Collateral: ensure a 5 ADA collateral UTxO is available for Plutus spends.
- Security: no private keys ever stored; signatures stay client-side.