Skip to content
P

Passerelle

Send money home. Not fees.

Created on 20th February 2026

•

P

Passerelle

Send money home. Not fees.

The problem Passerelle solves

Sending money from Europe to North Africa shouldn't cost 6-8% and take 3 days. Western Union and MoneyGram extract billions in fees from diaspora communities every year, money that should reach families, not middlemen.

Passerelle lets you send USDC from any crypto wallet directly to a recipient's mobile money account (Orange Money, CIH Mobile, Wafacash) in minutes, for a fraction of the cost.

  • ~0.3% fees vs. 6-8% through traditional providers
  • Minutes, not days: stablecoin settlement is near-instant
  • Non-custodial escrow: funds are locked on-chain until the payout is confirmed, not held by a company
  • Recipients use mobile money: no crypto wallet or technical knowledge required on their end

Built for the French-Moroccan corridor first, with the architecture to support any diaspora route worldwide.

Challenges I ran into

Getting MockUSDC right
Circle doesn't offer a USDC faucet on Base Sepolia, which meant we needed a mintable stand-in for testing. The solution was straightforward — a custom ERC20 with a public mint() and faucet() function, but it took some iteration to make sure the decimal handling (6 decimals, matching real USDC) was consistent across the contract, the frontend, and the test suite. A mismatch here would have silently broken fee calculations.
Verifying contracts on Base Sepolia
BaseScan uses Etherscan's V2 API, and the verification flow isn't as well-documented as mainnet. Getting the Hardhat config and constructor arguments aligned took a few attempts, but once the V2 endpoint was correctly configured in hardhat.config.js, both contracts verified cleanly.
The completeRemittance() revert
The trickiest issue was a consistent on-chain revert when the liquidity provider tried to confirm a payout. The sender flow ( approve, create, escrow ) worked end to end, but completing the remittance from the LP dashboard kept failing silently. Tracking down the revert reason pointed to a caller address mismatch: the LP dashboard was calling completeRemittance() from a different wallet than the one assigned at creation time. A single-wallet demo setup (where the deployer is both owner and LP) resolved it for the demo corridor.

Use of AI tools and agents

AI tools played a significant role in accelerating development across the stack, particularly given the tight hackathon timeline.
Claude was the primary tool used throughout the project: for scaffolding the Solidity contracts, writing and iterating on the Next.js frontend, debugging the completeRemittance() revert, writing the test suite, and drafting documentation including the README. Most of the implementation was AI-assisted, partly due to time constraints and partly due to limited prior experience with Solidity.
GitHub Copilot assisted with boilerplate-heavy frontend code: RainbowKit configuration, wagmi hooks, and repetitive TypeScript patterns.
To be transparent: the product design, corridor selection, architecture decisions, and overall flow were made entirely independently. AI was brought in to execute and implement, but not to decide what to build or why.

Tracks Applied (1)

New France Village

Remittances are one of the most tangible and high-impact use cases for stablecoins. The France→Morocco corridor alone mo...Read More

Discussion

Builders also viewed

See more projects on Devfolio