Send € EURC or $ USDC to any phone contact inside WhatsApp (or any messenger (comming next)) in two taps – no gas, no seed phrases.
- Self‑custodial (ERC‑4337 wallets on Base)
- Sender can top‑up with card or open‑banking in‑flow
- Receiver decides: keep, swap, or cash‑out to SEPA / PayPal
- Links auto‑refund after 7 days if un‑claimed
Live on: Base Sepolia (testnet)
node≥ 18rustfoundry
curl -L https://foundry.paradigm.xyz | bash && foundryup
npm instal -g expo-clibropay ├─ packages/ │ ├─ contracts/ ← Foundry + OZ‑Upgrades contracts │ ├─ web/ ← Next.js 15 PWA + API │ └─ mobile/ ← React‑Native (Expo) wallet ├─ .env.example ├─ .gitignore └─ README.md
git clone https://github.com/olich97/bropay
cd bropay
cp .env.example .env # fill RPC & keys
pnpm i # installs all workspaces
# 1. Contracts
cd packages/contracts
forge test -vv
forge script script/Deploy.s.sol \
--rpc-url basesepolia \
--broadcast --verify
# 2. Web
cd ../web
npm run dev # http://localhost:3000
# 3. Mobile
cd ../mobile
npm i
expo start # scan QR on two phones
npm run dev:web # Next.js dev server
npm run dev:contracts # Local Anvil node + hot‑reload Forge
npm run test # Runs Forge tests + Next lint
npm run mobile # Starts Expo in packages/mobile- UUPS proxies via openzeppelin/foundry‑upgrades
- Contract upgrades → forge script script/Upgrade*.s.sol --broadcast
- Secrets (JWT_SECRET, Stripe keys) stored in Cloudflare & mobile .env
PRs welcome! Run forge fmt && pnpm lint before pushing.
