BRD - the simple and secure wallet for bitcoin, ethereum, and other digital assets

Overview

This repository is unmaintained, BRD iOS has moved to https://github.com/breadwallet/brd-mobile

Bread

BRD is the simple and secure wallet for bitcoin, ethereum, and other digital assets. Today, BRD is one of the largest non-custodial mobile wallets used by over 6 million users and protects an estimated nearly $7B USD.

BRD is the best way to get started with bitcoin. Our simple, streamlined design is easy for beginners, yet powerful enough for experienced users.

Fastsync

Fastsync is a new feature in the BRD app that makes Bitcoin wallets sync in seconds, while also keeping BRD technology ahead of the curve as SPV slowly phases out. When Fastsync is enabled the BRD wallet uses our server technology, Blockset to sync, send and receive instantly!

Your Decentralized Bitcoin Wallet

Unlike other iOS bitcoin wallets, BRD users have the option to disable Fastsync converting the wallet into a standalone bitcoin client. It connects directly to the bitcoin network using SPV mode, and doesn't rely on servers that can be hacked or disabled. If BRD the company disappears, your private key can still be derived from the recovery phrase to recover your funds since your funds exist on the blockchain.

Cutting-edge security

BRD utilizes the latest iOS security features to protect users from malware, browser security holes, and even physical theft. The user’s private key is stored in the device keychain, secured by Secure Enclave, inaccessible to anyone other than the user. Users are also able to backup their wallet using iCloud Keychain to store an encrypted backup of their recovery phrase. The backup is encrypted with the BRD app PIN.

Designed with New Users in Mind

Simplicity and ease-of-use is BRD's core design principle. A simple recovery phrase (which we call a recovery key) is all that is needed to restore the user's wallet if they ever lose or replace their device. BRD is deterministic, which means the user's balance and transaction history can be recovered just from the recovery key.

screenshots

Features

  • Supports wallets for Bitcoin, Bitcoin Cash, Ethereum and ERC-20 tokens, Ripple, Hedera, Tezos
  • Single recovery key is all that's needed to backup your wallet
  • Private keys never leave your device and are end-to-end encrypted when using iCloud backup
  • Save a memo for each transaction (off-chain)

Bitcoin Specific Features

Localization

BRD is available in the following languages:

  • Chinese (Simplified and traditional)
  • Danish
  • Dutch
  • English
  • French
  • German
  • Italian
  • Japanese
  • Korean
  • Portuguese
  • Russian
  • Spanish
  • Swedish

Development Setup

  1. Clone the repo: git clone [email protected]:breadwallet/breadwallet-ios.git 2 Update submodules git submodule update --recursive
  2. Install imagemagick and ghostscript brew install imagemagick && brew install ghostscript
  3. Open the breadwallet.xcworkspace file

Advanced Setup

Blockset Client Token

Add your Blockset client token to your app’s public CloudKit database with a record id of: BlockchainDBClientID

WARNING:

Installation on jailbroken devices is strongly discouraged.

Any jailbreak app can grant itself access to every other app's keychain data. This means it can access your wallet and steal your bitcoin by self-signing as described here and including application-identifier * in its .entitlements file.


BRD is open source and available under the terms of the MIT license.

Source code is available at https://github.com/breadwallet

