A highly experimental, self-custody Lightning wallet built to work for iOS and macOS.

Overview

Surge

Surge is a highly experimental, self-custody Lightning wallet built to work for iOS and macOS.

Motivation

Tools and infrastructure for running a non-custodial Lightning wallet is advancing fast. Surge aims to be a project that developers can reference for "recipes" on how to implement a Lightning wallet with Lightning Development Kit.

This project will strive and do its best in demonstrating idioms for implementation on Apple platforms. It includes things like properly handling lightning:// URIs to encrypting and persisting channel material on-disk.

Therefore, if you see something that looks like bad Swift code, please file an issue! :)

Support

Surge currently is aiming to support the following environments/setups:

  • Regtest (with Polar)
  • Testnet w/ Bitcoin Core
  • Testnet w/ Electrum

License

See LICENSE.md

You might also like...
Smart Wallet - iOS application for managing money
Smart Wallet - iOS application for managing money

This is an iOS application for managing money written in Swift language. Different reports are presented in the application to help the user managing the money and keeping track of it easily.

IOTA wallet.rs Swift binding

IOTA wallet.rs Swift Binding Swift binding for the official wallet.rs Rust library for IOTA Ledger. The Swift binding links and communicates with the

SwiftUI Prototyping Wallet App Interactive UI
SwiftUI Prototyping Wallet App Interactive UI

Wallet SwiftUI Prototyping Wallet App Interactive UI

Cross-platform πŸ‘» Crypto Wallet Generator in Go

coingrig-go-wallet Cross-platform πŸ‘» Crypto Wallet Generator in Go Build Run ./build.sh Artifacts iOS .xcframework is in ios/ directory Android .jar a

Rainbow - 🌈the Ethereum wallet that lives in your pocket
Rainbow - 🌈the Ethereum wallet that lives in your pocket

🌈️ the Ethereum wallet that lives in your pocket! πŸ“²οΈ Available on the iOS App Store. πŸ€– Android Beta available on Google Play Store 🐦️ Foll

Encryptr is a zero-knowledge, cloud-based e-wallet / password manager powered by Crypton

Encryptr is a zero-knowledge, cloud-based e-wallet / password manager powered by Crypton

Swift UI component - Stories instagram, slideshow, crypto wallet intro
Swift UI component - Stories instagram, slideshow, crypto wallet intro

SwiftUI and Combine - Stories intro multi-platform widget Features Long tap - pause stories showcase Tap - next story Leeway - pause before start stor

CryptoTrackerMenuBar - A Realtime Crypto Tracker macOS Menu Bar App built with SwiftUI & WebSocket
CryptoTrackerMenuBar - A Realtime Crypto Tracker macOS Menu Bar App built with SwiftUI & WebSocket

Realtime Crypto Tracker macOS Menu Bar App - SwiftUI & WebSocket A Realtime Cryp

Elegant Web3js functionality in Swift. Native ABI parsing and smart contract interactions on Ethereum network.
Elegant Web3js functionality in Swift. Native ABI parsing and smart contract interactions on Ethereum network.

You can ask for help in our Discord Channel web3swift Swift implementation of web3.js functionality ⚑ Interaction with remote node via JSON RPC πŸ’­ Sma

Comments
  • Encrypt channel material on disk

    Encrypt channel material on disk

    NSKeyed(Un)Archiver works okay for storing the network graph, channel monitors, and channel manager on disk.

    However, we should encrypt that data on disk since they can leak through the Documents directory and can contain information related to the user's payments

    opened by jurvis 0
  • Store key seed with secure enclave/keychain

    Store key seed with secure enclave/keychain

    KeysManager takes in a 32-byte seed to derive keys. We generate one here but currently persist it trivially by writing it to disk unencrypted.

    Instead, we should store it in the Keychain or, even better, the Secure Enclave. We likely will need to support both, for Macs without a touch bar, Touch ID, or Apple Silicon.

    opened by jurvis 0
  • Add intermediary loading states for channel opens

    Add intermediary loading states for channel opens

    Instead of requiring users to leave the app open while the channel opens, somehow persist information about channels that are pending opens, and show the progress in UI

    opened by jurvis 0
  • Opening a channel with a peer on Regtest

    Opening a channel with a peer on Regtest

    Be able to select a peer, input the amount of liquidity to lock in, and receive an address to fund the channel

    Instead of requiring users to manually send the funds and mine blocks in CLI, let's do it automatically for them.

    opened by jurvis 0
