Trustless physical exchange- Lock payment on-chain before meeting; release in person
inSync makes buying and selling rom a stranger on Facebook Marketplace or Craigslist safe for both sides.inSync makes exchanging physical things with strangers on Marketplace or Craigslist actually reliable by requiring both parties to financially commit to the meetup, preventing no-shows, ghosting, fake buyers, last-minute changes, and wasted time.
No more: No-show for time wasted travelling: "Sorry, something came up." Fake buyer: "I'm definitely coming" (never shows). Last-minute price increase: "Actually, I need $50 more." Seller sells to someone else: "Someone offered me more." Meeting at wrong place/time: "Wait, I thought we were meeting tomorrow."
inSync removes the trust problem for real world physical assets. A seller lists an item (photo, price, meeting spot + time, contact, notes) and shares a link or QR. The buyer browses or opens the link and locks the full payment — item price plus a small refundable deposit — into a smart-contract escrow before anyone travels. The seller verifies on-chain that real funds are waiting, so nobody wastes a trip. The app then helps them meet: a map of the spot, a Calendly-style proposed time, two-way live-location sharing, tap-to-call, and an in-app "propose a new spot/time." At the handoff the buyer inspects the item and scans the seller's one-time QR to release payment. Settlement is instant and final — no bank, no chargebacks, no counterfeit cash. A live status timeline and a printable receipt (with on-chain proof links) close the loop.
It is dispute-free by construction. Every outcome is a deterministic on-chain rule or a mutual in-person signature — never a judge, jury, or support desk. The item price is always refundable until the buyer confirms; the deposit is only forfeited if the buyer flakes after the seller has checked in, and if the seller never shows, the buyer gets everything back. A Chainlink keeper auto-refunds any expired deal. Tech behind it:
inSync is a TypeScript/Solidity monorepo. The core is an Escrow.sol state machine on Base Sepolia (Foundry, 76 passing tests) that holds USDC and moves it only on a buyer's in-person confirmation or a deterministic refund rule; a companion Reputation.sol can tally outcomes. The frontend is Next.js 14 (App Router) + Tailwind, talking to the chain via viem. A Fastify + SQLite (better-sqlite3) backend indexes contract events (chunked eth_getLogs backfill from the deploy block so public RPCs work) and stores off-chain meet data — photos, location, proposed time, contacts, lifecycle events — keyed by on-chain listingId/dealId.
Notable details: the in-person release is a QR handshake (qrcode + html5-qrcode) with a one-time nonce so the seller proves presence without a server; Google Maps is embedded keylessly (maps.google.com ...&output=embed) plus the browser Geolocation API for live location; a test-USDC faucet (the pay token is a public-mint MockERC20) auto-tops-up fresh wallets so funding "just works"; the whole happy path is proven by a Playwright e2e against live Base Sepolia and a 20/20 on-chain script e2e covering every cancel branch

