Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STABLE·HOP

Mobile stablecoin FX across Celo and Arc.

Live app: https://stable-hop.vercel.app

Track demo payment: https://stable-hop.vercel.app/?guard=1

Hackathon deck: https://stable-hop.vercel.app/arc-hackathon-deck.html

The Product

STABLE·HOP is a mobile money app with three surfaces:

  • Pay: pre-fund a EUR invoice with native USDC on Arc and enforce an FX ceiling with Pyth.
  • Convert: exchange local stablecoins through Mento on Celo.
  • Request: create a payment request as a link or QR code.

The Arc payment is the primary workflow inside the existing Celo and MiniPay product, not a separate demo. It shares the app shell, wallet state, payment links, legal surfaces, and responsive design with the existing rails.

The payer signs one transaction. Arc native USDC stays locked until a recent Pyth EUR/USD update reaches the chosen ceiling. Anyone can trigger settlement. The recipient receives the exact current USDC value and the unused amount returns to the payer. If the deadline passes first, only the payer can recover the funds. The Track view exposes funding and settlement proof without requiring a wallet.

Why It Is Different

Most stablecoin apps execute a conversion, transfer, or checkout immediately. STABLE·HOP creates a standing, pre-funded payment that executes later when a public market condition is true:

  • The invoice is denominated in EUR, not USDC.
  • Funding is visible before settlement.
  • The FX ceiling is enforced by a source-verified contract, not an app server.
  • Settlement is permissionless and uses signed Pyth data.
  • There is no owner, custody key, or admin withdrawal path.
  • Arc native USDC funds the payment in one transaction with no approval step.

See COMPETITION.md for the dated Arc project review.

Verified Arc Proof

Demo payment #1 locked 1.30 USDC for a 1 EUR invoice. Pyth settled it at 1.15585, paid 1.15585 USDC to the recipient, returned 0.14415 USDC to the payer, and left the contract with a zero balance.

Contract Rules

  • Arc Testnet, chain ID 5042002
  • Native USDC at 0x3600000000000000000000000000000000000000
  • Pyth at 0x2880aB155794e7179c9eE2e38200202908C17B43
  • EUR/USD feed 0xa995...c30b
  • Maximum oracle age: 30 minutes
  • Maximum confidence width: 1%
  • Payment duration: 5 minutes to 30 days

Source: contracts/src/ArcFxGuard.sol

Tests: contracts/test/ArcFxGuard.t.sol

Deployment record: contracts/deployments/arc-testnet.json

Run

npm install
npm run dev

Verify

npm test
npm run contracts:test
npm run lint
npm run build

Stack

React 19, TypeScript, Vite, wagmi, viem, TanStack Query, shadcn/Radix, Celo, Mento, MiniPay, Arc, native USDC, Pyth, Solidity, and Foundry.

STABLE·HOP is unaudited testnet software. See SECURITY.md and ARC-HACKATHON.md.

About

No description, website, or topics provided.

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages