Payment links for freelancers – get paid in crypto from any chain.
Paymee Web3 lets any freelancer generate a shareable link their clients can pay with—no matter which blockchain or token the client prefers. Under the hood we combine three battle-tested primitives:
- Privy – password-less onboarding and embedded, hardware-secured wallets.
- LayerZero V2 – omnichain messaging so payments can arrive from any EVM/L2/Solana/… chain and settle in the freelancer’s wallet.
- World ID – proof-of-personhood ("one human, one account") to curb fraud and sybil attacks.
- Hardhat – For compilation purposes.
The result is a friction-less payment UX for both sides:
• Clients can pay with the wallet & chain they already use.
• Freelancers receive funds directly, self-custodially, with zero bridge setup.
graph TD
subgraph "Frontend (packages/site)"
A[Next.js - React 19] --> B(Privy SDK)
A --> C(World ID Widget)
A --> D(Payment Link Page)
end
subgraph "Contracts (packages/blockchain)"
E[PaymeeRouter.sol] -->|lzSend| F[LayerZero Endpoint]
end
B --> G["User Wallet (Privy)"]
C --> H["World ID Proof"]
F --> I["Destination Chain(s)"]
I --> G
Flow: a verified freelancer mints a payment link. When a client pays, the Paymee Router contract forwards the payment across chains via LayerZero, crediting the freelancer’s Privy wallet.
• Next.js 15 (App Router + Turbopack)
• TypeScript & React 19
• Tailwind CSS 4
• Privy JS & embedded wallets
• LayerZero V2 SDK / OApp contracts
• Hardhat 2.25 + Viem toolbox
• World ID JS Widget
• Turbo Repo + pnpm workspace
# Node 20 + pnpm 10 recommended
brew install fnm && fnm install 20
npm i -g pnpm@10git clone https://github.com/your-org/paymee-web3.git
cd paymee-web3
pnpm install
# copy environment variables
cp .env.example .envOpen .env and add the following keys (you’ll get them from the respective dashboards):
PRIVY_APP_ID=
WORLD_ID_APP_ID=
LZ_ENDPOINT_ID_MAINNET=
LZ_ENDPOINT_ID_TESTNET=# all packages via turborepo
pnpm devThe Next.js app will be accessible at http://localhost:3000.
pnpm build # runs `turbo build`.
├── packages
│ ├── site # Next.js frontend
│ └── blockchain # Solidity/Hardhat contracts (LayerZero OApp)
├── turbo.json # Turborepo pipeline
└── pnpm-workspace.yaml
At the repo root:
| Script | Description |
|---|---|
pnpm dev |
Runs turbo dev – starts next dev & contract watchers |
pnpm build |
Production builds for all packages |
pnpm lint |
Eslint across workspace |
pnpm format |
Prettier write check |
Each package also exposes its own scripts (see their package.json).
- Fork & clone the repo.
- Create a new branch:
git checkout -b feat/your-feature. - Follow the commit convention:
feat(component): add cool thing. - Ensure
pnpm lint&pnpm testpass. - Open a PR — we squash & merge.
All contributions ‑ code, docs, ideas ‑ are welcome! ⭐️
MIT © 2025 Paymee.