Skip to main content

API reference

Use this site for workflows, boundaries, failure behavior, and lifecycle. Use the generated reference for exact signatures and every exported symbol. The generated pages are built from the same source revision as this guide.

The /kotlin/ route is the generated symbol output for the Kotlin declarations shipped in the Android AAR. Android-specific threading, Rust-owned SQLite, packaging, files, lifecycle, and device performance guidance remains visible in the Android tab throughout the cookbook.

Verified workflows

The repository smoke/package suites compile and execute the authored surfaces, including complex multi-family workflows:

The site uses shortened recipes for clarity. The Android selector always renders the complete callable Kotlin recipe together with any Android integration note, so no navigation to a separate language tab is required. These checked-in consumers are executable evidence that generated internals are not required.

Operation-to-guide matrix

FamilyOperationPublic symbols
IdentityImport, public key, and erase · measured
Import, retain, and explicitly end one local account authority.
LocalIdentity::from_secret_bytes
LocalIdentity::public_key
Nostr values and cryptographyNIP-19 identifiers
Parse and encode bounded NIP-19 display identifiers.
Nip19Identifier::parse
Nip19Identifier::encode
Nostr values and cryptographyAuthor and verify a NIP-01 event · measured
Create, sign, parse, and verify exact NIP-01 events.
NostrEventDraft::new
LocalIdentity::sign_event
SignedNostrEvent::from_json
Nostr values and cryptographyNIP-44 encrypt and decrypt · measured
Encrypt and authenticate NIP-44 v2 messages.
LocalIdentity::encrypt_utf8
LocalIdentity::decrypt_utf8
Nip44EncryptedMessage
Private messagingCreate a NIP-17 message · measured
Create a minimal private kind-14 message rumor.
LocalIdentity::create_nip17_text_message
Private messagingWrap recipient and sender copies · measured
Create an independent NIP-59 copy for one recipient.
LocalIdentity::gift_wrap
Private messagingUnwrap and classify · measured
Authenticate all NIP-59 layers and classify the rumor.
LocalIdentity::unwrap_gift_wrap
Nip17TextMessage::from_rumor
Chat and account dataMessages, replies, and forwards
Create and classify complete Softchat kind-14 messages.
LocalIdentity::create_chat_message
classify_chat_message
Chat and account dataSubjects
Create and classify canonical group subject updates.
LocalIdentity::create_subject
classify_subject
Chat and account dataReactions
Create and classify private reactions.
LocalIdentity::create_reaction
classify_reaction
Chat and account dataDeletions
Create and authorize private deletion requests.
LocalIdentity::create_deletion
classify_deletion
Chat and account dataEdits
Create and project author-bound text and emoji edits.
LocalIdentity::create_edit
classify_edit
Chat and account dataTyping indicators
Create and classify ephemeral typing rumors.
LocalIdentity::create_typing
classify_typing
Chat and account dataGeneric repost compatibility
Classify receive-only NIP-18 generic reposts.
classify_generic_repost
Chat and account dataUser metadata and contacts
Create private metadata and author-copy contact backups.
LocalIdentity::create_user_metadata
LocalIdentity::create_follow_list
Chat and account dataApplication data and sync
Create direct NIP-78 data and private kind-30079 sync data.
LocalIdentity::create_application_data
LocalIdentity::create_app_data_sync
Relay and persistenceFrames, filters, authentication, and batches
Validate relay frames, filters, authentication, and EVENTS batches.
parse_client_relay_frame
parse_relay_response_frame
RelayFilter
Relay and persistenceRelay session lifecycle
Drive a serialized transport-independent relay state machine.
RelaySession
RelaySession::confirm_sent
OutboundRelayFrame
Relay and persistencePublishing and delivery
Persist intent and queue bounded event batches for tracked delivery.
RelaySession::publish
classify_delivery_acknowledgement
Relay and persistenceTransactional ingestion
Commit received verified events before acknowledging ingestion.
RelaySession::confirm_ingested
validate_ingestion_result
Relay and persistenceRecovery
Inspect diagnostics, rebuild from durable host intent, and cancel safely.
RelaySession::snapshot
RelaySession::cancel
Noise and synchronizationNoise handshake and transport
Authenticate the deployed Noise NK relay profile and transport frames.
NoiseClientHandshake
NoiseTransport
Noise and synchronizationNegentropy reconciliation
Reconcile bounded immutable event snapshots with NIP-77.
NegentropyClient
Media and HTTPAttachment metadata
Parse and preserve bounded Softchat imeta metadata.
parse_attachment_metadata
AttachmentMetadata
Media and HTTPStream encryption · measured
Stream attachment encryption into private staging.
AttachmentEncryptionStream
Media and HTTPStream decryption and final authentication
Stream attachment decryption with final authentication.
AttachmentDecryptionStream
Media and HTTPNIP-98 request plans
Plan exact-request NIP-98 authorization without executing HTTP.
create_nip98_authorization
HttpAuthorizationPlan
Android account runtimeOpen an account · measured
Import one local authority and open its identity-derived Rust SQLite account.
AccountRuntimeHandle::open
AccountRuntimeHandle::public_key
AccountRuntimeHandle::close_account
Android account runtimeConversations and drafts · measured
Create, query, observe, archive, pin, read, and draft complete conversations.
AccountRuntimeHandle::get_or_create_conversation
AccountRuntimeHandle::conversation_page
AccountRuntimeHandle::save_conversation_draft
Android account runtimeMessages and commands · measured
Query effective messages and execute atomic send, reply, forward, subject, reaction, edit, deletion, and typing use cases.
AccountRuntimeHandle::send_message
AccountRuntimeHandle::message_page
AccountRuntimeHandle::edit_message
AccountRuntimeHandle::delete_message
AccountRuntimeHandle::delete_messages
Android account runtimeProfile and follows · measured
Observe effective private metadata and update profile fields or the complete follow list without lossy replacement.
AccountRuntimeHandle::profile
AccountRuntimeHandle::profiles
AccountRuntimeHandle::update_profile
AccountRuntimeHandle::follow
AccountRuntimeHandle::unfollow
AccountRuntimeHandle::replace_follows
Android account runtimeExact event details
Load exact authenticated protocol truth and Rust-owned relationship state for detail and debugging UI.
AccountRuntimeHandle::list_event_nodes
AccountRuntimeHandle::event_json
Android account runtimeAccount settings
Read and merge versioned cross-device product settings through explicit unchanged, clear, and set states.
AccountRuntimeHandle::account_settings
AccountRuntimeHandle::apply_account_settings_patch
Android account runtimeRelay catalog
Own the durable relay catalog, one active selection, discovery reconciliation, and failover order.
AccountRuntimeHandle::relay_catalog
AccountRuntimeHandle::add_account_relay
AccountRuntimeHandle::set_account_active_relay
Android account runtimeRoute an incoming account event
Verify one signed NIP-59 outer wrapper and select the exact retained account before decryption or ingestion.
route_nip59_envelope
Nip59EnvelopeRoute
Android account runtimeTransport, ingestion, and synchronization
Run one Rust-owned relay, delivery, ingestion, Noise, and synchronization state machine through either the managed native socket or correlated host actions.
ManagedAccountTransport
AccountRuntimeHandle::start_account_transport
AccountRuntimeHandle::apply_account_transport_result
AccountRuntimeHandle::reset_account_sync
Android account runtimeDurable media
Persist media intent and dependencies before Android executes bounded file and HTTP effects.
AccountRuntimeHandle::prepare_media_message
AccountRuntimeHandle::cancel_pending_media_message
AccountRuntimeHandle::prepare_media_download
AccountRuntimeHandle::prepare_conversation_icon_download
AccountRuntimeHandle::media_operations_by_ids
AccountRuntimeHandle::recoverable_media_operations
AccountRuntimeHandle::restart_media_download
AccountRuntimeHandle::claim_media_operation
AccountRuntimeHandle::complete_media_operation
Android account runtimeDurable public asset replacement
Persist a profile-picture, profile-banner, or conversation-icon replacement and its upload dependency before Android starts file or HTTP work.
AccountRuntimeHandle::prepare_asset_replacement
AccountRuntimeHandle::pending_asset_replacement
AccountRuntimeHandle::recover_pending_asset_replacements
Android account runtimeDelivery operations
Inspect, retry, and safely cancel recipient-complete durable outgoing operations.
AccountRuntimeHandle::operation
AccountRuntimeHandle::operation_page
AccountRuntimeHandle::retry_operation
Android account runtimePush registration
Create the released private FCM or APNs token registration profile and durable delivery intent.
AccountRuntimeHandle::register_push_token
Android account runtimeLocal contacts and resources
Store bounded account-local address-book labels, stickers, and link-preview cache values in the one Rust database.
AccountRuntimeHandle::put_local_contact
AccountRuntimeHandle::replace_stickers
AccountRuntimeHandle::put_link_preview
Android account runtimeImport a retired signed outbox
Recover a bounded batch of already signed pending events from retired platform storage without importing its schema or projections.
AccountRuntimeHandle::recover_signed_outbox_batch
Android account runtimeDiagnostics and recovery
Observe the durable revision and bounded redacted account health for explicit support and recovery flows.
AccountRuntimeHandle::account_diagnostics
Android account runtimeStructured account logging · measured
Feed existing Android support and log-viewer UI with optional structured SDK state without synchronous callbacks from Rust.
AccountRuntimeHandle::set_log_level
AccountRuntimeHandle::drain_log_events
Errors and diagnosticsStable errors and retry policy
Handle stable redacted failures without generated-binding leakage.
SoftchatError
Errors and diagnosticsBuild fingerprint and diagnostics
Identify the loaded artifact and inspect redacted counters.
build_fingerprint
diagnostics_snapshot

The assembled capability matrix records implementation, interoperability evidence, and release status independently for every target.

Performance reports

Contextual cards appear only beside operations present in the accepted benchmark corpus. They show median duration, p95 duration, equivalent single-thread calls per second, payload throughput where meaningful, allocations where available, comparison with the frozen old library where available, environment, and confidence.

Use the performance analysis to find relative median gaps, inspect p95 amplification, and see which evidence gates remain. The standalone audit reports preserve the exact records:

These are descriptive results for the recorded runner or device. They are not universal latency guarantees.