Owner
Jurvis Tan
Engineer @Casa. Applied Math @ USC.
Jurvis Tan
Fearless Wallet - a mobile wallet designed for the decentralized future on the Kusama and Polkadot networks

Fearless Wallet is a mobile wallet designed for the decentralized future on the Kusama and Polkadot network, with support on iOS and Android platforms. The best user experience, fast performance, and secure storage for your accounts. Development of Fearless Wallet is supported by Kusama Treasury grant.

γ‚½γƒ©γƒŸγƒ„ 68 Dec 14, 2022
Ethereum-wallet: 100% native ethereum wallet, created with iOS version of Geth client

Ethereum-wallet: 100% native ethereum wallet, created with iOS version of Geth client

DE MINING 4 Dec 11, 2022
Wei Wallet - Ethereum wallet app for iOS

Wei Wallet - Ethereum wallet app for iOS Getting Started Download the latest Xcode Clone this repository Install Carthage, Cocoapods Run make bootstra

Popshoot, Inc. 277 Nov 17, 2022
An open-source Ethereum wallet built with SwiftUI

lil wallet welcome to lil wallet. it's an open-source Ethereum wallet built with SwiftUI there are two main views - coins and objects. coins are your

Jordan Singer 140 Jan 3, 2023
A simple Proof-of-Work Blockchain built in Swift

Blockchain in Swift A simple Proof-of-Work Blockchain built in Swift. Requirements Xcode 13.0 Swift 5.2 Vapor 4.49 Swift NIO 2.33.0 Getting started Cl

Felipe Ricieri 5 Sep 25, 2022
Full Bitcoin library for iOS, implemented on Swift. SPV wallet implementation for Bitcoin, Bitcoin Cash and Dash blockchains.

BitcoinKit-iOS Bitcoin, BitcoinCash(ABC) and Dash wallet toolkit for Swift. This is a full implementation of SPV node including wallet creation/restor

Horizontal Systems 231 Dec 2, 2022
Trust - Ethereum Wallet and Web3 DApp Browser for iOS

Trust - Ethereum Wallet and Web3 DApp Browser for iOS Welcome to Trust's open source iOS app! Getting Started Download the Xcode 9 release. Clone this

Trust Wallet 1.4k Dec 31, 2022
Multi-wallet for Bitcoin, Ethereum, Binance Smart Chain and other emerging blockchains

Multi-wallet for Bitcoin, Ethereum, Binance Smart Chain and other emerging blockchains. Non-custodial storage, decentralized exchange, and extensive analytics for thousands of tokens and NFTs. Implemented on Swift.

Horizontal Systems 446 Jan 3, 2023
BitcoinCore for Bitcoin, BitcoinCash(ABC), Litecoin and Dash wallet toolkit for Swift.

BitcoinCore for Bitcoin, BitcoinCash(ABC), Litecoin and Dash wallet toolkit for Swift. This is a full implementation of SPV node including wallet creation/restore, synchronization with network, send/receive transactions, and more.

Horizontal Systems 4 Nov 23, 2022
AlphaWallet - Advanced, Open Source Ethereum Mobile Wallet & dApp Browser for iOS

AlphaWallet - Advanced, Open Source Ethereum Mobile Wallet & dApp Browser for iOS

AlphaWallet 475 Jan 5, 2023