damus

nostr ios client
git clone git://jb55.com/damus
Log | Files | Refs | README | LICENSE

README.md (9200B)


      1 <div align="center">
      2 
      3 <img src="./damus/Assets.xcassets/damus-home.imageset/damus-home@2x.png" alt="Damus Logo" title="Damus logo" width=""/>
      4 
      5 # Damus
      6 
      7 The social network you control
      8 
      9 A twitter-like [nostr][nostr] client for iPhone, iPad and MacOS. 
     10 
     11 [![License: GPL-3.0](https://img.shields.io/github/license/damus-io/damus?labelColor=27303D&color=0877d2)](/LICENSE)
     12 
     13 ## Download and Install
     14 
     15 [![Apple](https://img.shields.io/badge/Apple-%23000000.svg?style=for-the-badge&logo=apple&logoColor=white)](https://apps.apple.com/us/app/damus/id1628663131)
     16 
     17 ## Supported Platforms
     18 
     19 iOS 16.0+ β€’ macOS 13.0+
     20 
     21 <img src="./demo1.png" width="70%" height="50%" />
     22 
     23 </div>
     24 
     25 [nostr]: https://github.com/fiatjaf/nostr
     26 
     27 ## How is Damus better than X/Twitter?
     28 There are no toxic algorithms.\
     29 You can send or receive zaps (satoshis) without asking for permission.\
     30 [There is no central database](https://fiatjaf.com/nostr.html). Therefore, Damus is censorship resistant.\
     31 There are no ads.\
     32 You don't have to reveal sensitive personal information to sign up.\
     33 No email is required. \
     34 No phone number is required. \
     35 Damus is free and open source software. \
     36 There is no Big Tech moat. Therefore, seamless interoperability with thousands or millions of other nostr apps is possible, and is how [Damus and nostr win](https://www.youtube.com/watch?v=qTixqS-W1yo).
     37 
     38 ## If there are no ads, how is Damus funded?
     39 Damus offers a paid subscription 🟣 purple 🟣 https://damus.io/purple/. \
     40 Initial benefits include a unique subscriber number, subscriber badge, and auto-translate powered by DeepL.
     41 
     42 Damus has also graciously received donations or grants from hundreds of Damus users, [Opensats](https://opensats.org/), and the [Human Rights Foundation](https://hrf.org/).
     43 
     44 ## Spec Compliance
     45 
     46 damus implements the following [Nostr Implementation Possibilities][nips]
     47 
     48 - [NIP-01: Basic protocol flow][nip01]
     49 - [NIP-04: Encrypted direct message][nip04]
     50 - [NIP-08: Mentions][nip08]
     51 - [NIP-10: Reply conventions][nip10]
     52 - [NIP-12: Generic tag queries (hashtags)][nip12]
     53 - [NIP-19: bech32-encoded entities][NIP19]
     54 - [NIP-21: nostr: URI scheme][NIP21]
     55 - [NIP-25: Reactions][NIP25]
     56 - [NIP-42: Authentication of clients to relays][nip42]
     57 - [NIP-56: Reporting][nip56]
     58 
     59 [nips]: https://github.com/nostr-protocol/nips
     60 [nip01]: https://github.com/nostr-protocol/nips/blob/master/01.md
     61 [nip04]: https://github.com/nostr-protocol/nips/blob/master/04.md
     62 [nip08]: https://github.com/nostr-protocol/nips/blob/master/08.md
     63 [nip10]: https://github.com/nostr-protocol/nips/blob/master/10.md
     64 [nip12]: https://github.com/nostr-protocol/nips/blob/master/12.md
     65 [nip19]: https://github.com/nostr-protocol/nips/blob/master/19.md
     66 [nip21]: https://github.com/nostr-protocol/nips/blob/master/21.md
     67 [nip25]: https://github.com/nostr-protocol/nips/blob/master/25.md
     68 [nip42]: https://github.com/nostr-protocol/nips/blob/master/42.md
     69 [nip56]: https://github.com/nostr-protocol/nips/blob/master/56.md
     70 
     71 
     72 ## Getting Started on Damus 
     73 
     74 ### Damus iOS
     75 1) Get the Damus app on the iOS App Store: https://apps.apple.com/ca/app/damus/id1628663131
     76 
     77 #### βš™οΈ Settings (gear icon, top right)
     78 - Relays: You can add more relays to send your notes to by tapping the "+". 
     79   - Find more relays to add: https://nostr.info/relays/ 
     80 - Public Key (pubkey): Your public, personal address and how people can find and tag you
     81  - Secret Key: Your *private* key unique to you. Never share your private key publicly and share with other clients at your own risk!
     82    - Save your keys somewhere safe
     83  - Log out
     84 
     85 #### 🏠 Personal Feed (home icon, bottom navigation)
     86 - Feed from everyone you follow
     87 - Can post notes by tapping the blue + button
     88 
     89 #### Notes (under 🏠 Personal Feed)
     90 - Sending a Note is easy and it goes to both your 🏠 Personal and πŸ” Global Feeds 
     91 - To tag a user you must grab their pubkey:
     92   1. Search their username in the search bar at the top of the πŸ” Global Feed and click their profile
     93   2. Tap the πŸ”‘ icon which will copy their pubkey to your clipboard
     94   3. Go back to your 🏠 Personal Feed and tap the blue + button to compose your Note
     95   4. Add @ directly followed by the pubkey (e.g., `@npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s`)
     96 - You can also tap the ellipsis menu of a Note (three dots in top right of note) to grab their User ID aka pubkey or Note ID to link directly to a Note.
     97 - Currently you can't delete your Notes in the iOS app
     98 - Share images by pasting the image url which you can grab from nostr.build, imgbb, imgur, etc. (i.e., `https://i.ibb.co/2SHZbwm/alpha60.jpg`). Currently images only load for people you follow in the 🏠 Personal Feed. Images are not automatically loaded in πŸ” Global Feed
     99 - Engaging with Notes
    100   - πŸ’¬ Replying to a Note: Tap the chat icon underneath the note. This will show up in the users’ notifications and in your 🏠 Personal and πŸ” Global Feeds
    101   - β™Ί Reposts: Tap the repost icon which will show up in your 🏠 Personal and πŸ” Global Feeds
    102   - β™‘ Likes: Tap the heart icon. Users will not get a notification, and cannot see who liked their note (currently, web clients can see your pfp only)
    103 
    104 
    105 #### πŸ’¬ Encrypted DMs (chat app, bottom navigation)
    106 - Tap the chat icon and you'll notice there's nothing to see at first. Go to a user profile and tap the πŸ’¬ chat icon next to the follow button to begin a DM
    107 
    108 #### πŸ” Global Feed (magnify glass, bottom navigation)
    109 - View the Global Feed from all the relays you've added in βš™οΈ Settings. Currently you can only search hashtags and user names and pubkeys
    110 
    111 #### πŸ”” Notifications
    112 - All your notifications except πŸ’¬ DMs
    113 
    114 #### πŸ‘€ Change Your Profile (PFP) and Bio
    115 1. Go to your Profile Page on Damus app
    116 2. Tap on Edit button at the top
    117 3. You will see text fields to update your information and bio
    118 4. For PFP, insert a URL containing your image (support video: https://cdn.jb55.com/vid/pfp-editor.mp4)
    119 5. Save
    120 
    121 
    122 #### ⚑️ Request Sats 
    123 Paste an invoice from your favorite LN wallet.
    124     (Sats or Satoshis are the smallest denomination of bitcoin)
    125 	
    126 **Alby (browser extension)**
    127 - Get the [Alby](https://getalby.com/) browser extension and create your Alby address [yourname]@getalby.com or connect your existing Lightning wallet
    128 - Convert your Damus secret key from nsec to hex at https://damus.io/key then go to Settings in Alby and under the Nostr section at the bottom of the page add your private hex key. You can also generate new address in the extension
    129 - Click the Alby extension > click Receive > enter the amount of Sats > click Get Invoice > click Copy > then paste into Damus
    130 - Note: On Damus Web it will appear as a string of characters but on Damus iOS it will appear as a clickable image
    131 
    132 **Zeus (mobile app)**
    133 - Download [Zeus](https://zeusln.app/) app (iOS, Google, APK)
    134 - Tap Get Started button > tap Connect a node > click on + sign (top right) > select Indhub > press Scan Lndhub QR > (from the Alby browser extension… click your account on the top left > click Manage Accounts > click 3-dot menu to right of your account and click Export Account to get a QR code then go back to Zeus app) > scan the QR Code and tap Save Node Config button
    135 - To create an invoice tap Lightning > tap Receive > type in amount > tap Create Invoice > tap Copy Invoice > paste into a new Damus note
    136 
    137 ## Contributing
    138 
    139 Contributors welcome! Start by examining known issues: https://github.com/damus-io/damus/issues.
    140 
    141 ### Mailing lists
    142 
    143 We have a few mailing lists that anyone can join to get involved in damus development:
    144 
    145 - [dev][dev-list] - development discussions
    146 - [patches][patches-list] - code submission and review
    147 - [product][product-list] - product discussions
    148 - [design][design-list] - design discussions
    149 
    150 [dev-list]: https://damus.io/list/dev
    151 [patches-list]: https://damus.io/list/patches
    152 [product-list]: https://damus.io/list/product
    153 [design-list]: https://damus.io/list/design
    154 
    155 ### Contributing
    156 
    157 See [docs/CONTRIBUTING.md](./docs/CONTRIBUTING.md)
    158 
    159 ### Privacy
    160 Your internet protocol (IP) address is exposed to the relays you connect to, and third party media hosters (e.g. nostr.build, imgur.com, giphy.com, youtube.com etc.) that render on Damus. If you want to improve your privacy, consider utilizing a service that masks your IP address (e.g. a VPN) from trackers online.
    161 
    162 The relay also learns which public keys you are requesting, meaning your public key will be tied to your IP address.
    163 
    164 It is public information which other profiles (npubs) you are exchanging DMs with. The content of the DMs is encrypted.
    165 
    166 ### Translations
    167 
    168 Translators welcome! Join the [Transifex][transifex] project.
    169 
    170 All user-facing strings must have a comment in order to provide context to translators. If a SwiftUI component has a `comment` parameter, use that. Otherwise, wrap your string with `NSLocalizedString` with the `comment` field populated.
    171 
    172 [transifex]: https://explore.transifex.com/damus/damus-ios/
    173 
    174 ### Awards
    175 
    176 Damus lead dev and founder Will awards developers with satoshis!
    177 There may be nostr badges awarded for contributors in the future... :)
    178 
    179 
    180 First contributors:
    181 
    182 1. @randymcmillan
    183 2. @jcarucci27
    184 
    185 ### git log bot
    186 
    187 npub1fjtdwclt9lspjy8huu3qklr7eklp5uq90u6yh8mec290pqxraccqlufnas