Buy crypto with the apps you already use.

The uSwap browser extension powers the fiat on-ramp at app.uswap.net. Pay peers with the apps you already use — Venmo, Cash App, Revolut, Wise, PayPal, Chime, Zelle, Mercado Pago — and the extension confirms the payment privately. Your login, password, and session data never leave your browser.

What it does.

The uSwap browser extension is the companion to app.uswap.net's fiat on-ramp. It does one job: it lets you finish a crypto purchase by paying a peer with the payment app you'd use anyway — Venmo, Cash App, Zelle, PayPal, Wise, Revolut, Chime, Mercado Pago — and it produces a private, encrypted proof that you sent the payment, so the crypto releases automatically.

You never upload a screenshot. You never share a password. You never hand over an "open banking" credential to a third party. The whole confirmation happens inside the extension on your own device, and only an encrypted blob crosses the network. Everything else stays local.

0% fee on-ramp Manifest V3 MIT licensed No password capture No remote code Open source Side panel

Three things, end to end.

Fiat on-ramp checkout

Pick "buy with cash" on the uSwap app, match with a peer, and pay them with the payment app you already use. The extension's side panel sits next to the page so you can complete the purchase without leaving what you're doing.

Private payment proof

When you pay, the extension reads one specific confirmation request from inside your existing session and seals it into a TEE-encrypted blob. Your password, your session cookies, and your raw request bodies never leave the browser — only the sealed proof does.

Source-verifiable

Manifest V3 forbids the extension from loading any code outside the reviewed Web Store package, and the package itself is MIT-licensed on GitHub. Clone, build, diff the resulting dist/ against the published zip, and verify exactly what's running in your browser.

How a purchase actually flows.

uSwap's fiat on-ramp is peer-to-peer on top of an on-chain escrow. The crypto goes to you first; the payment-app side settles second.

01

Pick what you're buying

Open app.uswap.net, choose "buy with cash", pick the destination crypto (USDC, ETH, BTC, anything uSwap routes) and the payment app you want to pay with.

02

A peer reserves the crypto

The order book matches you with a peer who already holds the crypto and is willing to take your payment app. Their crypto is locked in escrow on-chain — they can't pull it back while your reservation is open.

03

You pay them, normally

Open Venmo / Cash App / Wise / whatever, send the amount to the handle the app shows you. Nothing about the payment is special — it's just a normal payment in your own account.

04

The extension confirms privately

The extension reads the confirmation of your payment from inside your existing session, seals it into a TEE-encrypted blob, and sends only the sealed blob to the escrow contract. The contract releases the crypto to your wallet. Total time: usually under a minute.

The privacy boundary, line by line.

The extension's whole point is to do the payment proof without exposing your session. Here's exactly where the line sits.

DataWhere it livesWhat crosses the network
Payment-app password / PIN Never asked for, never captured Never sent. Never read by the extension at all.
Session cookies / auth headers Your browser's existing storage Never sent in plaintext. Used locally only to read the one confirmation request.
Raw payment-app request body Captured locally inside the extension Never sent. Immediately sealed.
Encrypted payment proof Built locally, in an offscreen document Sent to uSwap as opaque bytes. Only the TEE inside the escrow protocol can decrypt it.
Extracted public fields (amount, recipient handle, platform name) Computed from the same one request Sent alongside the sealed blob so the escrow can match it. These are the fields the counterparty already sees on their side.
Your browsing on unrelated sites Not touched Never sent. The extension has no access without an explicit per-platform grant.
Analytics, fingerprinting, telemetry None collected Never sent. The extension ships with no analytics SDK.

Supported payment apps.

Eight live as of the current release, with optional per-platform host permissions you grant only when you choose to pay with each one.

P2P payments (US)

Venmo

venmo.com

P2P payments (US)

Cash App

cash.app

Bank transfer (US)

Zelle

via bank portals

Banking (US)

Chime

chime.com

P2P payments (global)

PayPal

paypal.com

P2P payments (global)

Revolut

revolut.com

Cross-border (global)

Wise

wise.com

P2P payments (LATAM)

Mercado Pago

mercadopago.com

Verifiability, the short version.

Build

Rebuildable release

Every release tag ships the built zip next to the commit it came from. Clone, checkout the tag, run the build, diff against the published zip.

Runtime

No remote code

Manifest V3 blocks the extension from loading any code outside the reviewed Web Store package. What's in the repo is what's in your browser.

Verification

TEE-sealed proofs

Payment proofs are decrypted only inside the underlying Peer.xyz Trusted Execution Environment. uSwap is a blind courier.

Browser extension questions

Because we want to buy crypto with your existing payment apps — without you sharing your login. The honest way to confirm a Venmo / Cash App / Zelle / Wise / Revolut / PayPal payment without a screenshot or a centralised "open banking" provider is to read the confirmation locally inside your own browser session, encrypt it before it leaves, and send only the encrypted proof. That requires code running on your side. The browser extension is that code.