Skip to content

About

A Crawlstr Nostr relay in your phone

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

Crawlstr SIP Relay: a mobile indexing relay for Nostr

A fork of Citrine (the Nostr relay for Android) that turns your phone into a validating index relay and search node for SIP-01 — the Decentralized Search Index Protocol on Nostr.

One shared decentralized index. Many independent indexers. Many independent search engines. No single owner — and now the index fits in your pocket.

SIP-01 support

Crawlers like Crawlstr and indexstr publish signed kind 39697 web index observations; this relay validates, indexes, replicates, and serves them — the same relay profile as the UNCAGED Index Relay, on Android:

  • Ingestion validation (SIP-01 §12.4) — malformed observations are rejected with OK false invalid: …: schema version, d ↔ normalized-u consistency, x ↔ content-hash consistency, URL allowlist, and all hard length caps are enforced at the door
  • Byte-compatible URL normalization & hashing (§7, §3, §8) — the spec's §13 test vectors run as unit tests (WebDocumentTest), so this relay deduplicates identically to every other implementation
  • Structured indexing (relay profile §2) — observations are extracted into dedicated fields (WebIndexEntity: url, host, file extension, title, description, language, content hash, published/observed/first-seen timestamps, source, and the type/platform/category/network/country/mime extension tags) while the signed event stays the source of truth
  • NIP-50 web-search operators (§4) — site:, domain:, url:, inurl:, title:, topic:, type:, platform:, category:, network:, country:, mime:, filetype:, source:, lang:, before:, after:, distinct:domain / distinct:author, each filter with a negated -op: form
  • NIP-11 capability advertisement (§5) — the relay information document carries the uncaged_index block (sip01, nip50, nip77, document kinds, operator-declared scope/domains/languages/document types)
  • Index replication (§6 federation) — optional sync subscribes to kind 39697 on peer index relays, so the phone keeps a live, fully searchable copy of the shared index even offline; WiFi-only and pause-on-limited-network modes included
  • Plain NIP-01 filters (kinds, #d, #t, #u, #x, authors, since/until) keep working against the same stored events

Example search, straight from any Nostr client connected to the phone:

["REQ", "search", {
  "kinds": [39697],
  "search": "bitcoin privacy site:github.com lang:en after:2026-01-01",
  "limit": 50
}]

Current Features (Citrine upstream)

  • Export database
  • Import database
  • Export only events from your account
  • Manage the relay (port, icon, user, start, stop)
  • Broadcast events after coming back online
  • Add content resolvers

Download

Get it on Zap Store Get it on Obtaininum Get it on GitHub Get it on F-Droid

Contributing

Issues and pull requests are very welcome.

Contributors

About

A Crawlstr Nostr relay in your phone

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages