Nullchat

Support

Answers to common questions, how to report abuse, and how to reach us

Before you write to us

Adding contacts

How do I add someone?

There are no phone numbers or usernames to search, so you swap contact cards:

  • In person: Contacts → Add contact → Scan their code, and point the camera at the QR code on their My card screen. Or tap Show my code and let them scan yours.
  • Remotely: open My card → Share link and send the link however you like. When they open it, Nullchat offers to send you a request. You can also paste a contact link or an npub1… key into Contacts → Add contact.

The other person sees you under Contacts → Requests and taps Accept. Until then you appear under “Waiting for them to accept”.

How do I know I’m talking to the right person?

Names and avatars can be copied by anyone. To be sure, open Chat info → Verify safety code and compare the 12-digit code with the other person in person or on a call. If they match, tap Mark as verified. Nullchat warns you if a verified contact’s key ever changes, or if someone else uses their name.

Can strangers message me?

Anyone who knows your public key can send you a request, but it lands in Contacts → Requests, not in your chats, and notifications for it never show the content. Accept, ignore or block it. Other Nostr apps can also send you plain-text NIP-17 messages; they show up as requests too.

How do groups work?

Contacts → New group, pick up to 31 contacts, and name it. Each member gets their own encrypted copy of every message, so there’s no group server. The creator is the admin and can add or remove members.

Dark chat

What is a dark chat?

A chat where every message self-destructs a few seconds after it’s read. Tap the ghost icon at the top of a chat, choose Vanish 5, 10 or 30 seconds after reading, then Turn on and clear.

  • Turning dark mode on or off clears the conversation on both phones, so old messages can’t leak into the dark chat and dark messages can’t stay behind.
  • When a message is shown on the reader’s screen, a countdown ring starts. At zero it’s deleted on both phones.
  • Read receipts are always on in dark chats, since they start the timer.
  • Screenshots and screen recording are blocked while the chat is open. On iPhone a screenshot can only be detected afterwards, so the other person sees “Screenshot taken” instead.
  • Dark chats stay on your phone. Linked browsers and Macs show “Dark chat, open on your phone”.
Is it really gone?

From every honest Nullchat app, yes. But disappearing messages are a courtesy, not magic: someone can photograph their screen with another camera, or use a modified app that ignores the timer. Only send what you’d be comfortable with the other person keeping. An unread dark message is kept for at most 7 days.

View-once photos

How do I send a photo that can only be opened once?

In a chat, tap the attach button, pick or take a photo, turn on View once on the preview, and send. The recipient can open it once, full screen. It closes after they leave it or after 30 seconds, and then it’s deleted on both phones and the bubble says “Opened”. Screenshots are blocked or reported. View-once photos never appear in notifications, chat previews or on linked devices, and if they aren’t opened within 7 days they expire.

Why do my photos look compressed?

Photos travel inside the encrypted message itself, with no media server, so they are resized to fit within about 80 KB. This also removes location and other metadata from the file.

Backup phrase and new phones

What is the backup phrase?

Twelve words shown when you create your key, and any time later under Settings → Backup phrase. They are your identity. Write them down on paper and keep them somewhere safe. Never type them into a website, and never share them: anyone with the words can read new messages sent to you and send messages as you. We will never ask for them.

How do I move to a new phone?

On the new phone choose Restore from backup phrase during setup (or Settings → Restore from phrase, which replaces the identity on that phone) and type your 12 words. You keep the same identity, so contacts can keep writing to you, and messages still waiting on relays (up to 7 days old) are fetched. Your chat history and contact list are stored only on the old phone, so they don’t come across. Contacts reappear as they message you, or you can add them again.

I lost my phone and my backup phrase.

Then the identity can’t be recovered, by you or by us. There is no account or server copy. Create a new key and share your new contact card with people. If someone might have your unlocked phone, tell your contacts so they stop trusting the old key.

Notifications

Why are my notifications late?

Without push, Nullchat checks for messages when the system lets it run in the background. On iPhone that can be hours. For quick notifications, turn on Settings → Notifications and make sure the Push wake service field holds a URL (it’s filled in for you). Also allow notifications for Nullchat in the system settings.

