About FairPay
FairPay is an independent project for splitting bills with friends and paying restaurants, with Confidential payments at verified businesses. It runs only on Monad Testnet, with test USDC, and it has not been audited.
What FairPay isLink to this section
FairPay is a bill-splitting app. You create a bill, send one link, and each person pays their own share in test USDC from their own wallet. A share turns Paid only once FairPay finds the payment on Monad, so nobody can just tick a box.
Its Business section holds FairEats, where restaurants list menus and tables, guests order and split the bill at the table, and the restaurant issues GST invoices. At a verified business a guest can pay confidentially: the payment goes through a privacy pool, so the chain doesn't link it to their wallet. Bills between friends are paid publicly.
The contracts and the SDK are part of the same project. The guide explains how they work and how to run them yourself, and the source code is on GitHub (opens in a new tab).
An independent testnet projectLink to this section
- Independent. FairPay is built on Monad. It is not made, run or endorsed by the Monad Foundation, and it is not affiliated with it.
- Testnet only. Everything runs on Monad Testnet (chain 10143). Test USDC is a mock token that anyone can mint. It has no value.
- Unaudited. Nobody independent has audited the contracts, the SDK or the app. Security and limitations lists what is known.
Careful: Never send real funds to a FairPay wallet or contract, and don't sign in with a wallet that holds any. Use a new wallet, or the test wallet built into the app.
The contracts on Monad TestnetLink to this section
These are the deployed contracts. Each address opens on the Monad Testnet explorer (testnet.monadexplorer.com), where you can read the contract and every transaction it has handled.
- FairPay router
- 0x4a4cBDd78356f47a2F43932456f80fEaA6205596 (FairPay router on the Monad explorer, opens in a new tab)
- FairPool (privacy pool, 5 USDC notes)
- 0x3a7aAe15F71300D09bc268330eF393a023017A92 (FairPool (privacy pool, 5 USDC notes) on the Monad explorer, opens in a new tab)
- Test USDC (MockUSDC, anyone can mint)
- 0x6c4A96CAdB1Bd44464edB1237027F23f89Ce3dC7 (Test USDC (MockUSDC, anyone can mint) on the Monad explorer, opens in a new tab)
- Semaphore verifier for Monad
- 0x32D75baE7EeBE945cC747d7250630033DB82E03E (Semaphore verifier for Monad on the Monad explorer, opens in a new tab)
- FairPoolBatcher (adds several notes in one go)
- 0x55BbEF68c10907Fd66DC528c8973564FC17e9034 (FairPoolBatcher (adds several notes in one go) on the Monad explorer, opens in a new tab)
- FairPayroll (payroll escrow for restaurant staff)
- 0x5B9BC2fE53504948e6a3FA62a80D730fE20F7Eeb (FairPayroll (payroll escrow for restaurant staff) on the Monad explorer, opens in a new tab)
- PoseidonT3 (hash library used by the pool)
- 0x1966F53eD3074C92Bbdd42Ede68E811d2c13476F (PoseidonT3 (hash library used by the pool) on the Monad explorer, opens in a new tab)
PrivacyLink to this section
This websiteLink to this section
Every page, font and image comes from this site. It makes no third-party requests, has no analytics or trackers, and its pages set no cookies. Each page sends one request to /api/health on this same address, to wake the app's server early. It carries no cookies and its answer is ignored.
The FairPay appLink to this section
When you sign in to the app, its server keeps a sign-in session for your wallet address, and what you add: your name, friends, bills and shares, and for FairEats, restaurants, menus, orders and invoices. They are stored in the app's database. Like any web server, it also sees connection details such as your IP address.
The test wallet's key and your Confidential notes stay in your browser's local storage, on your device. They are not sent to FairPay's server. Clearing this site's data in your browser deletes them, and nobody can recover them for you.
Payments themselves are public records on Monad Testnet, like any blockchain transaction. A Confidential payment hides which wallet paid, not the amount or the business that was paid.