-
-
Notifications
You must be signed in to change notification settings - Fork 3
Description
Problem
ChatterPay wallets currently live on Scroll, a single L2 network. Users who hold assets on other chains (Ethereum, Arbitrum, Optimism, Base, Solana, Bitcoin, Tron, etc.) have no straightforward way to fund their ChatterPay wallet without manually bridging through external tools, finding the right contract addresses, and hoping they pick the correct network. This friction discourages onboarding and limits the pool of potential depositors.
Solution
Integrate Layerswap as an embedded iframe widget that handles cross-chain bridging directly inside ChatterPay. Layerswap abstracts away network selection, wallet connection, and token routing:
The user simply picks a source and an amount, and funds arrive on Scroll USDT in their ChatterPay wallet.
Why Layerswap
- Minimal integration — single iframe with URL params. No SDK, no npm packages, no RPC/wallet-connect CSP entries. Zero maintenance on our side.
- 74+ source networks — EVM chains, Solana, Bitcoin, Tron, and Starknet. This gives us the broadest funnel for attracting deposits.
- Clean UX — the user sees one unified interface regardless of source chain. Network selection, wallet connection, and token routing are fully abstracted.
- Battle-tested — production-grade, audited, used by major projects.
Alternatives considered
- Direct bridge integration (Axelar, Layerswap API, etc.) — Higher complexity and, critically, the user would end up seeing two deposit addresses (one for Scroll, one for the multichain bridge contract), which breaks the single-wallet mental model and degrades the user experience.
- LiFi widget — The UX felt significantly worse compared to Layerswap's iframe. Less polished interface and harder to integrate seamlessly into our dark-themed UI.
How it works
Dashboard deposit modal
- User clicks Deposit in the dashboard balance card.
- A dialog opens with a dark background matching the Layerswap iframe.
- The Layerswap widget loads pre-configured: destination locked to Scroll mainnet, destination address pre-filled with the user's wallet, USDT as default asset.
- User connects their source wallet inside the iframe, picks a source network/token, and deposits.
- A tertiary "See my address on Scroll" button toggles to a fallback view with QR code + wallet address for manual transfers.
Standalone deposit page (/deposit)
- The WhatsApp bot (or any external link) sends users to
/deposit?address=0x.... Note: This could happen when the user says "I'd like to deposit", "I'd like to see my wallet", "I'd like to create an account", "I'd like to see my balance" - The page validates the Ethereum address and renders the Layerswap widget.
- A minimal header shows only the ChatterPay logo and language/theme selectors (no nav clutter).
- A "Return to ChatterPay" link at the bottom sends the user back to WhatsApp with a translated message to see the balance (in case the deposit notification didn't arrive fast).
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request