
MonliPay turns Monad token transfers into a shareable link — no wallet address swapping, no chain confusion, just send a URL via WhatsApp and the recipient claims with one click. Core flow: 1. Sender deposits MON (or any ERC-20) into the LinkVault contract, browser generates an ephemeral keypair — public key goes on-chain, private key lives in the URL fragment (#). 2. Sender shares the link in any chat app. 3. Recipient opens it, their wallet signs an EIP-712 message, the contract verifies via ecrecover, funds transfer. 4. If nobody claims before expiry, the next time the sender opens "My Links" the contract auto-refunds them — permissionless, anyone can trigger it. Security highlights: - Secret key never appears in calldata (URL fragment never sent to servers), so mempool watchers cannot front-run the claim. - EIP-712 domain separation + EIP-2 s-value check prevent signature replay across chains and contracts. - ReentrancyGuardTransient (Cancun tstore/tload) for zero-cost reentrancy protection. - Pull-pattern fallback for failed ETH pushes + fee-on-transfer support for non-standard tokens like USDT. - Two audit rounds, 92 Foundry tests, 100% line coverage on LinkVault.sol. Bonus features: - Gasless claim via EIP-2771 meta-transactions — recipient pays nothing, a sponsor wallet relays the tx. - Cross-chain bridge (LI.FI aggregator) for bringing tokens from Ethereum, Base, Arbitrum, Optimism, Polygon, BNB, Avalanche into Monad. - Ponder indexer powers the "My Links" dashboard so the sender sees real-time status (active / claimed / refunded) without polling the contract. Frontend: Next.js 16 + wagmi v2 + viem v2 + RainbowKit v2 + Tailwind v4 + three.js landing hero. Backend: single Solidity 0.8.28 contract + Ponder indexer (TypeScript). 687 frontend tests, 92 contract tests. Live on Monad mainnet since July 2026. Fully open source, MIT.
Discussion
No comments yet. Be the first to share what you think.