Nostr SDK library for Apple Platforms.
Warning: The API is not currently stable and not guaranteed to be backwards compatible yet.
- Swift 5.7.1
- iOS 15
- macOS 12
TBD
Nostr SDK iOS implements the following NIPs:
- NIP-01: Basic protocol flow description
- NIP-02: Follow List
- NIP-03: OpenTimestamps Attestations for Events
- NIP-04: Encrypted Direct Message --- unrecommended: deprecated in favor of NIP-44
- NIP-05: Mapping Nostr keys to DNS-based internet identifiers
- NIP-06: Basic key derivation from mnemonic seed phrase
- NIP-07:
window.nostr
capability for web browsers - NIP-08: Handling Mentions --- unrecommended: deprecated in favor of NIP-27
- NIP-09: Event Deletion
- NIP-10: Conventions for clients' use of
e
andp
tags in text events - NIP-11: Relay Information Document
- NIP-13: Proof of Work
- NIP-14: Subject tag in text events
- NIP-15: Nostr Marketplace (for resilient marketplaces)
- NIP-18: Reposts
- NIP-19: bech32-encoded entities
- NIP-21:
nostr:
URI scheme - NIP-23: Long-form Content
- NIP-24: Extra metadata fields and tags
- NIP-25: Reactions
- NIP-26: Delegated Event Signing
- NIP-27: Text Note References
- NIP-28: Public Chat
- NIP-29: Relay-based Groups
- NIP-30: Custom Emoji
- NIP-31: Dealing with Unknown Events
- NIP-32: Labeling
- NIP-34:
git
stuff - NIP-36: Sensitive Content
- NIP-38: User Statuses
- NIP-39: External Identities in Profiles
- NIP-40: Expiration Timestamp
- NIP-42: Authentication of clients to relays
- NIP-44: Versioned Encryption
- NIP-45: Counting results
- NIP-46: Nostr Connect
- NIP-47: Wallet Connect
- NIP-48: Proxy Tags
- NIP-49: Private Key Encryption
- NIP-50: Search Capability
- NIP-51: Lists
- NIP-52: Calendar Events
- NIP-53: Live Activities
- NIP-56: Reporting
- NIP-57: Lightning Zaps
- NIP-58: Badges
- NIP-59: Gift Wrap
- NIP-65: Relay List Metadata
- NIP-72: Moderated Communities
- NIP-75: Zap Goals
- NIP-78: Application-specific data
- NIP-84: Highlights
- NIP-89: Recommended Application Handlers
- NIP-90: Data Vending Machines
- NIP-92: Media Attachments
- NIP-94: File Metadata
- NIP-96: HTTP File Storage Integration
- NIP-98: HTTP Auth
- NIP-99: Classified Listings
Nostr SDK can be integrated as an Xcode project target or a Swift package target.
- Go to
File
->Add Package Dependencies
. - Type https://github.com/nostr-sdk/nostr-sdk-ios.git into the search field.
- Select
nostr-sdk-ios
from the search results. - Click
Add Package
.
In your Package.swift
file:
- Add the NostrSDK package dependency to https://github.com/nostr-sdk/nostr-sdk-ios.git
- Add
NostrSDK
as a dependency on the targets that need to use the SDK.
let package = Package(
// ...
dependencies: [
// ...
.package(url: "https://github.com/nostr-sdk/nostr-sdk-ios.git", branch: "master")
],
targets: [
.target(
// ...
dependencies: ["NostrSDK"]
),
.testTarget(
// ...
dependencies: ["NostrSDK"]
)
]
)
If you would like to contribute to this library, please see CONTRIBUTING.md.
These are the core maintainers of this library and their Nostr public keys.