QR
In-person payments
Scan. Approve. Settled.
Fast in-person payments. No addresses, no checkout. The QR is the last inch: underneath it, a merchant-signed request a Soroban contract enforces, lira in and out through an anchor, a bill that settles out of whatever you happen to be holding — and a key your phone cannot give away, that a lost phone does not take with it.
Verifying payment network
Scan the code
Or hold them together
Align the merchant QR inside the frame
Ready to pay
Hold near the merchant's phone
Paid
37.31 XLM
Faturada 500,00 ₺
Customer pays
Rose Coffee
New request
Amount (TRY)
500
Customer sends 37.31 XLM
Rose Coffee
Payment request
500,00 ₺
37.31 XLM
Show this code to your customer
Merchant asks
Served today.
Paid in forty days.
Meal card
- Day 1Meal served
- Day 15Still waiting
- Day 30–40Paid, minus commission
Rosa Pay
- NowMeal served
- 5 secondsPaid, in full
- Locked until the payout run
- Commission off every plate
- Held by someone else
- Spendable the moment it lands
- Your wallet nobody else holds it
- No payout run nothing to wait for
Priced in your money
A merchant types 500 ₺. The customer sends lumens.
The rate is an anchor's own live quote, not a number we made up. The price the customer approves is the price on the bill.
Paid out of what you hold
The bill says USDC. Your wallet holds lumens. It still goes through.
The settlement contract buys the difference on Soroswap in the same transaction that pays the merchant. One approval, one ledger entry: either they are paid the exact amount they asked for, or nothing moved at all. The merchant's signature never mentions the swap, so no route and no price can change who is paid, in what, or how much.
-
56-character address
Scan or tap
-
12-word phrase
Your face
-
Coins for the fee
Paid for you
Scan it. Or tap it.
NFC
Hold them together.
One payment,
three hands.
-
01 MERCHANT
Asks for the amount
Merchant mode signs the request with a key on that phone, so it names the amount and where it lands.
-
02 CUSTOMER
Approves that exact one
Scan or tap to receive it. The app checks the signature before you look, and your face or fingerprint releases the key.
-
03 STELLAR
Settles it once
The contract refuses a replay, a changed amount or a late approval. You never hold XLM for fees.
Only your phone can spend it.
Losing your phone doesn't lose it.
- Nothing to write down The key that spends your money is made inside your phone's security chip and cannot leave it. There is no phrase to photograph, paste, or be talked out of. Secure Enclave · Keystore
- Your face approves it Every payment is signed for that exact amount and that exact shop. Approving one cannot approve another. secp256r1
- A passkey carries it over Your passkey lives on your other devices too, because Apple and Google put it there. It is what a new phone shows to claim the wallet. WebAuthn
- It can rescue, never spend The contract lets that passkey do exactly one thing: hand the wallet to a new phone. It cannot move a single lira. rotate() only
If the phone is gone
A new phone makes its own key. The old one stops working.
There is nothing to type, because there never was anything to write down. Your passkey says which wallet is yours; the new phone's key takes over; and whoever finds the old handset cannot spend from it afterwards. Every step of that is enforced by the contract on Stellar, not by us — and it is checked against the live network on every build.
Money in.
Money out.
-
Found by its domain
The app reads the anchor's own
stellar.tomland takes nothing else on trust. SEP-1 - Signed in with the phone No password to the anchor. A key on this phone answers its challenge. SEP-10
- Cash in, cash out Lira arrives by bank transfer and leaves to an IBAN, in the anchor's own flow. SEP-6
- Its rate, not ours The price in lira is the anchor's live quote. No anchor answers, no rate is shown. SEP-38
An anchor is the door between Stellar and a bank account. Rosa Pay talks to them through the standards every Stellar wallet uses, so a merchant is never tied to ours — and no API key is involved, because a wallet that speaks one company's private API is welded to that company.
Not a mockup.
On Testnet.
A wallet holding no USDC paying a USDC bill: Soroswap swap and merchant payment in one transaction, authorized by one key in the phone's secure element, fee paid by the relayer.
Inspect settled paymentSTELLAR TESTNETSUCCESS
0.10 USDC- Paid with
- 0.9465832 XLM
- Ledger
- 4,540,761
- Contract
- CAV6…CSVO
-
A passkey authorized a payment
-
A lost phone was replaced
-
300 ₺ in, 148,50 ₺ out