Comments
  • Crash on launch – v.114 (2.0)

    Crash on launch – v.114 (2.0)

    Just updated my application, it crashes on launch.

    Using an iPhone 7+ (iOS 11). Attached is a compressed IPS, it will need symbolicating. Crashes on the main thread.

    breadwallet-2017-09-28-100014.ips.zip

    Edit: A reinstall works for me.

    opened by AaronMT 15
  • Can I haz SegWit Plz?

    Can I haz SegWit Plz?

    I am a big fan of Bread Wallet and I really can't thank you guys enough for all the hard work you guys are doing. Love being able to just scan a QR code and press send.

    I would really, really, really, like to be able to use SegWit to avoid paying high fees and to help the network add more capacity.

    opened by ChuckSRQ 12
  • Please consider using this repository for active development

    Please consider using this repository for active development

    I'd like you to reconsider your stance on using this repository as a primary target for active development.

    In voisine/breadwallet-ios#98, @voisine said:

    I like to point out that closed source wallets require the same level of trust in the provider as hosted wallets.

    In #17, @samuraisam mentioned:

    We only push to this repo on releases now, but would be happy to receive any pull requests!

    There are a few issues:

    1. A lot of users are running your beta release and have no way to verify what they're running.

    2. It appears that you haven't updated this repository; the latest commit, 47c17e4ddf12c3db6176e7b1649e31257e454f6b, is from October 3rd but the most recent App Store release was November 20th.

    I understand that it makes sense to work on some features in private but I really hope you'll consider using this repository as the target for most changes.

    Why do I care? A key reason for why I picked Bread was transparency. From a trust perspective, it's much easier to follow along with incremental changes than every few months when most files in the project have changed. Another argument is being able to contribute pull requests; that's difficult if the source trees diverged significantly.

    opened by tt 7
  • iPhone X Support

    iPhone X Support

    ~~Not yet complete. Most of the UI should look fine now.~~

    TODOs:

    • [x] FaceID references
    • [x] cleanup
    • [x] PIN Required menu constraints

    Not the best way to do things, but acceptable I think. I'll try to finish everything tomorrow :)

    opened by losh11 5
  • Missing package product 'WalletKit'

    Missing package product 'WalletKit'

    Hi, When building iOS project on XCode 12.4, it gives a build error: /Users/.........................../breadwallet-ios/breadwallet.xcodeproj Missing package product 'WalletKit'

    How can i add WalletKit to the project? Through SPM or cocoapods? Thanks for help.

    opened by burhanaras 4
  • BRD Crashes on IOS after XRP transaction

    BRD Crashes on IOS after XRP transaction

    BRD wallet crashed after attempting to send XRP. Won't go past the PIN screen and sometimes crashes on launch now.

    Steps:

    1. open BRD on IOS 13.3.1
    2. Add XRP to wallet
    3. copy address into clipboard
    4. use address to send XRP to BRD
    5. BRD crashes. Won't reopen. Crash then repeat and crash again when entering PIN.

    Tried:

    1. reinstall
    2. reboot
    opened by jkinum 4
  • iPhone X optimization

    iPhone X optimization

    Breadwallet already supports iPhone X, but there are a bunch of layout issues, too small images and the tight coupling of Touch ID == biometrics auth.

    opened by blommegard 4
  • Add an option to show unconfirmed transactions

    Add an option to show unconfirmed transactions

    Currently the wallet only shows the transaction after one confirmation. It would be nice to have an option to show the unconfirmed transactions. For those who want to take the risks or for coins that uses zero-conf.

    One example, I would like to show my friend how easy it's to send and receive and I don't want to wait 10 minutes or so for confirmations.

    opened by damascene 3
  • Secure Enclave Keys

    Secure Enclave Keys

    In your README, you mention this:

    Private keys are stored only in the secure enclave of the user's phone, inaccessible to anyone other than the user.

    Is this true? I thought that the Secure Enclave used secp256r1 to generate private keys, whereas Bitcoin used secp256k1 (r vs k). So, I don't understand how it works.

    Can you explain in details, how do you use Secure Enclave on iOS?

    opened by ydeveloperios 3
  • Translations for Polish 🇵🇱

    Translations for Polish 🇵🇱

    I can't find this project on PhraseApp :/

    Here are translations for iOS app:

    "Buy Bitcoin" -> "Kup Bitcoina"

    "Trade" -> "Wymiana"

    "Menu" -> "Opcje"

    "Scan QR Code" -> "Skanuj kod QR"

    "Syncing XXX%" -> "Synchronizowanie XXX%"

    "Manage Wallets" -> "Zarządzaj portfelami"

    "Preferences" -> "Preferencje"

    "Security Settings" -> "Ustawienia Bezpieczeństwa" lub "Bezpieczeństwo"

    "Support" -> "Wsparcie"

    "Leave us a Review" -> "Napisz nam opinię"

    "About" -> "O aplikacji"

    "Total Assets" -> "Łącznie posiadasz"

    "Send" -> "Wyślij"

    "Receive" -> "Otrzymaj"

    "Balance" -> "Stan konta"

    "sent" -> "wysłane"

    "received" -> "otrzymane"

    "pending" -> "oczekujące"

    "complete" -> "zakończone"

    "Your transactions will appear here." -> "Twoje transakcje pojawią się tutaj."

    "XX zł per XX" -> "XX zł za XX"

    "Cancel" -> "Anuluj"

    "Trade Your:" -> "Wymień twoim:"

    "Search..." -> "Szukaj..."

    "Search" -> "Szukaj"

    "History" -> "Historia"

    "Loading" -> "Wczytywanie"

    "Status" -> "Status"

    "Service" -> "Usługa"

    "Delivery Date" -> "Data otrzymania"

    "Total price paid" -> "Całkowity koszt zakupu"

    "Display Currency" -> "Lokalna waluta"

    "Bitcoin Settings" -> "Ustawienia Bitcoina"

    "Bitcoin Cash Settings" -> "Ustawienia Bitcoin Cash"

    "Share Anonymous Data" -> "Wyślij anonimowe dane"

    "Reset to Default Currencies" -> "Przywróć domyślne waluty"

    "Add Wallets" -> "Dodaj portfele"

    "Hide" -> "Ukryj"

    "Bitcoin Display Unit" -> "Wyświetlana jednostka bitcoina"

    "Exchange Rate" -> "Kurs Wymiany"

    "Face ID Spending Limit" -> "Limit przelewów z Face ID"

    "Sync Blockchain" -> "Synchronizacja łańcucha"

    "When to Sync?" -> "Kiedy zsynchronizować?"

    "If a transaction shows as completed on the network but not in your BRD." -> "Jeśli transakcja jest zakończona w sieci, ale niema jej w Twoim portfelu."

    "You repeatedly get an error saying your transaction was rejected." -> "Gdy ciągle pojawia się błąd informujący, że transakcja została odrzucona."

    "Start Sync" - "Rozpocznij synchronizację"

    "You will not be able to send money while syncing with the blockchain." -> "Nie będziesz w stanie wysyłać środków podczas synchronizacji z łańcuchem."

    "Redeem Private Key" -> "Wykorzystaj klucz prywatny"

    "Import Wallet" -> "Zaimportuj portfel"

    "Wallet to be imported" -> "Portfel do zaimportowania"

    "Your BRD Wallet" -> "Twór portfel BRD"

    "Importing a wallet transfers all the money from other wallet into your BRD wallet using a single transaction." -> "Importowanie portfela przenosi wszystkie pieniądze z innego portfela do portfela BRD za pomocą pojedynczej transakcji."

    "Importing a wallet does not include transaction history or other details." -> "Importowanie portfela nie obejmuje historii transakcji ani innych szczegółów."

    "Scan Private Key" -> "Skanuj klucz prywatny"

    "Share Data?" -> "Udostępnić dane?"

    "Help improve BRD by sharing your anonymous data with us. This does not include any financial information. We respect your financial privacy." -> "Pomóż ulepszyć BRD, udostępniając nam anonimowe dane. Nie obejmuje to żadnych informacji finansowych. Szanujemy twoją prywatność."

    "Share Anonymous Data?" - "Udostępnić Anonimowe Dane?"

    "Update PIN" -> "Zaktualizuj PIN"

    "Face ID" -> "Face ID" or "Skanowanie twarzy"

    "Paper Key" -> "Papierowy klucz"

    "Enter your current PIN" -> "Wprowadź twój aktualny PIN"

    "Use your face to unlock your BRD and send money up to a set limit." -> "Użyj swojej twarzy, aby odblokowywać BRD i wysyłać pieniądze bez podawania PINu."

    "Enable Face ID for BRD" -> "Włącz Face ID w BRD" or "Włącz skanowanie twarzy w BRD"

    "Spending limit:" -> "Limit autoryzacji dla przelewów"

    "You can customize your Face ID spending limit from the" -> "Możesz dostosować limit przelewów wykonanych za pomocą Face ID z poziomu:"

    "Face ID Spending Limit Screen" -> "ekranu ustawień Face ID"

    "Paper Key" - "Papierowy Klucz"

    "Your paper key is the only way to restore your BRD if your phone is lost, stolen, broken, or upgraded." -> "Twój papierowy klucz to jedyny sposób na przywrócenie portfelu BRD w przypadku zgubienia, kradzieży, uszkodzenia lub zmiany telefonu."

    "We will show you a list of words to write down on a piece of paper and keep safe." -> "Pokażemy ci listę słów, zapisz je na kartce i zachowaj w bezpiecznym miejscu."

    "Write Down Paper Key Again" -> "Zapisz ponownie papierowy klucz"

    "You last wrote down your paper key on XXX" -> "Ostatnio zapisałeś swój papierowy klucz XXX"

    "Privacy Policy" - "Polityka Prywatności"

    "Made by the global BRD team." -> "Stworzone przez zespół BRD"

    "Unlink from this device" -> "Odłącz od tego urządzenia"

    "Bitcoin Nodes" -> "Węzły bitcoina"

    "received from" -> "otrzymano od"

    "Show Details" -> "Pokaż szczegóły"

    "Hide Details" -> "Ukryj szczegóły"

    "Total Fee" -> "Całkowita opłata"

    "Via" -> "Z"

    "Initialized" -> "Zainicjowano"

    "Memo -> "Opis"

    "Add memo..." -> "Dodaj opis..."

    "Transaction ID" -> "ID Transakcji"

    "Confirmed in Block" -> "Potwierdzone bloki"

    "Not Confirmed" -> "Niepotwierdzone"

    "Receiving" -> "Odbieranie"

    "receiving via xxx" -> "odbieranie od xxx"

    "sending to xxx" -> "wysyłanie do xxx"

    "Confirm Trade" -> "Potwierdź wymianę"

    "For" -> "Za"

    "Price:" -> "Cena:"

    "Delivery:" -> "Czas realizacji:"

    "Total Charge:" -> "Łączna opłata:"

    "Buy" -> "Kup"

    "Confirmation" -> "Potwierdzenie"

    I don't know: "Synced through"

    I spent some time on it, please add it in the update.

    Greetings from Poland ❤

    opened by michaldev 3
  • When using Ropsten testnet for ETH,

    When using Ropsten testnet for ETH, "Could not create transaction, invalid sender" is returned when sending ETH.

    When the IOS BRD wallet code is modified to point to the Ropsten testnet, there is a present behavior that all send operations of ETH are resulting in the following error "Could not create transaction" "invalid sender". I re-tested this with a local build which previously passed testing using Ropsten, and this version has experienced the same results.

    please note I have not tested this using the official BRD IOS Ropsten build, so I would like to confirm that this is not some problem with my local environment, or application.

    I first inquired to the BRD support email, and they have asked that I open an issue on this. I look forward to any further information that may become available regarding this error.

    opened by edrotthoff 3
  • How to transfer out of BTC

    How to transfer out of BTC

    How to migrate BTC from bread wallet to Coinbase wallet now that Bread wallet is acquired by Coinbase When I extract BTC from bread wallet to other wallet, it shows that ETH should pay the fee, but my bread wallet does not have ETH currency, and bread has stopped the virtual currency conversion function now. I cannot convert ETH currency, so I cannot transfer BTC out

    opened by 5201413 0
  • Importing Wallet taking time

    Importing Wallet taking time

    I am trying to import a wallet from a 'paper wallet' in to the digital wallet, it was been on the Importing Wallet screen for sometime now (20 mins) and the wheel is still turning. How long does this process take and has anyone else experienced this before?

    opened by andyoungy1 0
  • Xcode 12.5 won't compile from tip, needs WalletKit

    Xcode 12.5 won't compile from tip, needs WalletKit

    Hey team! Long time.

    Per the Readme, I cloned this repo, then executed git submodule update --recursive, which exited quietly and quickly.

    Xcode now says: "Missing Package product 'WalletKit'".

    I'm an Xcode beginner; if I wanted to add WalletKit library directly to the build, how do I do that? Failing that, is there a working commit that will pull WalletKit in with the git submodule update command?

    opened by vessenes 5
