Skip to content

Spam & Filtering

Spam resistance is a core design goal of Azzamo relays.

The goal is not to censor opinions, but to reduce automated noise, abuse, and low-effort flooding that makes Nostr unusable at scale.


Why spam filtering exists

Open write access on Nostr relays leads to predictable problems:

  • Automated spam and scams
  • Mass reposting and reply flooding
  • Low-effort advertising
  • Resource exhaustion

Without filtering, relay performance and user experience degrade quickly.

Azzamo treats spam resistance as infrastructure, not moderation theater.


Layered approach

Azzamo uses multiple layers of filtering rather than a single rule.

Each layer removes a class of abuse while minimizing false positives.


Payment-based write access

The first and most important filter is economic.

  • Writing to the premium relay requires active premium time
  • Premium time is paid using Bitcoin Lightning
  • Automated abuse becomes expensive

This does not block anyone from reading or following users elsewhere on Nostr.


Rate limiting

Free relay endpoints apply rate limits.

  • Limits are per public key
  • Burst limits protect against floods
  • Sustained abuse is automatically throttled

Rate limits are tuned to allow normal usage while blocking automation.


Web of Trust filtering

Azzamo uses Web of Trust–based rules for importing and prioritizing events.

  • Events from trusted public keys are prioritized
  • Unknown or low-trust sources may be delayed or filtered
  • Trust is based on observed network relationships, not manual lists

This improves signal quality without requiring global blocklists.


Client-side compatibility

Filtering on Azzamo relays does not replace client-side controls.

  • Clients remain free to apply their own filters
  • Muting, blocking, and content warnings still work
  • Users can connect to additional relays freely

Azzamo filtering complements client behavior rather than overriding it.


What is considered spam

Examples of behavior that may be filtered or limited:

  • Automated posting at high frequency
  • Repeated identical or near-identical content
  • Large-scale unsolicited advertising
  • Scam or phishing campaigns
  • Resource abuse intended to degrade service

Normal conversation, criticism, and controversial opinions are not considered spam by default.


What is not filtered

Azzamo does not filter based on:

  • Political views
  • Personal opinions
  • Client choice
  • Network affiliation

Filtering is based on behavior and impact, not ideology.


Enforcement behavior

Most enforcement is automatic.

  • Rate limits and filters apply silently
  • No manual review is required for normal cases
  • Severe or repeated abuse may trigger stronger limits

In cases involving coordinated abuse or harm, additional tooling such as the Ban API may be used.


Trade-offs

Spam resistance always involves trade-offs.

Azzamo intentionally prioritizes:

  • Network health over unlimited free writes
  • Predictable behavior over maximal permissiveness
  • Economic friction over manual moderation

Users who want fully unfiltered environments can and should use other relays alongside Azzamo.


  • Free vs Premium access
  • Azzamo Premium overview
  • Moderation and Trust
  • Ban API overview