Inspiration
BTC can earn on Starknet but isn’t instantly spendable; Lightning is instant but idle. We wanted one BTC account that earns yield yet can pay any Lightning invoice instantly, non-custodially.
What it does
Paysat = Starknet BTC vault + a Lightning reserve that pays invoices on users’ behalf. User locks funds under the invoice hash H; our node pays; if successful we learn preimage R and trustlessly claim from the lock. Batch rebalancing (swap in/out) amortizes bridge costs; funds keep earning until payment time.
How we built it
Starknet contracts: SHA-256 hashlock+timelock escrow (lock/claim/refund) with per-user caps, nonce/deadline, and events. Coordinator service: decode BOLT11 → call lock → pay via our Lightning node → on success call claim(H,R); else refund after expiry. Interface: react-native mobile first app.
Challenges we ran into
Accomplishments that we're proud of
End-to-end instant Lightning payment with non-custodial user funds. Working demo of payment and invoice. Robust overall design.
What we learned
Learrned how Lightning works.
What's next for Paysat
Production grade implementation:
- Robust databases
- Treasuries re-balancing algo, bridge starknet <-> lightning
- Improve payments speed and UX
- Invisible accounts with passkeys and emails
Built With
- cairo
- react-native
Log in or sign up for Devpost to join the conversation.