Owner
bread
For security disclosures please email [email protected]
bread
TabBar do aplicativo do Mercado Bitcoin para iOS usando SwiftUI

TabBar do aplicativo do Mercado Bitcoin para iOS usando SwiftUI Screenshots Vídeos Vídeo on YouTube Requisitos iOS 14 SwiftUI Xcode 12 Meta Github: ht

Raphael Cerqueira 2 May 22, 2022
EU Digital COVID Certificate Kit for the Apple Platform  (unofficial)

EU Digital COVID Certificate Kit A Swift Package to decode, verify and validate EU Digital COVID Certificates for iOS, tvOS, watchOS and macOS Disclai

Sven Tiigi 32 Oct 4, 2022
AR Basketball for Moscow Digital Academy Students

Basketball 2020 AR Basketball for Moscow Digital Academy Students Installation Clone the project and compile in Xcode 12 or above. iPhone 6s with supp

Vladimir Shevtsov 0 Dec 11, 2021
Nextflix - Integrating project of the IOS development course by Digital House

nextflix Projeto integrador do curso de desenvolvimento IOS pela Digital House A

Thiago Leite 2 Feb 1, 2022
A swift package(SPM) with iOS UI component that loads and displays images from remote urls or local assets and displays in a slide-show form with auto scroll feature.