What does the push service learn?

Only that some device should be woken. A push says just “New message”. The service never receives the sender, the chat or the content. Your app then fetches and decrypts the message itself. You can run your own push service, or clear the field to turn push off. The privacy policy has the details.

Do notifications show my messages?

Never for dark chats, view-once photos or message requests: those only say “New message” or “Message request”, without the sender’s name or text. Push wake-ups never contain content either. When the app itself finds a new message in an ordinary chat during a background check, it can show a preview on your lock screen; you can turn previews off for Nullchat in the system notification settings.

Using Nullchat on the web or a Mac

How do I link a browser or Mac?
  1. Open the Nullchat web app in a browser, or the Mac app. It shows a QR code.
  2. On your phone: Settings → Linked devices → Link a device, and scan that code.
  3. The computer now shows a 6-digit code. Type it on your phone. Choose whether to include recent messages (text from the last 30 days), then tap Link device.

You can link up to 4 browsers or Macs. Each gets its own key, so your identity key never leaves the phone. To remove one, use Settings → Linked devices on the phone, or Unlink this browser on the device itself. On a Mac you can also install the web app with Safari’s File → Add to Dock.

Why can’t I see some chats on my computer?

Dark chats and view-once photos are phone-only by design. Linked devices also only receive messages sent after they were linked, plus the optional 30-day text history.

Self-hosting

Can I use my own relay?

Yes. Any Nostr relay that accepts events of 256 KB and supports NIP-40 expiry works; strfry is a good choice. Add wss://your.host in Settings → Relays. The app tests that the relay can store and return messages and tells your contacts to use it. Instructions: docs/self-host-relay.md.

Can I run my own push service?

Yes. The push service is a small stateless program in apps/push-worker that runs as a Cloudflare Worker or a Docker container. It needs Apple and Firebase credentials that match the app build, so in practice you run it together with your own build of the app, then paste its URL in Settings → Notifications.

Can I build the app myself?

Yes, it’s AGPL-3.0. Start with the README and ARCHITECTURE.md.

Troubleshooting

My messages aren’t arriving
  • One tick means at least one relay accepted the message. Two ticks mean it reached the other person’s device. It’s marked read when they’ve seen it (if they have read receipts on).
  • Check Settings → Relays: at least one relay should show as connected. If you’re on a network that blocks WebSocket connections, try another network.
  • The other person must have accepted your request. Until then your messages wait in their Requests.
  • If no relay accepts a message, the app keeps retrying for 24 hours. After that it shows as failed, and you can tap it to retry. Delivered messages wait on relays for up to 7 days for the other person to come online.
How do I delete everything?

Settings → Delete everything erases your key, contacts and messages from the phone and tells contacts to stop writing to you. Write down your backup phrase first if you might want this identity back.

Report abuse

If someone is harassing, threatening or spamming you, or sending illegal content:

  1. Block them. In the chat, open Chat info and tap Block, or tap Block on their request. The Report step below also blocks by default. Their messages are discarded on your phone from then on, including in groups you share, and they stop getting your push handle.
  2. Report them. Choose Report… from the ⋯ menu in the chat, from Chat info, from a group’s member list, or on their request. Pick a reason (spam, harassment, illegal content, impersonation or other), add a note, and, if you want, tick up to 20 of their text messages to include. Dark-chat messages and photos are never included. The app opens an email to us that you can review before sending; nothing is uploaded on its own. If you can’t use email from the phone, write to the address below with their public key (the npub1… under their name in Chat info) and what happened.
  3. If you’re in danger, contact local emergency services first.

We aim to respond within 24 hours. Nullchat has no central accounts, so no one can delete another person’s key. We ban reported keys from the services we operate (the push service and the demo contact), report child sexual abuse material and credible threats to the authorities, and pass reports of illegal content to the relay operators involved. The rules everyone agrees to are in the terms of use.

To report a security vulnerability, please use the private process in the security policy instead.

Contact

For help, abuse reports and feedback. Please don’t send your backup phrase; we will never ask for it.

Codeways Pvt Ltd
support@example.com

Bugs and feature requests are also welcome as GitHub issues.