Inspiration
At bitcoin++ Floripa, our Canadian teammate, Matthew, tried to buy lunch—but the vendor wouldn’t accept cash.
They insisted on Pix, Brazil’s widely accepted proto-CBDC.
But Matthew had a problem. Even if he wanted to use Pix, he couldn’t. It requires a Brazilian bank account, which is only available to residents and citizens.
He eventually got a Brazilian friend to pay for him, but the experience was far from ideal.
What it does
NostrPIX lets anyone pay Brazilians in their local currency using an NWC-connected Lightning wallet. The web app allows users to enter a Pix key or scan a QR code, and it automatically facilitates the payment—sending Lightning funds to a Brazilian bank account holder, who then pays the Pix invoice.
How we built it
We’re using React for the frontend, Express.js for the backend API, Supabase for data storage, and integrating a Brazilian personal banking API alongside Nostr Wallet Connect for payments management.
Challenges we ran into
We’re just getting started, but we expect challenges with:
- Scanning QR codes from a web app
- Implementing NWC (it’s our first time)
- Handling certain Pix invoices, especially dynamic ones, which are common at Brazilian POS terminals
Accomplishments that we're proud of
Paying PIX with Bitcoin.
What we learned
Overcoming payments challenges in Brazil
What's next for NostrPIX
Anyone can sign-up to be a PIX liquidity provider and be reimbursed in sats!!!
Built With
- bitcoin
- express.js
- fedi
- lightning
- nostr
- nwc
- pix
- react
- supabase
- typescript
- webln

Log in or sign up for Devpost to join the conversation.