MDBannersView A swift package with an iOS UI component that loads and displays images from remote urls, local assets and displays in a slide-show form

Madhav Deva 2 Feb 5, 2022
Icons generator for XCode assets project

SwiftUI-PictGen Icons generator for XCode assets project. Small project in Swift

Laurent Llexti 0 Dec 29, 2021
Secretive is an app for storing and managing SSH keys in the Secure Enclave.

Secretive is an app for storing and managing SSH keys in the Secure Enclave.

Max Goedjen 4.9k Jan 1, 2023
Open source, non-custodial Terra Wallet focused on privacy iOS App

iOS Open source non-custodial Terra Wallet. We send your finance from the Earth to the Moon Running the project To run this project update / fetch the

Terra Planet 7 May 22, 2022
Nova Wallet iOS - Next get mobile app for Polkadot & Kusama ecosystem

Next gen application for Polkadot & Kusama ecosystem, transparent & community-oriented, focused on convenient UX/UI, fast performance & security.

Novasama Technologies 15 Dec 15, 2022
OONI Probe is free and open source software designed to measure internet censorship and other forms of network interference.

OONI Probe iOS OONI Probe is free and open source software designed to measure internet censorship and other forms of network interference. Click here

Open Observatory of Network Interference (OONI) 59 Nov 2, 2022
App which lets two people share their social media details by simply putting one phone on top of the other ("tapping"). Currently in development by Nikita Mounier.

