A lightweight Nostr protocol library for Android/Kotlin. Provides core event types, cryptographic signing, NIP implementations, and a Ktor WebSocket relay client.
- Core: Event, Filter, TagArray DSL builder, event templates
- Crypto: secp256k1 key pairs, NIP-01 event hashing, NIP-04 encryption
- NIP-19: Bech32 encoding/decoding, TLV parsing, npub/nsec/note/nevent/nprofile entities
- NIP-25: Reaction events (kind 7)
- NIP-47: Wallet Connect (NWC) payment request/response
- NIP-55: External signer (Amber) integration
- NIP-57: Zap request events (kind 9734)
- Relay: Ktor WebSocket client with auto-reconnect, subscription management, Nostr wire protocol
Add JitPack to your project-level settings.gradle.kts:
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven("https://jitpack.io")
}
}Add the dependency to your module build.gradle.kts:
dependencies {
implementation("com.github.TekkadanPlays:cybin:0.1.0")
}import com.example.cybin.core.*
import com.example.cybin.crypto.KeyPair
val keys = KeyPair("your-hex-private-key")
val template = eventTemplate(kind = 1) {
tag("p", recipientPubkey)
tag("e", referencedEventId)
content = "Hello Nostr!"
}import com.example.cybin.nip19.Nip19Parser
val result = Nip19Parser.uriToRoute("nostr:npub1...")import com.example.cybin.relay.CybinRelayClient
val client = CybinRelayClient(httpClient, scope)
client.connect("wss://relay.example.com")
client.subscribe(filter) { event ->
// handle incoming events
}- secp256k1-kmp v0.20.0 — secp256k1 cryptography
- Ktor v3.0.0 — WebSocket client
- Kotlin Coroutines
MIT