Polypay
The Back-office platform for Humans and agents. Privacy preserving on-chain treasury & payroll
Videos




Tech Stack
Description
PolyPay is a privacy-preserving on-chain payroll & multisig platform powered by zero-knowledge proofs. It lets teams pay contributors and manage shared treasuries without exposing the signers behind every transaction — information that's fully public on a standard multisig, where anyone can map who approved what.
On a normal multisig, every approver's address is visible on-chain, leaking your org chart, who controls the treasury, and who signed each payment. PolyPay replaces that with ZK-backed approvals: members authenticate and approve with zero-knowledge proofs, and only a single relayer wallet ever touches the chain — so signer identities stay private while the multisig logic stays fully verifiable.
Four pillars:
- Private multisig — signer identities stay hidden; only a relayer wallet appears on-chain.
- ZK authentication — log in and approve via zero-knowledge proof; secrets never leave your device.
- Batch payroll — pay one contributor or an entire team in a single flow, individually or batched.
- Agentic-friendly — first-class support for both human and AI-agent signers, so autonomous agents can hold and move treasury under policy.
PolyPay is live in mainnet beta on Horizen and Base, and now runs on Arbitrum One via Stylus — our core multisig wallet ported to Rust/WASM and deployed on Arbitrum One. Building the multisig of the future for both human and agentic teams.
Roadmap: confidential payment amounts and recipients — full transaction privacy — is in active development.
Progress During Hackathon
During the buildathon we brought PolyPay to Arbitrum via Stylus:
- Ported our core MetaMultiSigWallet from Solidity to Arbitrum Stylus (Rust/WASM) — kept it byte-for-byte ABI-compatible with the original Solidity contract, so our frontend (viem) and backend relayer reuse the same ABI with zero changes.
- Ported the EIP-1167 factory to Rust/Stylus — createWallet() deploys a minimal-proxy account per user and initializes it in a single transaction (proxy-per-account, to avoid paying the Stylus activation fee on every new account).
- Squeezed the implementation under Arbitrum's 24 KiB code-size limit (31,202 → 24,295 bytes) by moving events off-chain and hand-rolling the PoseidonT3 / zkVerify STATICCALLs — so it deploys on Arbitrum One today, with no functional or ABI change.
- Deployed to both Arbitrum One (mainnet) and Arbitrum Sepolia.
- ZK commitments stay consistent across chains by STATICCALL-ing the on-chain poseidon-solidity PoseidonT3 library (the same Poseidon hash our Noir circuit uses).
- Built an agentic USDC-deposit agent on Arbitrum One — a standalone autonomous agent that gaslessly funds a PolyPay multisig with USDC via our x402 flow (EIP-3009 TransferWithAuthorization, settled through the Coinbase CDP facilitator). The signing key stays out of the agent process via OWS (Open Wallet Standard) + a policy engine that scopes the key to USDC-only, Arbitrum-One-only, to-your-multisig-only, under a spend cap and expiry.
Some Verifiable work (public repo, all merged during the buildathon):
- Arbitrum Sepolia + initial Stylus port + Rust factory — https://github.com/Poly-pay/polypay_app/pull/282
- Arbitrum One mainnet wiring + 24KB slim + dispatch tests — https://github.com/Poly-pay/polypay_app/pull/289
- Agentic payments on Arbitrum — https://github.com/Poly-pay/polypay_app/pull/292
- OWS-secured x402 USDC deposit agent — https://github.com/Poly-pay/polypay_app/pull/296
Fundraising Status
Currently raising a pre-seed round. To date we've secured a $60K grant from Horizen Foundation, which funded our live mainnet beta and pilot program.
To sharpen our business model, PMF, and GTM strategy, we joined a Founder Residency program in Vietnam:
Latest pitch deck