Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
Fast, free stablecoin payments. No wallet address needed - just a username.
Translation pending
FinanceTypeScript · PLpgSQLGitHub @0xsuneelOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
USDC Payments Made Simple , send usdc on Arc as easily as a message. Multichain transfers, Multichain claim, swaps, bulk payouts, chat payments, and P2P trading built in.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Pay people, not addresses.
Self-custodial USDC payments and private chat, on Arc and 20+ chains.
Arc Testnet only. Every chain, contract and RPC endpoint here points at a testnet.
🔐 MeshPort Wallet
A self-custodial wallet you can open with Google or an email code. The key is
generated on your device, unlocked elsewhere with a passkey or a
password-sealed Recovery QR, and never stored by MeshPort. Create or import
a classic wallet with a recovery phrase if you prefer.
→ How self-custody worksRead the full README ↗Arc Testnet only. Every chain, contract and RPC endpoint here points at a testnet.
A self-custodial wallet you can open with Google or an email code. The key is generated on your device, unlocked elsewhere with a passkey or a password-sealed Recovery QR, and never stored by MeshPort. Create or import a classic wallet with a recovery phrase if you prefer. → How self-custody works
Message anyone by their .arc username and send money in the same thread.
Chats are end-to-end encrypted, with every chat key signed by its wallet.
→ How chat encryption works
One balance on Arc, reachable from 20+ chains: bring USDC in, send it out, track every step. Built on Circle Gateway and CCTP V2.
Shareable links (meshport.xyz/paylink/you?amount=10) with rich previews,
QR payments, business bills, bulk payouts, swaps (USDC · EURC · cirBTC) and P2P
trading with on-chain escrow.
sign in ─► key made on your device ─► passkey (Face ID / fingerprint)
└► Recovery QR (a password only you know)
| MeshPort stores | MeshPort never stores |
|---|---|
| Wallet address, username, profile | Private keys or seed phrases |
| Passkey id + passkey-encrypted key | Recovery passwords or QR contents |
git clone https://github.com/0xsuneel/meshport.git
cd meshport
npm install
npm run dev # http://localhost:5173
npm run typecheck # TypeScript
npm run lint # ESLint
npm run test # Vitest
npm run build # production build
You'll need a Supabase project and a .env — see
Local development.
| Path | What it is |
|---|---|
src/ | React + Vite PWA — wallet, chat, pay, multichain, business, P2P |
src/lib/ | Wallet, passkey, Recovery QR and chat crypto; payment logic |
src/blockchain/ | Balance readers, RPC providers, chain config |
api/ | Vercel functions — link previews, relayer, profile, push |
supabase/functions/ | Edge Functions — claims, accounting ledger, business pay (merchant-pay), indexer |
supabase/migrations/ | Database schema and row-level security |
contracts/ | Solidity — rewards, P2P escrow, bridge router |
docs/ | Architecture, self-custody, chat encryption, audits |
The app has two account types, Personal and Business. Some code and database names are older than the app's wording; they mean the same thing:
| In the app | In code and the database |
|---|---|
| Business account | merchant (useMerchant, isMerchant, merchant_* tables, merchant-pay) |
| Business verification | merchant_applications |
| Cross-chain Transfer (business) / Multichain Hub (personal) | /multichain, MultichainPage |
| Business Insights | /business?screen=reports, BusinessInsightsPage (desktop) |
| Manage money · money on other chains | BusinessMoney, Unified Balance; payment status in_ledger = waiting on another chain |
| Bill · Request · Shop QR payment | merchant_payment_intents (kind = invoice is a bill; via = shop_qr is a Shop QR payment; otherwise a request) |
The ledger folders and ledger_events table (server/ledger/,
supabase/functions/ledger-interpret/) are the internal accounting record
that Activity is built from. It is never shown in the app.
React · TypeScript · Vite · Tailwind · viem · Supabase · Vercel · Circle Gateway & CCTP V2 · WebAuthn passkeys · Argon2id · X25519 / AES-256-GCM
Contributions are welcome — see CONTRIBUTING.md. Please report security issues privately rather than in a public issue.