Your profiles
The Profiles section displays all Nostr accounts you’ve added to Hoot.Viewing account information
For each account, you can view:- Key ID: Your public key in npub format (e.g.,
npub1...) - Display name: Your profile’s display name
- NIP-05 identifiers: Email-like addresses associated with your key
Managing multiple accounts
Hoot supports multiple Nostr identities. Each account:- Has its own keypair stored in your system keychain
- Can send and receive messages independently
- Has separate profile metadata
- Can have multiple NIP-05 identifiers
Removing accounts
Profile metadata
Editing display name
To update your display name:Understanding profile metadata
Nostr profile metadata (kind 0 events) includes:- display_name: Your friendly name
- name: Your username or handle
- picture: URL to your profile picture
- about: Bio or description
- website: Your website URL
- nip05: Verified NIP-05 identifier
- Public: Anyone can see your profile metadata
- Decentralized: Stored on Nostr relays, not controlled by any single server
- Cached: Hoot caches metadata locally for fast access
- Updated automatically: When relays send new metadata events
NIP-05 identifiers
NIP-05 provides human-readable identifiers for Nostr public keys, similar to email addresses.What is NIP-05?
A NIP-05 identifier:- Looks like an email address:
[email protected] - Maps to your Nostr public key via a JSON file hosted at
https://domain.com/.well-known/nostr.json - Makes it easier for people to find and message you
- Can be verified to prove ownership
Adding a NIP-05 identifier
Enter your NIP-05 address
In the NIP-05 Identifiers section under your profile, type your identifier in the text field (e.g.,
[email protected]).Verification happens in the background. The status icon updates automatically when verification completes.
NIP-05 status indicators
Each NIP-05 identifier has a status icon:- ✓ (Green): Verified - the identifier successfully resolves to your public key
- ⏳ (Yellow): Pending - verification in progress
- ✗ (Red): Failed - verification failed (domain unreachable or key mismatch)
Managing NIP-05 identifiers
For each identifier:- Remove: Click to delete the identifier from your profile
- Verify: Click to re-verify the identifier manually
- (own): Indicates this is marked as your own identifier
Setting up NIP-05 on your domain
To make a NIP-05 identifier work:Create the JSON file
Create a file at Replace
https://yourdomain.com/.well-known/nostr.json with this structure:username with your desired username and <your-public-key-in-hex> with your actual public key.Configure CORS headers
Ensure your web server sends the appropriate CORS headers to allow Nostr clients to fetch the file:
Add to Hoot
Enter
[email protected] in Hoot’s NIP-05 section and click “Verify & Add”.Using NIP-05 when sending messages
When composing a message, you can select which identity to send as:- Raw key: Send without NIP-05 (shows as hex/npub)
- NIP-05 identity: Send with your verified NIP-05 (shows as
[email protected])
Relays
Relays are servers that transmit and store Nostr events. You need to connect to relays to send and receive messages.Understanding relays
In Nostr:- Decentralized: No single relay controls the network
- Multiple connections: You can connect to many relays simultaneously
- Redundancy: Connecting to multiple relays improves message delivery and availability
- User choice: You control which relays you use
Adding a relay
Enter the relay URL
In the “Add New Relay” field, enter the relay’s WebSocket URL. Relay URLs typically start with
wss:// (secure WebSocket).Example: wss://relay.damus.ioRelay connection status
Each relay displays a colored status indicator:- Green: Connected - actively sending and receiving events
- Yellow: Connecting - attempting to establish connection
- Red: Disconnected - connection failed or lost
Hoot automatically attempts to reconnect to disconnected relays every 5 seconds. When a relay is disconnected, you’ll see “Attempting reconnect in X seconds”.
Relay keepalive
Hoot sends keepalive pings to connected relays every 30 seconds to maintain the connection and detect disconnections quickly.Removing a relay
Recommended relays
Popular Nostr relays include:wss://relay.damus.iowss://relay.nostr.bandwss://nos.lolwss://relay.snort.socialwss://nostr.wine
For best results, connect to 3-5 well-established relays. More relays improve message delivery but increase bandwidth usage.
Relay subscriptions
When connected to a relay, Hoot automatically:- Subscribes to messages addressed to your public key(s)
- Subscribes to profile metadata updates
- Listens for new events in real-time
- Sends keepalive pings every 30 seconds
Application storage
Hoot stores data in platform-specific locations:- Database:
{storage_dir}/hoot.db(SQLite with SQLCipher encryption) - Storage directory: Varies by platform
- Linux:
~/.local/share/hoot/ - macOS:
~/Library/Application Support/hoot/ - Windows:
%APPDATA%\hoot\
- Linux:
What’s stored locally
- Events: All Nostr events (messages, metadata) you’ve received
- Contacts: Your contact list with petnames
- Drafts: Unsent message drafts
- Sender status: Allowed/junked sender preferences
- NIP-05 data: Your NIP-05 identifiers and verification status
- Profile cache: Cached profile metadata for faster loading
Your private keys are stored separately in your system keychain, not in the database.
Database encryption
Hoot encrypts your local database using SQLCipher:- Password protection: The password you set during onboarding
- AES-256 encryption: Industry-standard encryption
- Local only: The database never leaves your device
Privacy and security
What’s private
- Private keys: Never leave your device, stored in system keychain
- Database: Encrypted with your password
- Message contents: Encrypted with NIP-59 gift wrap
- Metadata: Relay servers cannot see who you’re messaging
What’s public
- Public keys: Visible to anyone (required for Nostr)
- Profile metadata: Public information (display name, picture, etc.)
- Relay connections: Relays know your public key and IP address
- Message existence: Relays know encrypted messages exist (but not contents or recipients)
Troubleshooting
Relay won’t connect
- Check the relay URL is correct (should start with
wss://) - Verify the relay is operational (try accessing it in a web browser)
- Check your internet connection and firewall settings
Profile updates not appearing
- Ensure you’re connected to at least one relay
- Wait a few moments for updates to propagate
- Try manually refreshing the profile
NIP-05 verification fails
- Verify the JSON file is accessible at
https://domain.com/.well-known/nostr.json - Check that CORS headers are configured correctly
- Ensure the public key in the JSON matches your actual public key (hex format)
Next steps
- Learn about sending messages using your configured profiles
- Add contacts to build your network
- Explore advanced features like multiple accounts and NIP-05 identities