How Vendra works
A Web3-native peer-to-peer marketplace on Arc. Every order is protected by real on-chain USDC escrow, commission is 0%, and you can use it with a crypto wallet or just an email.
Escrow is the product
On most marketplaces you trust a company to hold your money and resolve disputes, and you pay 5โ15% commission for it. On Vendra, an Arc smart contract holds the money instead. When a buyer pays, their USDC is locked in escrow โ not sent to the seller, not held by Vendra. It is released only when the buyer confirms delivery, auto-releases after a safety window, or is settled by a neutral arbiter if there is a dispute. Vendra never takes a cut of the trade.
How escrow works
Every order moves through a clear on-chain lifecycle:
- Funded โ the buyer's USDC is locked in the escrow contract.
- Shipped โ the seller marks the item shipped.
- Released โ the buyer confirms receipt and funds go to the seller. If the buyer takes no action, funds auto-release after a 7-day confirmation window (a safety net, not a hold on confirmed orders).
- Refunded โ if a dispute is resolved in the buyer's favor.
Two protections sit alongside the happy path: reclaim (if the seller never ships, the buyer can reclaim after the 5-day ship deadline) and dispute (either party can freeze the funds for an arbiter to settle).
Buying
- Log in โ connect any EVM wallet, or sign in with your email to get a Circle USDC wallet.
- Fund your wallet with testnet USDC from the faucet.
- Check out โ your USDC is locked in escrow on Arc.
- When your item arrives, open your order and confirm receipt to release payment.
- If something is wrong, raise a dispute instead of confirming.
Selling
- Create a seller profile and launch a store (a banner and complete details are required to publish).
- Add products with images and USDC prices.
- When an order comes in, mark it shipped.
- You are paid automatically when the buyer confirms receipt, or after the auto-release window.
Disputes and arbitration
If a buyer and seller cannot agree, either party raises a dispute, which freezes the order's funds on-chain. Both sides post their account and upload evidence (photos, receipts, tracking) to a shared case file. A neutral arbiter reviews it and settles on-chain โ full refund, full release, or a custom split. Only the designated arbiter address can move frozen funds; the contract enforces this. At launch the arbiter is a single Vendra-operated wallet; decentralized and AI-assisted arbitration are on the roadmap.
Wallets
Vendra supports two ways to participate, at full parity:
- EVM wallets (MetaMask, Coinbase, WalletConnect) โ you sign transactions yourself.
- Email / Circle wallets โ sign in with an email and a Circle developer-controlled USDC wallet is provisioned for you, with signing handled securely server-side. No seed phrase or extension needed.
Both fund and operate the same on-chain escrow, and every step behaves identically regardless of how you logged in.
The smart contract
VendraEscrow is a purpose-built Solidity contract (^0.8.24) using OpenZeppelin v5 (SafeERC20, ReentrancyGuard, Ownable). One escrow record per order, an explicit state machine, and checks-effects-interactions with reentrancy protection on every transition.
- Configurable confirmation window (7 days) and ship deadline (5 days).
- A single arbiter address authorized to resolve disputes.
- Integrates USDC through Arc's ERC-20 interface (6-decimal units), while the same balance pays for gas natively.
Architecture
- On-chain (trustless): custody of funds, the escrow state machine, and dispute outcomes โ the source of truth for anything involving money.
- Off-chain (for UX and cost): the store and product catalog, profiles, an order index, and dispute case files / evidence.
- Stack: Next.js, wagmi + viem + RainbowKit (EVM), Circle developer-controlled wallets (email users), Supabase (data + storage), Vercel. Contract built and deployed with Hardhat.