Skip to content

thefifthdev/paywift

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

Paywift 📱

Send money across borders instantly using USDC on Stellar. Built for the corridors the banks forgot.

License: MIT Stellar USDC Status


Overview

Paywift is a mobile-first cross-border payment application that uses Stellar's native speed and USDC to move money between countries in seconds — not days — at a fraction of traditional wire fees.

Stellar was purpose-built for global payments. Paywift is the consumer layer that makes that power accessible to anyone with a smartphone.


The Problem

Sending $200 from Lagos to London today: 3–5 business days, $15–25 in fees, opaque FX rates with hidden markups, and zero transparency until it (hopefully) arrives. The $700 billion global remittance market still runs on infrastructure built in the 1970s.

For the 281 million international migrants who send money home, this isn't a fintech inconvenience — it's a tax on survival.


The Solution

Paywift settles on the Stellar network. Transactions confirm in 3–5 seconds. USDC eliminates FX volatility for corridor transfers. Fees are flat, transparent, and published before you send.

Metric Traditional Wire Paywift
Settlement time 3–5 business days ~5 seconds
Average fee $15–25 $0.01 + 0.5%
FX transparency Hidden markup On-screen before send
Receipt Email (maybe) On-chain, permanent
Weekend availability No Yes

Key Features

Send by Contact or Address

Send USDC to a phone number, email, or Stellar address. Recipients without a wallet get a claim link that auto-creates one on first use.

QR Payments

Generate a payment QR that anyone with Paywift can scan to send — no address copying, no errors. Perfect for merchants, freelancers, and person-to-person payments.

Transparent Fees

Every send screen shows the exact fee, the exact exchange rate (if applicable), and the exact amount the recipient will receive — before you confirm. No surprises on arrival.

Transaction History

Full on-chain transaction history with memo support. Every payment is a permanent, verifiable Stellar transaction — your own immutable record.

On/Off Ramp Hooks

Paywift integrates with regional ramp providers so senders can fund from local bank accounts or mobile money, and recipients can cash out to local currency or mobile wallets.

Multi-Currency Display

Users see amounts in their local currency with live conversion rates. The underlying settlement is always USDC on Stellar — local currency display is a UX layer, not a different asset.


Supported Corridors (v1)

From To Typical Arrival
Nigeria (NGN) United Kingdom (GBP) < 30 seconds
Mexico (MXN) United States (USD) < 30 seconds
Philippines (PHP) United States (USD) < 30 seconds
Kenya (KES) United Kingdom (GBP) < 30 seconds
Ghana (GHS) Canada (CAD) < 30 seconds

More corridors are added continuously as ramp integrations are completed. All corridors share the same Stellar settlement layer.


Technical Architecture

Sender App                         Stellar Network              Recipient App
──────────────────                 ──────────────               ─────────────────
User inputs amount   →  USDC transfer on Stellar  →  Recipient wallet credited
Ramp converts NGN    →  Settles in ~5 seconds     →  Ramp converts to GBP
to USDC              →  Fee: $0.00001 on-chain    →  Bank/mobile payout

Core Stack

  • Settlement Layer: Stellar (USDC native)
  • Wallet Management: Freighter SDK + custodial fallback for new users
  • Ramp Integrations: Bitso (MX/US), Yellow Card (NG/GH/KE), GCash (PH)
  • Frontend: React Native (iOS + Android)
  • Backend: Node.js + Express, PostgreSQL for off-chain user data
  • Notifications: Push alerts on send confirmation and receipt

Stellar Integration Points

import { StellarSdk } from 'stellar-sdk';

const server = new StellarSdk.Horizon.Server('https://horizon.stellar.org');

// Build a USDC payment transaction
async function sendUSDC(senderKeypair, recipientAddress, amount) {
  const account = await server.loadAccount(senderKeypair.publicKey());

  const transaction = new StellarSdk.TransactionBuilder(account, {
    fee: await server.fetchBaseFee(),
    networkPassphrase: StellarSdk.Networks.PUBLIC,
  })
    .addOperation(
      StellarSdk.Operation.payment({
        destination: recipientAddress,
        asset: new StellarSdk.Asset('USDC', 'GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN'),
        amount: amount.toString(),
      })
    )
    .addMemo(StellarSdk.Memo.text('Paywift transfer'))
    .setTimeout(30)
    .build();

  transaction.sign(senderKeypair);
  return await server.submitTransaction(transaction);
}

SEP Compliance

Paywift implements Stellar Ecosystem Proposals for maximum interoperability:

SEP Description Status
SEP-1 Stellar TOML ✅ Implemented
SEP-6 Deposit/Withdrawal API ✅ Implemented
SEP-10 Stellar Web Authentication ✅ Implemented
SEP-24 Hosted Deposit/Withdrawal ✅ Implemented
SEP-31 Cross-Border Payments 🔄 In Progress

Getting Started (Development)

git clone https://github.com/your-org/paywift
cd paywift

# Install dependencies
npm install

# Configure environment
cp .env.example .env
# Add your Stellar keypair and ramp API keys

# Start local development server
npm run dev

# Run on iOS simulator
npm run ios

# Run on Android emulator
npm run android

# Run tests
npm test

Environment Variables

STELLAR_NETWORK=testnet
STELLAR_HORIZON_URL=https://horizon-testnet.stellar.org
USDC_ISSUER=GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5
RAMP_PROVIDER_API_KEY=your_key_here
PUSH_NOTIFICATION_KEY=your_key_here

Roadmap

v1.0 — Beta (Current)

  • USDC send/receive on Stellar
  • QR payment support
  • Nigeria → UK, Mexico → US corridors
  • Transaction history

v1.1

  • Philippines → US corridor
  • Multi-language support (Spanish, Tagalog, Yoruba)
  • Biometric authentication
  • Scheduled/recurring payments

v2.0

  • Merchant payment terminals (QR-based)
  • Group payments and bill splitting
  • Savings pockets (yield via Vaultex integration)
  • Stellar-native debit card partnership

Contributing

Paywift is community-built and welcomes contributors across mobile dev, backend, Stellar integration, and regional ramp partnerships.

Good first issues are labeled in the tracker. See CONTRIBUTING.md for setup instructions and contribution flow.


License

MIT © Paywift Contributors


Paywift is not a bank. USDC is issued by Circle. Paywift does not hold user funds — all balances are on-chain.

About

Paywift is a mobile-first cross-border payment application that uses Stellar's native speed and USDC to move money between countries in seconds — not days — at a fraction of traditional wire fees.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors