Thanks for your interest in contributing to Passpay — open source payment orchestration built on Stellar, bridging Argentina's Transferencias 3.0 with on-chain dollars.
Passpay is a N:1 payment orchestration layer: multiple people pay in different currencies and wallets, one merchant receives in their configured asset. Every contribution helps make payments in Latin America faster, fairer, and more accessible.
- Read the README to understand how Passpay works
- Browse the open issues — look for
good first issueif you're new - Comment on the issue you want to work on before starting — this avoids duplicate work
git clone https://github.com/YOUR_USERNAME/Passpay.git
cd Passpay# Backend
cd api
cp .env.example .env # add your Stellar testnet keys
npm install
npm run dev # runs on http://localhost:3001
# Frontend (new terminal)
cd frontend
npm install
npm run dev # runs on http://localhost:3000git checkout -b feat/your-feature-name
# or
git checkout -b fix/your-bug-name- Keep changes focused — one issue per PR
- Follow the existing code style (TypeScript, Express, Next.js)
- Add comments for non-obvious logic
- Test your changes manually against the Stellar testnet
- Reference the issue number in your PR description:
Closes #12 - Describe what you changed and why
- Include a short test plan: how did you verify it works?
passpay/
├── api/ # Express + TypeScript backend
│ └── src/
│ ├── controllers/ # HTTP layer
│ ├── services/ # Business logic
│ ├── types/ # TypeScript types
│ └── routes/ # Route definitions
│
└── frontend/ # Next.js 15 frontend
├── app/
│ ├── pos/ # Merchant screen — generates QR
│ └── pay/[id]/ # Payer screen — pays their share
└── lib/
├── wallets.ts # Stellar wallet integrations
└── payment-providers/ # Fiat payment providers
- Split: a payment request for a total amount, shared by N people
- Settlement asset: the currency the merchant always receives (e.g. USDC)
- Payment method: how each individual pays (XLM, USDC, ARS, MercadoPago, card...)
- Conversion: Passpay converts each payment to the settlement asset before settling
- Settlement: once
totalPaid >= totalAmount, an on-chain Stellar transaction sends funds to the merchant automatically
| Label | Meaning |
|---|---|
good first issue |
Small, well-scoped, great for newcomers |
backend |
Changes to api/ |
frontend |
Changes to frontend/ |
stellar |
Involves Stellar SDK, SEP standards, or on-chain logic |
payments |
New payment provider integration |
latam |
Latin America-specific features |
security |
Security improvements |
internal |
Being resolved by the core team — not available for contributors |
Open a GitHub Discussion.
Built with ☀️ in Latin America.