Tap It Tap It enables two people to seamlessly share their social media information (e.g. Instagram, Snapchat, phone number) by simply placing one scr

Nikita Mounier 24 Oct 21, 2022
EzNews - A simple and easy to use News app for iOS and iPadOS. It uses NewsAPI as its backend

EzNews This was my first proper Swift app. Its a news app made for iOS and iPadO

Arnav Singhal 4 Apr 30, 2022
A simple App to Track the status of Covid-19 around the World. Using SwiftUI and GraphQL

CovidUI CovidUI is a simple App to Track the status of Covid-19 around the World. This is a simple App I made to track the spread of Covid-19 for me a

Mathias Quintero 77 Dec 14, 2022
Simple app to show usage of SwiftUI and Combine

Podcasts Simple app to show usage of SwiftUI and Combine. The app shows a list of podcasts fetched from listennotes and it can be played. Status: Work

Alberto Penas Amor 27 Oct 4, 2022
A Simple ToDo app developed using SwiftUI, Combine and Coredata

SwiftUI_Tasks Tasks is simple ToDo app developed using SwiftUI and Coredata which having features like Add,Delete,Rearrange and send notification base

Shankar Madeshvaran 77 Dec 18, 2022
Simple alternate app icons with Xcode 13 and SwiftUI

XCode 13 Alternate App Icons Preamble With the beta of XCode 13 creating alternate app icons is now much simpler and requires much less manual steps t

Jake Nelson 23 Jul 19, 2022
This is the simple iOS app for browsing and saving recipes, using Spoonacular API

TastyDojoApp This is the simple iOS app for browsing and saving recipes, using Spoonacular API This project includes: MVVM Pattern Searching through t

null 5 Jul 25, 2022
A simple Job Portal App built with Swift UI and Appwrite

?? Job Portal with Apple (Swift UI) A simple Job Portal App built with Swift UI and Appwrite ?? Getting Started ?? Install Appwrite Follow our simple

Appwrite 23 Nov 22, 2022
A simple and lightweight Swift package which provides a SwiftUI view for interactive geo coordinates input!

LocationPicker for SwiftUI LocationPicker for SwiftUI is a very simple and lightweight Swift package which provides you a SwiftUI view for interactive

Alessio Rubicini 17 Dec 7, 2022