The protocol
behind the wink.
The rails are free. The names are the business. 0% platform fee; monetization = premium handles, private zones, and enterprise payroll. Live on mainnet.
┌────────────────────────────────────────────┐
guest / fan ───▶ │ /wink/<handle> /wall/<slug> /pay/<...> │
customer ───▶ │ public surfaces (SSR + polling) │
worker ───▶ │ /request/<handle> /payroll /dashboard │
AI agent ───▶ │ /api/mpp/* (HTTP 402 / MPP) │
└──────────────────┬─────────────────────────┘
│ prepare → sign → confirm
┌──────────────────▼─────────────────────────┐
│ Next.js 15 API routes │
│ zod validation · session HMAC · drizzle │
└───────┬───────────────────────┬────────────┘
│ │
┌───────────▼─────────┐ ┌─────────▼──────────────┐
│ Postgres (drizzle) │ │ Tempo (viem/tempo) │
│ users · handles · │ │ pathUSD TIP-20 │
│ transfers · ledger │ │ transferWithMemo │
│ events · payCodes │ │ on-chain verification │
│ payRequests │ │ explorer │
└─────────────────────┘ └────────────────────────┘prepare → sign → confirm. Resolve @handle to recipient wallet, create a pending transfer with memo, payer signs in their wallet, we verify on-chain and append to the ledger. Same loop everywhere — tips, checkout, payroll.
We never trust client success — re-checked on Tempo 4217 before confirmed. Wink Wallet: encrypted on our server so same email restores same address. We can decrypt them. Connected wallets are actually non-custodial. Full threat model in /security — same sentence as /send, /claim, /wallet.
Every transfer carries a 32-byte reconciliation memo (wk_<transferId> for wink flows, merchant + invoice for sales). The memo tells the story; the chain is the receipt.
We use EXACT_OUTPUT: merchant gets full amount, sender pays Relay fee + $0.008 network. $1 Base → $1.00 pathUSD on Tempo, sender pays ~$1.033. $10 → $10.00, sender pays ~$10.09. Quote shown before sign. 13 chains, chain id 4217 mainnet.
Recipient gets pathUSD on Tempo 4217 — hold, send to another @handle, or send out to any wallet. 13 chains in, one chain out. Chain id 4217 mainnet.
# clone & install git clone https://github.com/Arinzaay007/wink cd wink && npm install # env (DATABASE_URL, SESSION_SECRET, TEMPO_NETWORK=mainnet, RESEND_API_KEY) cp .env.example .env # schema → postgres npm run db:push # run npm run dev # app on :3000 npm test # 60 automated tests npm run build # production build
EXACT_OUTPUT: merchant gets exact amount, sender covers Relay fee + $0.008 network. Verified independently on both chains — chain is truth. Quote shown before sign.