dev
md 189 lines 7.11 KB
Rendered Raw
1 <div align="center">
2
3 ![logo](.github/assets/cake-wallet-gh-header-2.svg)
4
5 </div>
6
7 <div align="center">
8
9 [<img height="42" src=".github/assets/app-store-badge.svg">](https://apps.apple.com/us/app/cake-wallet/id1334702542?platform=iphone)
10 [<img height="42" src=".github/assets/google-play-badge.png">](https://play.google.com/store/apps/details?id=com.cakewallet.cake_wallet)
11 [<img height="42" src=".github/assets/f-droid-badge.png">](https://fdroid.cakelabs.com)
12 [<img height="42" src=".github/assets/mac-store-badge.svg">](https://apps.apple.com/us/app/cake-wallet/id1334702542?platform=mac)
13 [<img height="42" src=".github/assets/linux-badge.svg">](https://github.com/cake-tech/cake_wallet/releases)
14
15 </div>
16
17 # Cake Wallet
18
19 [Cake Wallet](https://cakewallet.com) is an open-source, non-custodial, and private multi-currency crypto wallet for Android, iOS, macOS, and Linux.
20
21 Cake Wallet includes support for several cryptocurrencies, including:
22 * Monero (XMR)
23 * Bitcoin (BTC)
24 * Ethereum (ETH)
25 * Litecoin (LTC)
26 * Bitcoin Cash (BCH)
27 * Polygon (POL)
28 * Base (BASE)
29 * Arbitrum (ARB)
30 * Solana (SOL)
31 * Tron (TRX)
32 * Nano (XNO)
33 * Zano (ZANO)
34 * Decred (DCR)
35
36 ## Features
37
38 ### App-Wide Features
39
40 * Completely noncustodial. *Your keys, your coins.*
41 * Built-in exchange for dozens of pairs
42 * Easily pay cryptocurrency invoices with fixed rate exchanges
43 * Buy cryptocurrency (BTC/LTC/XMR/ETH) with credit/debit/bank
44 * Sell cryptocurrency by bank transfer
45 * Scan QR codes for easy cryptocurrency transfers
46 * Create several wallets
47 * Select your own custom nodes/servers
48 * Address book
49 * Backup to an external location or iCloud
50 * Send to OpenAlias, Unstoppable Domains, Yats, and FIO Crypto Handles
51 * Set desired network fee level
52 * Store local transaction notes
53 * Extremely simple user experience
54 * Convenient exchange and sending templates for recurring payments
55 * Create donation links and invoices in the receive screen
56 * Robust privacy settings (eg: Tor-only connections)
57 * Robust security settings (eg: Cake 2FA)
58
59 ### Monero Specific Features
60
61 * The Monero view key is retained on the device for maximum privacy
62 * Full support for Monero subaddresses and accounts
63 * Specify restore height for faster syncing
64 * Specify multiple recipients for batch sending
65 * Optionally set Monero nodes as trusted for faster syncing
66 * Specify a proxy for Monero nodes, compatible with Tor and i2p
67
68 ### Bitcoin Specific Features
69
70 * Bitcoin coin control (specify specific outputs to spend)
71 * Automatically generate new addresses
72 * Specify multiple recipients for batch sending
73
74 ### Ethereum Specific Features
75
76 * Store ETH and all ERC-20 tokens
77 * Add custom tokens by contract address
78 * Enable or disable Etherscan for transaction history
79
80 ### Litecoin Specific Features
81
82 * Litecoin coin control (specify specific outputs to spend)
83 * Automatically generate new addresses
84 * Specify multiple recipients for batch sending
85
86 # Monero.com by Cake Wallet for Android and iOS
87
88 ## Open Source Monero-Only Wallet
89
90 *Exchanging to/from other assets is also supported.*
91
92 ## Links
93
94 * Website: https://monero.com
95 * App Store (iOS): https://apps.apple.com/app/id1601990386
96 * Google Play: https://play.google.com/store/apps/details?id=com.monero.app
97 * F-Droid: https://fdroid.cakelabs.com
98 * APK: https://github.com/cake-tech/cake_wallet/releases
99
100 ### APK Verification
101
102 APK releases on GitHub, Accrescent, and F-Droid use the same key. They can easily be verified using [apksigner](https://developer.android.com/tools/apksigner#options-verify) or [AppVerifier](https://github.com/soupslurpr/AppVerifier).
103
104 See below for Cake Wallet's SHA-256 signing certificate hash:
105
106 ```
107 com.cakewallet.cake_wallet
108 C5:40:53:AB:0F:10:D9:54:17:62:A3:DA:76:65:AE:3D:BA:5E:7C:74:3A:B4:F1:08:A5:34:9D:62:AC:10:6E:F5
109 ```
110
111 # Support
112
113 We have 24/7 free support. Please contact support@cakewallet.com
114
115 We have excellent user guides, which are also open-source and open for contributions: https://docs.cakewallet.com
116
117 # Build Instructions
118
119 More instructions to follow
120
121 For instructions on how to build for Android: please view file `howto-build-android.md`
122
123 # Contributing
124
125 ## Improving translations
126
127 Edit the applicable `strings_XX.arb` file in `res/values/` and open a pull request with the changes.
128
129 ## Current list of language files:
130
131 - English
132 - Spanish
133 - French
134 - German
135 - Italian
136 - Portuguese
137 - Dutch
138 - Polish
139 - Croatian
140 - Russian
141 - Ukrainian
142 - Hindi
143 - Japanese
144 - Chinese
145 - Korean
146 - Thai
147 - Arabic
148 - Turkish
149 - Burmese
150 - Urdu
151 - Bulgarian
152 - Czech
153 - Indonesian
154 - Hausa
155 - Yoruba
156
157 ## Add a new language
158
159 1. Create a new `strings_XX.arb` file in `res/values/`, replacing XX with the language's [ISO 639-1 code](https://en.wikipedia.org/wiki/ISO_639-1).
160
161 2. Edit the strings in this file, replacing XXX below with the translation for each string.
162
163 `"welcome": "Welcome to",` -> `"welcome": "XXX",`
164
165 3. For strings where there is a variable, denoted by a $ symbol and braces, such as ${status}, the string in braces should not be translated. For example, when editing line 106:
166
167 "time" : "${minutes}m ${seconds}s"
168
169 The only parts to be translated, if needed, are the values m and s after the variables.
170
171 4. Add the language to `lib/entities/language_service.dart` under both `supportedLocales` and `localeCountryCode`. Use the name of the language in the local language and in English in parentheses after for `supportedLocales`. Use the [ISO 3166-1 alpha-3 code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) for `localeCountryCode`. You must choose one country, so choose the country with the most native speakers of this language or is otherwise best associated with this language.
172
173 5. Add a relevant flag to `assets/images/flags/XXXX.png`, replacing XXXX with the 3 letters localeCountryCode. The image must be 42x26 pixels with 3 pixels of transparent margin on all 4 sides. You can resize the flag with [paint.net](https://www.getpaint.net/) to 36x20 pixels, expand the canvas to 42x26 pixels with the flag anchored in the middle, and then manually delete the 3 pixels on each side to make it transparent. Or you can use another program like Photoshop.
174
175 6. Add the new language code to `tool/utils/translation/translation_constants.dart`
176
177 ## Add a new fiat currency
178
179 1. Check with [Cake Wallet support](https://guides.cakewallet.com) to see if the desired new fiat currency is available through our fiat API. Not all fiat currencies are.
180
181 2. If the currency is associated strongly with a specific issuing country, map the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code with the applicable [ISO 3166-1 alpha-3 code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) in `lib/entities/fiat_currency.dart`. If the currency is used in a whole region or organization, then map with a reasonable interpretation of this (eg: eur countryCode for EUR symbol).
182
183 3. Add the raw mapping underneath in `lib/entities/fiat_currency.dart` following the same format as the others.
184
185 4. Add a flag of the issuing country or organization to `assets/images/flags/XXXX.png`, replacing XXXX with the ISO 3166-1 alpha-3 code used above (eg: `usa.png`, `eur.png`). Do not add this if the flag with the same name already exists. The image must be 42x26 pixels with a 3 pixels of transparent margin on all 4 sides.
186
187 ---
188
189 Copyright (C) 2018-2023 Cake Labs LLC