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

Share this project:

Updates