# bitchat | permissionlesstech | Knowledge Base | Instagit

bluetooth mesh chat, IRC vibes

GitHub Stars: 30.6k

Repository: https://github.com/permissionlesstech/bitchat

---

## Articles

### [How the BitChat BLE Service Coordinates CoreBluetooth Callbacks for Mesh Networking](/permissionlesstech/bitchat/how-does-ble-service-coordinate-corebluetooth-callbacks-in-bitchat)

Discover how BitChat coordinates CoreBluetooth callbacks using a dedicated queue and thread-safe state management for efficient mesh networking. Learn about BLEService's role in translating events.

- Tags: internals
- Published: 2026-08-23

### [BLE Components in the V3 Architecture: How Bitchat Structures Its Bluetooth Stack](/permissionlesstech/bitchat/what-are-the-key-ble-components-in-v3-architecture-and-what-do-they-manage)

Explore the BLE components in Bitchat's V3 architecture. Understand how BLELinkLayer, Mesh Engine, Feature Modules, and App Boundary ensure deadlock free deterministic mesh networking.

- Tags: architecture
- Published: 2026-08-23

### [How BitChat Fragment Recovery Works for Stalled BLE Re‑assemblies](/permissionlesstech/bitchat/how-does-bitchats-fragment-recovery-work-for-stalled-reassemblies)

Learn how BitChat fragment recovery tackles stalled BLE reassemblies. Discover its timestamp scanning, missing ID encoding, and peer retransmission solicitation for seamless data transfer.

- Tags: internals
- Published: 2026-08-23

### [Sync Configuration Parameters for BitChat's Gossip System: Complete Guide](/permissionlesstech/bitchat/what-are-the-sync-configuration-parameters-for-bitchats-gossip-system)

Master BitChat's gossip system sync configuration. Discover essential parameters in TransportConfig.swift to optimize network efficiency and message propagation speed. Get the complete guide now.

- Tags: how-to-guide
- Published: 2026-08-23

### [How BitChat Implements Gossip-Based Synchronization: Protocol Deep Dive](/permissionlesstech/bitchat/how-does-bitchat-implement-gossip-based-synchronization)

Explore how BitChat uses gossip-based synchronization with GCS filters for efficient decentralized mesh sync. Learn the protocol details and optimize message history diffing without full data transfers.

- Tags: deep-dive
- Published: 2026-08-23

### [Understanding PeerHandle and ConversationID in BitChat: A Technical Guide](/permissionlesstech/bitchat/what-is-the-purpose-of-peerhandle-and-conversationid-in-bitchat)

Discover the purpose of PeerHandle and ConversationID in BitChat. Learn how these elements ensure type-safe conversation identity and seamless private chats, even with changing network identifiers.

- Tags: deep-dive
- Published: 2026-08-23

### [How AppEventStream Facilitates App-Level Events in BitChat](/permissionlesstech/bitchat/how-does-app-event-stream-facilitate-app-level-events-in-bitchat)

Learn how AppEventStream in BitChat uses Swift actors and AsyncStream to create a type-safe, asynchronous broadcast for app-level events, decoupling layers.

- Tags: deep-dive
- Published: 2026-08-23

### [The Role of AppRuntime in BitChat V2 Architecture: Centralized Composition Root](/permissionlesstech/bitchat/what-is-the-role-of-appruntime-in-bitchats-v2-architecture)

Discover how AppRuntime acts as the central composition root in BitChat V2, managing startup, lifecycle, notifications, and DI for the decentralized app.

- Tags: architecture
- Published: 2026-08-23

### [How BitChat Handles Private Messages with Intelligent Transport Selection](/permissionlesstech/bitchat/how-does-bitchat-handle-private-messages-with-intelligent-transport-selection)

Discover how BitChat uses intelligent transport selection to securely route private messages via peer-to-peer, relay servers, or local mesh networks for optimal connectivity.

- Tags: internals
- Published: 2026-08-23

### [What Are the Three Categories of Channels Supported by BitChat?](/permissionlesstech/bitchat/what-are-the-three-categories-of-channels-supported-by-bitchat)

Discover the three BitChat channel categories: global Mesh, Geohash location, and private encrypted messages. Learn how BitChat secures your communications.

- Tags: deep-dive
- Published: 2026-08-23

### [How BitChat Derives Ephemeral Cryptographic Identities: A Deep Dive into the NostrIdentityBridge](/permissionlesstech/bitchat/how-are-ephemeral-cryptographic-identities-derived-in-bitchat)

Discover how BitChat derives ephemeral cryptographic identities using a device-wide seed and HMAC-SHA256. Learn about unlinkable, temporary Nostr keys for secure, session-only communication.

- Tags: deep-dive
- Published: 2026-08-23

### [BitChat Private-Envelope Encryption Format for Nostr: Technical Architecture and Implementation](/permissionlesstech/bitchat/what-is-bitchats-private-envelope-encryption-format-for-nostr)

Explore BitChat's private-envelope encryption for Nostr. Learn its technical architecture, XChaCha20-Poly1305 implementation, and compatibility with Nostr event kinds.

- Tags: architecture
- Published: 2026-08-23

### [How Location-Based Channels Work in BitChat's Nostr Transport](/permissionlesstech/bitchat/what-is-used-for-location-based-channels-in-bitchats-nostr-transport)

Discover how BitChat uses Nostr transport for location-based channels. Learn about geohash mapping to unique Nostr identities for efficient, decentralized communication.

- Tags: how-to-guide
- Published: 2026-08-23

### [How BitChat Provides Global Reach with the Nostr Protocol: A Technical Deep Dive](/permissionlesstech/bitchat/how-does-bitchat-provide-global-reach-with-nostr-protocol)

Discover how BitChat leverages Nostr protocol and Bluetooth mesh to achieve global reach, sending messages worldwide without central servers or phone verification. Explore the technical details.

- Tags: deep-dive
- Published: 2026-08-23

### [How the Sync-Edge Order Prevents Deadlocks in BitChat](/permissionlesstech/bitchat/how-does-sync-edge-order-prevent-deadlocks-in-bitchat)

Discover how BitChat's sync-edge order prevents deadlocks. Learn about its strict hierarchical synchronization and unidirectional synchronous calls for robust communication.

- Tags: internals
- Published: 2026-08-23

### [Concurrency Contract for State Ownership in BitChat: Three-Domain Architecture Explained](/permissionlesstech/bitchat/what-is-the-concurrency-contract-for-state-ownership-in-bitchat)

Understand BitChat's three-domain concurrency contract for state ownership. Learn how serial queues and unidirectional synchronization ensure deadlock freedom. Explore the permissionlesstech/bitchat repository.

- Tags: architecture
- Published: 2026-08-23

### [How BitChat Manages State Across BLE Architecture Layers](/permissionlesstech/bitchat/how-is-state-managed-across-different-layers-in-bitchat-ble-architecture)

Discover how BitChat manages state across BLE architecture layers using isolated queues and thread-safe events. Learn about BLELinkLayer, messageQueue, and feature module communication for deadlock-free operation.

- Tags: architecture
- Published: 2026-08-23

### [BitChat BLE Architecture V3: The Four Layers Explained](/permissionlesstech/bitchat/what-are-the-four-distinct-layers-in-bitchat-ble-architecture-v3)

Explore the BitChat BLE architecture V3. Understand its four key layers BLELinkLayer, Mesh Engine, Feature Modules, and App Boundary for robust communication and deterministic testing.

- Tags: architecture
- Published: 2026-08-23

### [How BitChat Optimizes Messages for the BLE MTU Constraint: Selective Padding and Fragmentation](/permissionlesstech/bitchat/how-does-bitchat-optimize-messages-for-ble-mtu-constraint)

Learn how BitChat optimizes messages for the BLE MTU constraint using selective padding and fragmentation for efficient data transfer.

- Tags: deep-dive
- Published: 2026-08-23

### [What Encryption Protocol Is Used for End-to-End Encryption in the BLE Mesh Transport?](/permissionlesstech/bitchat/what-encryption-protocol-is-used-for-end-to-end-encryption-in-ble-mesh-transport)

Discover the end-to-end encryption protocol in BLE mesh transport. Learn how Noise_XX and XChaCha20-Poly1305 secure your communications.

- Tags: deep-dive
- Published: 2026-08-23

### [What Is the Maximum Hop Count for BLE Mesh Messages in BitChat?](/permissionlesstech/bitchat/what-is-the-maximum-hop-count-for-ble-mesh-messages-in-bitchat)

Discover the maximum hop count for BLE mesh messages in BitChat. Learn how the 7 hop limit prevents infinite forwarding loops and optimizes network performance.

- Tags: faq
- Published: 2026-08-23

### [How BitChat Handles Offline Communication: Mesh Networks, Couriers, and Nostr Fallback](/permissionlesstech/bitchat/how-does-bitchat-handle-offline-communication)

Discover how BitChat ensures offline communication with Bluetooth mesh, courier systems, and Nostr fallback. Explore resilient messaging solutions.

- Tags: deep-dive
- Published: 2026-08-23

### [What Are the Two Transport Layers Used by BitChat? A Deep Dive Into the Hybrid Architecture](/permissionlesstech/bitchat/what-are-the-two-transport-layers-used-by-bitchat)

Discover BitChat's dual-transport architecture. Learn how Bluetooth Mesh and Nostr Protocol enable seamless offline and global messaging for a truly permissionless experience.

- Tags: deep-dive
- Published: 2026-08-23

### [How BitChat Enables Decentralized Peer-to-Peer Messaging: Bluetooth Mesh and Nostr Protocol](/permissionlesstech/bitchat/how-does-bitchat-enable-decentralized-peer-to-peer-messaging)

Discover how BitChat achieves decentralized peer-to-peer messaging using Bluetooth mesh for local offline chat and Nostr for global reach, ensuring secure communication.

- Tags: deep-dive
- Published: 2026-08-23

### [How BitChat Adaptive Battery Modes Optimize Bluetooth Mesh Power Consumption](/permissionlesstech/bitchat/how-does-bitchats-adaptive-battery-modes-work)

Discover how BitChat's adaptive battery modes optimize Bluetooth mesh power on iOS and macOS. Learn about dynamic TTL reduction and traffic-responsive scanning for efficient radio usage.

- Tags: deep-dive
- Published: 2026-08-22

### [What Is the LRU Seen-Set in BitChat Flood Control?](/permissionlesstech/bitchat/what-is-lru-seen-set-used-for-in-bitchats-flood-control)

Understand the LRU seen-set in BitChat flood control. Discover how this duplicate detection mechanism prevents redundant packet processing in Bluetooth mesh networks.

- Tags: internals
- Published: 2026-08-22

### [How Does BitChat Handle Message Compression? A Deep Dive into the Source Code](/permissionlesstech/bitchat/how-does-bitchat-handle-message-compression)

Discover how BitChat uses zlib for automatic message compression above 100 bytes. Learn about its source code implementation for efficient data transfer.

- Tags: deep-dive
- Published: 2026-08-22

### [BLEService.swift in BitChat: Bluetooth Mesh Transport Layer Implementation](/permissionlesstech/bitchat/what-is-purpose-of-bleservice-swift-file-in-bitchat)

Explore BLEService.swift in BitChat to understand its role in the Bluetooth mesh transport layer. This file handles CoreBluetooth events, encryption, and mesh maintenance for secure P2P communication.

- Tags: internals
- Published: 2026-08-22

### [Where to Find the Full BitChat Protocol Specification: A Complete Guide](/permissionlesstech/bitchat/where-can-i-find-full-bitchat-protocol-specification)

Discover the complete BitChat protocol specification. Find wire-format encoding, data models, and design documents in the permissionlesstech/bitchat repository. Get the full details now.

- Tags: api-reference
- Published: 2026-08-22

### [How to Build BitChat from Source for Development](/permissionlesstech/bitchat/how-to-build-bitchat-from-source-for-development)

Learn to build BitChat from source for development. Clone the repo, check your environment, and compile the macOS debug version using just commands.

- Tags: how-to-guide
- Published: 2026-08-22

### [How BitChat Implements Performance Optimizations for Real-Time Messaging](/permissionlesstech/bitchat/what-are-performance-optimizations-used-in-bitchat)

Discover BitChat's performance optimizations including concurrent queues, caching, QoS execution, and throttling for fast, energy-efficient real-time messaging on iOS and macOS.

- Tags: performance
- Published: 2026-08-22

### [How the Panic Wipe Feature Works in BitChat: A Complete Source Code Walkthrough](/permissionlesstech/bitchat/how-does-panic-wipe-feature-work-in-bitchat)

Explore the BitChat Panic Wipe source code. Understand how this atomic reset synchronously deletes all user data across services, ensuring complete privacy with one tap. Learn more now.

- Tags: deep-dive
- Published: 2026-08-22

### [How BitChat Implements Geographic Chat Rooms (Location Channels)](/permissionlesstech/bitchat/how-are-geographic-chat-rooms-implemented-in-bitchat)

Discover how BitChat uses geohash strings for geographic chat rooms. Learn about LocationStateManager and GeohashPresenceService for precise, anonymized communication.

- Tags: how-to-guide
- Published: 2026-08-22

### [How Public History Synchronization Works in BitChat: The Gossip Sync Protocol](/permissionlesstech/bitchat/what-is-process-for-public-history-synchronization-in-bitchat)

Learn how BitChat synchronizes public history using the Gossip Sync Protocol. Discover how Golomb-coded set filters ensure efficient message exchange and data retention.

- Tags: deep-dive
- Published: 2026-08-22

### [How Couriers in BitChat Deliver Offline Messages: Store-and-Forward Explained](/permissionlesstech/bitchat/how-do-couriers-function-in-bitchat-for-message-delivery)

Discover how BitChat Couriers deliver offline messages using store-and-forward in Bluetooth mesh networks. Learn about this secure and decentralized communication method.

- Tags: deep-dive
- Published: 2026-08-22

### [What Is the Sender Outbox in BitChat and How Does It Work?](/permissionlesstech/bitchat/what-is-sender-outbox-in-bitchat-and-how-does-it-work)

Discover the BitChat Sender Outbox, a secure queue for guaranteed message delivery. Learn how it ensures messages reach recipients even through restarts and network issues.

- Tags: how-to-guide
- Published: 2026-08-22

### [How BitChat's Store and Forward Mechanism Ensures Message Delivery](/permissionlesstech/bitchat/how-does-bitchats-store-and-forward-mechanism-ensure-message-delivery)

Discover how BitChat's store and forward mechanism ensures message delivery using a robust stack including local storage, direct sessions, Bluetooth mesh, and Nostr relays for reliable communication.

- Tags: internals
- Published: 2026-08-22

### [How BitChat Encrypts Private Messages Over the Nostr Protocol: A Technical Deep Dive](/permissionlesstech/bitchat/explain-encryption-process-for-private-messages-over-nostr-path-in-bitchat)

Discover how BitChat secures private messages on Nostr using X25519 ECDH, HKDF-SHA-256, and XChaCha20-Poly1305 encryption. Understand the technical deep dive into its private envelope scheme.

- Tags: deep-dive
- Published: 2026-08-22

### [How BitChat Implements Offline Message Sealing Using Noise X](/permissionlesstech/bitchat/how-does-bitchat-implement-offline-message-sealing-using-noise-x)

Discover how BitChat uses Noise X for offline message sealing. Learn about payload encryption and anonymous routing techniques for secure communication.

- Tags: internals
- Published: 2026-08-22

### [BitChat Encryption Methods for Live Sessions: Noise XX Protocol Implementation](/permissionlesstech/bitchat/what-encryption-methods-does-bitchat-use-for-live-sessions-noise-xx)

Discover BitChat's robust encryption for live sessions. Learn how Noise XX protocol, X25519 keys, ChaCha20-Poly1305, and SHA-256 ensure secure peer-to-peer communication.

- Tags: deep-dive
- Published: 2026-08-22

### [How BitChat Handles BLE Mesh Packet Fragmentation: A Complete Technical Guide](/permissionlesstech/bitchat/how-does-bitchat-handle-packet-fragmentation-in-ble-mesh-layer)

Discover how BitChat manages BLE mesh packet fragmentation. Learn about its structured chunking, transmission scheduling, and reassembly for reliable data transfer.

- Tags: deep-dive
- Published: 2026-08-22

### [Understanding the BitChat Mesh Packet Structure: Complete Wire Format Guide](/permissionlesstech/bitchat/what-is-the-structure-of-bitchat-mesh-packet)

Explore the BitChat mesh packet structure. Learn the complete wire format, including the fixed-size header and variable sections, defined in the permissionlesstech/bitchat repository.

- Tags: deep-dive
- Published: 2026-08-22

### [What Is the MessageRouter in BitChat's Architecture?](/permissionlesstech/bitchat/what-is-the-role-of-messagerouter-in-bitchats-architecture)

Discover the MessageRouter in BitChat's architecture. This core component manages messaging, routing, and secure sessions, connecting UI to transport layers.

- Tags: architecture
- Published: 2026-08-22

### [How BitChat Uses the Nostr Protocol for Global Reach: A Technical Deep Dive](/permissionlesstech/bitchat/how-does-bitchat-use-nostr-protocol-for-global-reach)

Discover how BitChat leverages the Nostr protocol for global reach. Explore its decentralized messaging, Bluetooth mesh, and geohash channels for worldwide connectivity without servers.

- Tags: deep-dive
- Published: 2026-08-22

### [How BitChat's BLE Mesh Network Enables Offline Communication](/permissionlesstech/bitchat/how-does-ble-mesh-network-function-in-bitchat-for-offline-communication)

Discover how BitChat's BLE mesh network acts as a store-and-forward packet radio, enabling seamless offline communication by storing and delivering messages when users reconnect.

- Tags: deep-dive
- Published: 2026-08-22

### [What Transport Layers Does BitChat Use? Bluetooth Mesh and Nostr Protocol Explained](/permissionlesstech/bitchat/what-are-the-transport-layers-used-in-bitchat)

Discover how BitChat uses Bluetooth mesh for offline and Nostr protocol for online communication. Explore its dual-transport architecture for resilient messaging.

- Tags: deep-dive
- Published: 2026-08-22

### [How BitChat Implements Decentralized Peer-to-Peer Messaging: Bluetooth Mesh and Nostr Protocol](/permissionlesstech/bitchat/how-does-bitchat-implement-decentralized-peer-to-peer-messaging)

Discover how BitChat implements decentralized peer-to-peer messaging using Bluetooth mesh for local offline chat and Nostr for global reach. Experience secure end-to-end encrypted communication.

- Tags: deep-dive
- Published: 2026-08-22

### [How Source-Based Routing Works in BitChat's BLE Mesh](/permissionlesstech/bitchat/how-does-source-based-routing-work-in-bitchats-ble-mesh)

Discover how BitChat's BLE mesh uses source-based routing with explicit relay paths for efficient unicast forwarding and fallback flooding to ensure reliable communication.

- Tags: internals
- Published: 2026-08-21

### [How BitChat Synchronizes Public Messages Between Peers: Gossip Protocol Implementation](/permissionlesstech/bitchat/how-are-public-messages-synchronized-between-peers-in-bitchat)

Discover how BitChat synchronizes public messages between peers using a gossip protocol. Learn about REQUEST_SYNC packets, attribution windows, and message verification.

- Tags: internals
- Published: 2026-08-21

### [How the Spray-and-Wait Mechanism Works in BitChat: Binary Spray Routing Explained](/permissionlesstech/bitchat/how-does-the-spray-and-wait-mechanism-work-in-bitchat)

Learn how BitChat's spray-and-wait mechanism uses binary spraying to efficiently deliver messages, halving the budget with each hop for reliable delivery without flooding.

- Tags: internals
- Published: 2026-08-21

### [BitChat Courier Envelopes Trust Tiers: Access Control Explained](/permissionlesstech/bitchat/what-are-the-trust-tiers-for-bitchats-courier-envelopes)

Understand BitChat courier envelopes trust tiers. Learn how access control protects your messages, requiring trusted peers for storage and forwarding.

- Tags: deep-dive
- Published: 2026-08-21

### [How BitChat's Courier System Handles Offline Messages: Store-and-Forward Architecture](/permissionlesstech/bitchat/how-does-bitchats-courier-system-handle-offline-messages)

Discover how BitChat's courier system manages offline messages using a store-and-forward architecture. Learn about encrypted envelopes and trusted couriers.

- Tags: architecture
- Published: 2026-08-21

### [How BitChat Retries Unroutable Private Messages: The Claim-and-Release Mechanism Explained](/permissionlesstech/bitchat/what-is-the-retry-mechanism-for-unroutable-private-messages-in-bitchat)

Learn how BitChat's claim-and-release mechanism retries unroutable private messages by removing failed IDs and reattempting transmission. Discover the core of BitChat's message reliability.

- Tags: internals
- Published: 2026-08-21

### [How BitChat Handles Offline Private Messages: Store-and-Forward System Explained](/permissionlesstech/bitchat/how-are-offline-private-messages-handled-in-bitchats-store-and-forward-system)

Discover how BitChat ensures offline private message delivery through its robust store-and-forward system. Learn about local storage, peer couriers, and internet bridges for seamless communication.

- Tags: internals
- Published: 2026-08-21

### [Are BitChat's Private Envelopes Compatible with NIP-17 or NIP-44?](/permissionlesstech/bitchat/are-bitchats-private-envelopes-compatible-with-nip-17-or-nip-44)

Discover if BitChat's private envelopes support NIP-17 or NIP-44. Understand the encryption differences and proprietary scheme used by BitChat for secure messaging.

- Tags: compatibility
- Published: 2026-08-21

### [Which Noise Pattern Is Used for Live Session Establishment in BitChat?](/permissionlesstech/bitchat/which-noise-pattern-is-used-for-live-session-establishment-in-bitchat)

Discover how BitChat establishes live sessions using the Noise XX pattern for secure real-time communication. Learn about its cryptographic components.

- Tags: deep-dive
- Published: 2026-08-21

### [What Is the BitChat PeerID Derived From?](/permissionlesstech/bitchat/what-is-the-bitchat-peerid-derived-from)

Discover what the BitChat PeerID is derived from. Learn how it's generated from a Curve25519 public key for seamless peer identification in the BitChat network.

- Tags: internals
- Published: 2026-08-21

### [How Identities Are Managed in BitChat Using Cryptographic Key Pairs](/permissionlesstech/bitchat/how-are-identities-managed-in-bitchat-using-key-pairs)

Discover how BitChat manages identities with cryptographic key pairs. Learn about its dual-layer architecture for secure, verifiable PeerIDs, combining X25519 and Ed25519 keys.

- Tags: internals
- Published: 2026-08-21

### [What Is the Size Cap for Media Transfers in BitChat?](/permissionlesstech/bitchat/what-is-the-size-cap-for-media-transfers-in-bitchat)

Discover BitChat's media transfer size cap. Learn about the 256 fragments x 16 KiB limit, totaling approximately 4 MiB per private media transfer.

- Tags: faq
- Published: 2026-08-21

### [How Private Chats Are End-to-End Encrypted in BitChat: Noise Protocol and XChaCha20-Poly1305 Implementation](/permissionlesstech/bitchat/how-are-private-chats-end-to-end-encrypted-in-bitchat)

Discover how BitChat secures private chats with Noise IK handshake and XChaCha20-Poly1305 encryption. Learn how end-to-end encryption ensures your messages are unreadable to others.

- Tags: internals
- Published: 2026-08-21

### [Key Modules in BitChat's Application Layer: Runtime, Models, and Services](/permissionlesstech/bitchat/what-are-the-key-modules-in-bitchats-application-layer)

Explore BitChat's application layer modules: AppRuntime, view models like ConversationStore, and services. Understand its architecture for efficient development.

- Tags: internals
- Published: 2026-08-21

### [BitChat Tor Integration: How the iOS App Routes All Traffic Through Tor by Default](/permissionlesstech/bitchat/does-bitchat-support-tor-integration-and-how)

Discover how BitChat integrates Tor by default, routing all traffic through the Tor network for enhanced privacy and security. Learn about its Arti client and fail-closed design.

- Tags: how-to-guide
- Published: 2026-08-21

### [How BitChat Implements Location-Based Channels Using Nostr: A Technical Deep Dive](/permissionlesstech/bitchat/how-are-location-based-channels-implemented-in-bitchat-using-nostr)

Discover how BitChat uses Nostr's geohash tags to build decentralized location based chat rooms. Explore the technical implementation of this innovative messaging system.

- Tags: deep-dive
- Published: 2026-08-21

### [How BitChat Achieves Global Reach Using the Nostr Protocol](/permissionlesstech/bitchat/how-does-bitchat-achieve-global-reach-using-the-nostr-protocol)

Discover how BitChat leverages the Nostr protocol for global reach. Learn about its decentralized messaging, Bluetooth mesh, and geohash channels for worldwide communication.

- Tags: how-to-guide
- Published: 2026-08-21

### [BitChat BLE Mesh Battery Optimization: 7 Power-Saving Strategies in the Stack](/permissionlesstech/bitchat/how-does-bitchat-ensure-battery-optimization-in-its-ble-mesh)

Discover 7 battery optimization strategies in BitChat's BLE mesh stack. Learn how BitChat minimizes power consumption for efficient wireless communication.

- Tags: performance
- Published: 2026-08-21

### [BitChat BLE Mesh TTL: What Is the Default Hop Limit for Multi-Hop Relay?](/permissionlesstech/bitchat/what-is-the-ttl-for-multi-hop-relay-in-bitchats-ble-mesh)

Discover the default TTL hop limit for BitChat's BLE mesh relay. Learn how the 7 hop limit balances reachability and efficiency.

- Tags: deep-dive
- Published: 2026-08-21

### [How BitChat's Bluetooth Mesh Layer Works: Core Bluetooth Implementation Guide](/permissionlesstech/bitchat/how-does-bitchats-bluetooth-mesh-layer-work)

Discover how BitChat implements its Bluetooth Mesh Layer using Core Bluetooth. Learn about its custom BLEService, decentralized networking, and offline peer-to-peer messaging.

- Tags: deep-dive
- Published: 2026-08-21

### [What Are the Two Transport Layers Used in BitChat? A Deep Dive into the Hybrid Architecture](/permissionlesstech/bitchat/what-are-the-two-transport-layers-used-in-bitchat)

Discover the two transport layers in BitChat: Bluetooth Mesh for offline P2P and Nostr for global messaging. Learn about its hybrid architecture and seamless message routing.

- Tags: deep-dive
- Published: 2026-08-21

### [How BitChat Implements Offline-First Communication: Store-and-Forward Architecture Explained](/permissionlesstech/bitchat/how-does-bitchat-implement-offline-first-communication)

Discover how BitChat's store-and-forward architecture enables offline-first communication. Encrypted messages are stored and forwarded via BLE mesh or Nostr relays for reliable delivery.

- Tags: architecture
- Published: 2026-08-21

### [What Are the Security Vulnerabilities in bitchat? A Deep Code Review](/permissionlesstech/bitchat/potential-security-vulnerabilities-bitchat)

Discover bitchat security vulnerabilities. Explore insecure key storage, unreliable memory wiping, and unverified Tor relay claims. Understand the risks in this deep code review.

- Tags: deep-dive
- Published: 2026-08-20

### [How the Bitchat User Interface Is Implemented: SwiftUI Architecture Explained](/permissionlesstech/bitchat/user-interface-implementation-bitchat)

Explore the bitchat SwiftUI architecture. Learn how its reactive, data-driven UI design using ViewModels and EnvironmentObjects syncs state across macOS and iOS.

- Tags: architecture
- Published: 2026-08-20

### [bitchat Development Roadmap: BLE Mesh Architecture Overhaul in 3 Phases](/permissionlesstech/bitchat/roadmap-future-bitchat-development)

Explore the bitchat development roadmap: A 3-phase overhaul of BLE mesh architecture, moving from a monolithic design to a clean, layered mesh stack for enhanced performance and modularity.

- Tags: getting-started
- Published: 2026-08-20

### [How to Integrate BitChat with Other Applications: A Complete Developer Guide](/permissionlesstech/bitchat/integrate-bitchat-with-other-applications)

Learn how to integrate BitChat with other applications using its Bluetooth Mesh and Nostr protocols. This developer guide provides a complete walkthrough.

- Tags: how-to-guide
- Published: 2026-08-20

### [Limitations of the Current Bitchat Implementation: A Technical Deep Dive](/permissionlesstech/bitchat/limitations-current-bitchat-implementation)

Explore the limitations of the current Bitchat implementation. Discover how Bluetooth MTU limits, sender identifiers, and serial engine queues impact performance and privacy in this technical deep dive.

- Tags: deep-dive
- Published: 2026-08-20

### [How Bitchat Handles Network Partitions and Disconnections: A Technical Deep Dive](/permissionlesstech/bitchat/bitchat-network-partitions-disconnections)

Discover how Bitchat masters network partitions and disconnections using three independent transport stacks. Learn about real-time monitoring, thread-safe caching, and automatic retries for robust communication.

- Tags: deep-dive
- Published: 2026-08-20

### [What Data Does BitChat Store and Where? A Privacy‑First Storage Architecture](/permissionlesstech/bitchat/data-storage-bitchat-explained)

Discover what data BitChat stores and where. Learn about its privacy-first architecture, storing minimal data on device and keeping conversation history in memory.

- Tags: architecture
- Published: 2026-08-20

### [How to Run Bitchat Locally: Complete Setup for macOS and iOS Development](/permissionlesstech/bitchat/how-to-run-bitchat-locally)

Learn how to run Bitchat locally on macOS and iOS. Follow our complete setup guide using Xcode or the just command runner for seamless decentralized messenger development.

- Tags: how-to-guide
- Published: 2026-08-20

### [BitChat Build Instructions: How to Compile the macOS and iOS App from Source](/permissionlesstech/bitchat/build-instructions-bitchat)

Follow these BitChat build instructions to compile the macOS and iOS app from source using Xcode or the just command-line tool. Build without code signing.

- Tags: how-to-guide
- Published: 2026-08-20

### [How to Test bitchat: Complete Guide to Swift Package, iOS Simulator, and Performance Testing](/permissionlesstech/bitchat/how-to-test-bitchat-application)

Learn how to test the bitchat app using swift test, just test, or xcodebuild with iOS Simulator. Master package, simulator, and performance testing for robust applications.

- Tags: testing
- Published: 2026-08-20

### [Bitchat API Endpoints: Understanding the Nostr Relay Architecture](/permissionlesstech/bitchat/api-endpoints-bitchat)

Discover how Bitchat uses Nostr relay architecture instead of traditional REST API endpoints. Learn about its WebSocket communication for decentralized messaging.

- Tags: api-reference
- Published: 2026-08-20

### [What License Does the Bitchat Project Use? Unlicense Explained](/permissionlesstech/bitchat/license-for-bitchat-project)

Discover the Unlicense for the Bitchat project. Learn how this public domain dedication allows unrestricted use, modification, and distribution of the permissionlesstech/bitchat repository.

- Tags: api-reference
- Published: 2026-08-20

### [How to Contribute to BitChat: A Complete Guide for Open-Source Developers](/permissionlesstech/bitchat/contribute-to-bitchat-project)

Contribute to the BitChat open-source project. Clone the repo, use just commands, and follow architecture patterns in AppRuntime Swift to add features or fix bugs. Get started today.

- Tags: how-to-guide
- Published: 2026-08-20

### [BitChat Performance Characteristics: Throughput Benchmarks and Architectural Optimizations Explained](/permissionlesstech/bitchat/performance-characteristics-bitchat)

Explore BitChat performance with throughput benchmarks up to 30,000 events/sec. Learn about architectural optimizations like zero-copy protocols and adaptive scheduling.

- Tags: performance
- Published: 2026-08-20

### [How Messages Are Routed and Delivered in the Bitchat Network: A Deep Dive into MessageRouter](/permissionlesstech/bitchat/message-routing-delivery-bitchat-network)

Discover how Bitchat routes and delivers messages using its MessageRouter service. Learn about peer connectivity, offline delivery fallbacks, and internet relays for robust communication.

- Tags: deep-dive
- Published: 2026-08-20

### [What Encryption Methods Does Bit Chat Use? A Deep Dive into Noise Protocol Security](/permissionlesstech/bitchat/encryption-methods-bitchat-security)

Explore Bit Chat's encryption methods: Noise Protocol, Curve25519, ChaCha20-Poly1305, and SHA-256. Secure your peer-to-peer messages with advanced cryptography.

- Tags: deep-dive
- Published: 2026-08-20

### [How Bitchat Peer-to-Peer Communication Works: Architecture and Implementation](/permissionlesstech/bitchat/peer-to-peer-communication-bitchat-explained)

Explore how Bitchat peer-to-peer communication achieves resilience using gossip synchronization, encrypted packets, relay routing, and deduplication for serverless messaging.

- Tags: architecture
- Published: 2026-08-20

### [Key Configuration Files in Bitchat: A Complete Guide to Swift Package and Build Settings](/permissionlesstech/bitchat/key-configuration-files-bitchat)

Discover the nine key configuration files in Bitchat to manage Swift package dependencies, build settings, code signing, and more. Optimize your bitchat build process.

- Tags: how-to-guide
- Published: 2026-08-20

### [Bitchat Dependencies Guide: Complete Breakdown of Swift Packages and Libraries](/permissionlesstech/bitchat/bitchat-project-main-dependencies)

Explore the bitchat dependencies including local Swift packages Arti BitFoundation BitLogger and the swift-secp256k1 cryptographic library for secure communication.

- Tags: how-to-guide
- Published: 2026-08-20

### [What Is the Primary Programming Language Used in the Bitchat Project?](/permissionlesstech/bitchat/what-programming-language-bitchat-project)

Discover the primary programming language of the Bitchat project, a cross-platform chat app. Learn how Swift 5.9 powers its modern features and build process.

- Tags: getting-started
- Published: 2026-08-20

### [Deduplication Mechanism in BitChat's BLE Mesh: How Jitter Prevents Duplicate Floods](/permissionlesstech/bitchat/what-is-the-deduplication-mechanism-used-in-bichats-ble-mesh-and-how-does-jitter-play-a-role)

Discover BitChat's BLE mesh deduplication mechanism. Learn how LRU caching and jitter prevent duplicate message floods, improving network efficiency.

- Tags: internals
- Published: 2026-08-19

### [BitChat BLE Mesh Network Flood Control and Routing Implementation](/permissionlesstech/bitchat/how-does-bichat-implement-flood-control-and-routing-in-its-ble-mesh-network)

Discover how BitChat implements flood control and routing in its BLE mesh network using TTL-capped flooding and source-based routing for reliable multi-hop delivery. Learn more.

- Tags: internals
- Published: 2026-08-19

### [Differences Between BitChat BLE Packet Formats V1 and V2](/permissionlesstech/bitchat/what-are-the-differences-between-bichat-ble-packet-formats-v1-and-v2)

Explore BitChat BLE packet formats V1 vs V2. Discover V2's explicit version byte, TLV routing, and 64-bit capabilities versus V1's implicit typing and flood delivery. Understand the key upgrades.

- Tags: deep-dive
- Published: 2026-08-19

### [How BitChat Implements a Layered Encryption Protocol for Private Messages over Nostr](/permissionlesstech/bitchat/what-is-the-layered-encryption-protocol-for-private-messages-over-nostr-in-bichat)

Discover how BitChat's layered encryption protocol secures private messages over Nostr. Explore its two-layer scheme combining Nostr security and a private envelope for ultimate confidentiality.

- Tags: deep-dive
- Published: 2026-08-19

### [How the Tiered Trust Mechanism in BitChat Affects Message Envelope Deposits](/permissionlesstech/bitchat/how-does-the-tiered-trust-mechanism-in-bichat-affect-message-envelope-deposits)

Discover how BitChat's tiered trust mechanism impacts message envelope deposits. Learn how it prioritizes favorites and limits lower-trust tiers to prevent storage issues.

- Tags: deep-dive
- Published: 2026-08-19

### [BitChat Offline Sealed Message Encryption: Noise X Mechanism and Limitations](/permissionlesstech/bitchat/what-is-the-encryption-mechanism-for-offline-sealed-messages-in-bichat-and-what-are-its-limitations)

Explore BitChat's offline sealed message encryption with the Noise X mechanism. Learn about its limitations including payload caps and expiry windows. Discover a secure communication solution.

- Tags: deep-dive
- Published: 2026-08-19

### [How BitChat Implements Noise Protocol Encryption for Live Sessions](/permissionlesstech/bitchat/how-does-bichat-implement-encryption-for-live-sessions-using-the-noise-protocol)

Discover how BitChat uses Noise protocol encryption for secure live sessions. Learn about its handshake pattern, key management, and stateful channel implementation for enhanced privacy.

- Tags: internals
- Published: 2026-08-19

### [Security Implications of Broadcasting Public Keys and Nicknames in Cleartext on the BitChat Mesh](/permissionlesstech/bitchat/what-are-the-implications-of-broadcasting-public-keys-and-nicknames-in-cleartext-on-the-bichat-mesh)

Discover the security implications of broadcasting public keys and nicknames in cleartext on the BitChat mesh. Learn how this exposes device fingerprints and social graphs to passive tracking.

- Tags: deep-dive
- Published: 2026-08-19

### [How a Peer Is Identified on the BitChat Mesh Network Using a Peer ID](/permissionlesstech/bitchat/how-is-a-peer-identified-on-the-bichat-mesh-network-using-a-peer-id)

Discover how BitChat mesh network uses a unique Peer ID, derived from public keys and prefixes, to identify each peer. Learn about this secure identification method.

- Tags: internals
- Published: 2026-08-19

### [What Cryptographic Key Pairs Does BitChat Use for Identity and Security](/permissionlesstech/bitchat/what-cryptographic-key-pairs-does-bichat-use-for-identity-and-security)

BitChat uses X25519 and Ed25519 key pairs for secure encrypted transport, peer identification, and message authenticity in its decentralized mesh protocol.

- Tags: deep-dive
- Published: 2026-08-19

### [How the BitChat Mesh Engine Manages Protocol State to Avoid Deadlocks](/permissionlesstech/bitchat/how-does-the-bichat-mesh-engine-manage-protocol-state-to-avoid-deadlocks)

Discover how the BitChat mesh engine prevents deadlocks through state serialization, quarantined transports, and deterministic role selection. Learn about its robust protocol management.

- Tags: internals
- Published: 2026-08-19

### [How to Test the BitChat BLE Transport Without Bluetooth Hardware](/permissionlesstech/bitchat/can-the-bichat-ble-transport-be-tested-without-actual-bluetooth-hardware)

Test the BitChat BLE transport without hardware. Learn how to use MockBLEService and simulated link-layer abstractions in the permissionlesstech/bitchat repo for efficient testing.

- Tags: how-to-guide
- Published: 2026-08-19

### [How the BLE Link Layer in BitChat Interacts with CoreBluetooth: Architecture Guide](/permissionlesstech/bitchat/how-does-the-ble-link-layer-in-bichat-interact-with-corebluetooth)

Explore how BitChat's BLE Link Layer integrates with CoreBluetooth. Learn about its architecture and dual role as central and peripheral for seamless data transfer.

- Tags: architecture
- Published: 2026-08-19

### [BitChat BLE Transport Architecture V3: Four-Layer Stack Explained](/permissionlesstech/bitchat/what-are-the-different-layers-in-the-bichat-ble-transport-architecture-v3)

Explore the BitChat BLE transport architecture V3. Understand the four isolated layers BLELinkLayer, Mesh Engine, Feature Modules, and App Boundary for deadlock-free operation.

- Tags: architecture
- Published: 2026-08-19

### [How BitChat Implements Private Messages over Nostr: Proprietary Three-Layer Protocol Explained](/permissionlesstech/bitchat/how-does-bichat-implement-private-messages-over-nostr-and-how-does-it-differ-from-standard-nips)

Discover how BitChat secures private messages on Nostr using its unique three-layer protocol with ECDH and XChaCha20-Poly1305, diverging from standard NIPs for enhanced privacy.

- Tags: deep-dive
- Published: 2026-08-19

### [Maximum Hop Count for Messages in the BitChat BLE Mesh Network](/permissionlesstech/bitchat/what-is-the-maximum-hop-count-for-messages-in-the-bichat-ble-mesh-network)

Discover the maximum hop count for messages in the BitChat BLE mesh network. Learn about the 7-hop limit and its impact on message delivery.

- Tags: deep-dive
- Published: 2026-08-19

### [How BitChat Routes Messages Between Bluetooth and Nostr Transports](/permissionlesstech/bitchat/how-does-bichat-intelligently-route-messages-between-bluetooth-and-nostr-transports)

Discover how BitChat routes messages between Bluetooth and Nostr using a unified Transport protocol and peer capability flags for efficient local BLE mesh or remote Nostr relay communication.

- Tags: how-to-guide
- Published: 2026-08-19

### [How BitChat Enables Communication in Disaster Zones or Remote Areas](/permissionlesstech/bitchat/how-does-bichat-enable-communication-in-disaster-zones-or-remote-areas)

Discover how BitChat ensures communication in disaster zones and remote areas using Bluetooth mesh and Nostr. This dual-transport system guarantees message delivery via available paths, offering a robust fallback solution.

- Tags: how-to-guide
- Published: 2026-08-19

### [What Platforms Does BitChat Support? iOS and macOS Compatibility Guide](/permissionlesstech/bitchat/what-platforms-does-bichat-support)

Discover BitChat platform compatibility. Learn which iOS and macOS versions the permissionlesstech/bitchat app supports, ensuring a smooth experience on your devices.

- Tags: compatibility-guide
- Published: 2026-08-19

### [Does BitChat Require Accounts or Phone Numbers? A Deep Dive into Account-Free Messaging](/permissionlesstech/bitchat/does-bichat-require-accounts-or-phone-numbers-for-users)

Discover if BitChat needs accounts or phone numbers. Learn how BitChat uses cryptographic identities for secure, account-free messaging.

- Tags: deep-dive
- Published: 2026-08-19

### [How BitChat Uses the Nostr Protocol for Global Messaging](/permissionlesstech/bitchat/what-is-the-role-of-the-nostr-protocol-in-bichat-for-global-messaging)

Discover how BitChat utilizes the Nostr protocol for global messaging. Experience decentralized, end-to-end encrypted communication worldwide, free from central servers and user accounts.

- Tags: how-to-guide
- Published: 2026-08-19

### [How BitChat Enables Offline Communication Using Bluetooth Low Energy (BLE) Mesh](/permissionlesstech/bitchat/how-does-bichat-handle-offline-communication-using-bluetooth-low-energy-ble-mesh)

Discover how BitChat uses Bluetooth Low Energy (BLE) mesh for offline communication. Learn about its dual-transport architecture and multi-hop peer-to-peer networking for encrypted messaging without internet.

- Tags: deep-dive
- Published: 2026-08-19

### [BitChat Dual Transport Architecture: How Bluetooth Mesh and Nostr Protocol Enable Resilient Messaging](/permissionlesstech/bitchat/what-is-the-dual-transport-architecture-in-bichat)

Discover BitChat's dual transport architecture blending Bluetooth mesh and Nostr for resilient offline and online messaging. Experience seamless communication.

- Tags: architecture
- Published: 2026-08-19

### [How the Location Presence Store and Geohash-Based Peer Discovery Work in Bitchat](/permissionlesstech/bitchat/how-do-location-presence-store-and-geohash-peer-discovery-work)

Discover how Bitchat's geohash-based peer discovery and ephemeral Nostr events find nearby users securely. Learn about the location presence store and its role in decentralized communication.

- Tags: internals
- Published: 2026-08-09

### [How Bitchat Implements PKCS#7-Style Padding for Privacy Within Noise Frames](/permissionlesstech/bitchat/how-does-app-implement-pkcs7-padding-noise-frames)

Discover how Bitchat uses PKCS#7 padding to secure message sizes within Noise frames. Learn about this privacy-enhancing technique for network observers.

- Tags: internals
- Published: 2026-08-09

### [How Bitchat Enables Deterministic Multi-Node Testing Without Physical Hardware](/permissionlesstech/bitchat/how-does-simulator-facilitate-deterministic-testing)

Learn how Bitchat's pure Swift simulator enables deterministic multi-node testing without physical hardware by replacing CoreBluetooth with an in-memory mesh of sans-I/O engines.

- Tags: how-to-guide
- Published: 2026-08-09

### [How Bitchat Implements Private Groups with Creator-Signed State and Key Rotation](/permissionlesstech/bitchat/how-are-groups-implemented-with-key-rotation)

Discover how Bitchat implements private groups with creator-signed state and secure key rotation using Ed25519 and epoch counters. Learn about this innovative approach to on-device data structures.

- Tags: internals
- Published: 2026-08-09

### [How Bitchat Handles Seamless Network Transitions Between Bluetooth and Nostr](/permissionlesstech/bitchat/how-does-app-handle-network-transitions-bluetooth-nostr)

Discover how Bitchat achieves seamless network transitions between Bluetooth and Nostr by treating them as interchangeable transports, ensuring continuous peer state and automatic fallback.

- Tags: how-to-guide
- Published: 2026-08-09

### [How the Relay Policy Dictates Message Forwarding in the Bitchat Mesh](/permissionlesstech/bitchat/how-does-relay-policy-dictate-message-forwarding)

Discover how Bitchat's relay policy uses RelayController.decide to determine message forwarding in the mesh based on packet type, TTL, and topology. Learn about hop delays and new TTL values.

- Tags: internals
- Published: 2026-08-09

### [BitchatProtocol Binary Packet Format and Wire Encoding Specification](/permissionlesstech/bitchat/what-is-bitchatprotocol-binary-packet-format)

Explore the BitchatProtocol binary packet format and wire encoding. Understand the compact header and big-endian integer encoding for efficient network communication.

- Tags: api-reference
- Published: 2026-08-09

### [How BLEService Manages Concurrent Connections and Authentication States in Bitchat](/permissionlesstech/bitchat/how-does-bleservice-manage-concurrent-connections)

Discover how BLEService manages concurrent connections and authentication in Bitchat. Learn about its dual-queue architecture for thread-safe operations and strict queue isolation.

- Tags: internals
- Published: 2026-08-09

### [How BitChat Tracks Read Receipts and Delivery Status in Its Decentralized Network](/permissionlesstech/bitchat/how-are-read-receipts-tracked-in-decentralized-network)

Discover how BitChat tracks read receipts and delivery status in its decentralized network. Learn about peer-to-peer state machines, signed receipts, and zero central servers for reliable messaging.

- Tags: how-to-guide
- Published: 2026-08-09

### [How Bitchat Queues Messages Offline When Bluetooth and Nostr Are Unavailable](/permissionlesstech/bitchat/how-does-app-queue-messages-offline)

Bitchat queues offline messages when Bluetooth and Nostr fail. Discover how durable storage and courier delegation ensure message delivery upon reconnection.

- Tags: internals
- Published: 2026-08-09

### [How QR-Based OOB Binding Powers the Verification and Vouching System in Bitchat](/permissionlesstech/bitchat/what-is-qr-based-oob-binding-verification-process)

Discover how Bitchat's QR-based OOB binding enables secure verification and vouching. Learn about identity exchange, Noise-session challenges, and network trust propagation.

- Tags: deep-dive
- Published: 2026-08-09

### [How the Push-to-Talk Voice Feature (VoiceBurstPacket) Functions in the Bitchat Mesh](/permissionlesstech/bitchat/how-does-push-to-talk-voice-work-in-mesh)

Discover how the push-to-talk voice feature VoiceBurstPacket fragments audio into BLE packets and streams them through the mesh for real-time playback.

- Tags: deep-dive
- Published: 2026-08-09

### [How Bitchat's File Transfer Protocol Manages Private Media Transfers Over BLE](/permissionlesstech/bitchat/how-does-file-transfer-protocol-handle-private-media-ble)

Discover how the bitchat file transfer protocol secures private media transfers over BLE using a three-layer architecture for authenticated storage and reliable delivery.

- Tags: internals
- Published: 2026-08-09

### [How BitChat Handles BLE Message Fragmentation for Payloads Exceeding the MTU](/permissionlesstech/bitchat/how-does-bitchat-handle-message-fragmentation-ble-mtu)

Discover how BitChat expertly manages BLE message fragmentation for large payloads. Learn about packet splitting, versioned fragments, and re-assembly ensuring reliable data transfer.

- Tags: how-to-guide
- Published: 2026-08-09

### [How Peer Identity Is Managed in Bitchat: Noise Static Keys and Persistent Identifiers](/permissionlesstech/bitchat/how-is-peer-identity-managed-in-bitchat)

Discover how Bitchat manages peer identity using a Noise static key and persistent identifiers for secure authentication and efficient discovery. Learn about its dual-identifier system.

- Tags: internals
- Published: 2026-08-09

### [What Is the Gossip Sync Protocol? How Bitchat Synchronizes Messages in the Mesh](/permissionlesstech/bitchat/what-is-gossip-sync-protocol-for-mesh-synchronization)

Discover the gossip sync protocol's bandwidth-efficient approach to mesh message synchronization. Learn how Golomb-Coded Set filters ensure eventual consistency without central servers.

- Tags: deep-dive
- Published: 2026-08-09

### [How the BLE Connection Scheduler Optimizes Battery Life Through Duty Cycling](/permissionlesstech/bitchat/how-does-ble-connection-scheduler-optimize-battery)

Discover how the BLE connection scheduler optimizes battery life. Learn about its duty-cycling strategy, reducing power consumption by minimizing active radio states.

- Tags: deep-dive
- Published: 2026-08-09

### [How Private Messages Are Encrypted When Routed Over Nostr Using BitChat Private Envelopes](/permissionlesstech/bitchat/how-are-private-messages-encrypted-over-nostr)

Discover how BitChat encrypts private messages over Nostr with private envelopes. Learn about XChaCha20-Poly1305 and secp256k1 for secure, anonymous direct messaging on public relays.

- Tags: deep-dive
- Published: 2026-08-09

### [How the Panic Emergency Wipe (Triple-Tap) and Identity Rotation Work in Bitchat](/permissionlesstech/bitchat/what-is-the-panic-wipe-mechanism-and-identity-rotation)

Discover how Bitchat's panic emergency wipe (triple-tap) instantly erases sensitive data and manages identity rotation. Learn about secure data deletion and generation counters.

- Tags: internals
- Published: 2026-08-09

### [How Bitchat Implements Location-Based Channels Using Geohash Coordinates with Nostr Relays](/permissionlesstech/bitchat/how-are-location-based-channels-implemented-using-geohash)

Discover how Bitchat uses geohash coordinates and Nostr relays to implement location-based channels. Learn about deterministic channel identifiers and geohash-specific relay sets.

- Tags: how-to-guide
- Published: 2026-08-09

### [How the Noise Protocol Ensures End-to-End Encryption and Forward Secrecy in Bitchat](/permissionlesstech/bitchat/how-does-noise-protocol-ensure-end-to-end-encryption)

Discover how the Noise Protocol secures Bitchat with end-to-end encryption and forward secrecy. Learn how session keys prevent decryption of past messages.

- Tags: deep-dive
- Published: 2026-08-09

### [How Multi-Hop Message Relay Works in Bitchat’s BLE Mesh Using TTL-Based Routing](/permissionlesstech/bitchat/how-is-multi-hop-message-relay-implemented-in-ble-mesh)

Discover how Bitchat's BLE mesh utilizes TTL-based routing for multi-hop message relay. Learn about topology-aware caps and random jitter to prevent flooding and collisions.

- Tags: internals
- Published: 2026-08-09

### [How BitChat's Dual Transport Architecture Routes Messages Between Bluetooth Mesh and Nostr](/permissionlesstech/bitchat/how-does-bitchats-dual-transport-architecture-handle-message-routing)

Discover how BitChat's dual transport architecture routes messages via Bluetooth mesh and Nostr. Learn about its smart fallback mechanism for seamless communication.

- Tags: architecture
- Published: 2026-08-09

### [How to Trigger the Emergency Wipe Feature in BitChat](/permissionlesstech/bitchat/how-is-the-emergency-wipe-feature-triggered-in-bitchat)

Learn how to trigger BitChat's emergency wipe feature to instantly erase all local data keys and identity. Discover the triple-tap logo method or panic wipe button in settings.

- Tags: how-to-guide
- Published: 2026-08-08

### [Voice Burst Packet Protocol in BitChat: Implementation and Processing Flow](/permissionlesstech/bitchat/what-is-the-protocol-for-handling-voice-burst-packets-in-bitchat)

Explore BitChat's Voice Burst Packet Protocol for live push-to-talk voice. Learn about its implementation, packet types, and how ChatLiveVoiceCoordinator assembles playable audio.

- Tags: internals
- Published: 2026-08-08

### [How the BitChat Favorites System Influences Courier Selection](/permissionlesstech/bitchat/how-does-the-bitchat-favorites-system-influence-courier-selection)

Discover how the BitChat favorites system prioritizes trusted couriers for message routing, enhancing security and efficiency in decentralized communication. Learn more about this key feature.

- Tags: deep-dive
- Published: 2026-08-08

### [How to Initialize a Noise Session in BitChat's BLE: A Technical Guide](/permissionlesstech/bitchat/what-is-the-process-for-initializing-a-noise-session-in-bitchats-ble)

Learn how to initialize a Noise session in BitChat's BLE. This guide details deriving identifiers, verifying sessions, and executing cryptographic handshakes for secure communication.

- Tags: how-to-guide
- Published: 2026-08-08

### [How BitChat's BLEAnnounceHandler Processes Incoming Announcements](/permissionlesstech/bitchat/how-does-bitchats-bleannouncehandler-process-incoming-announcements)

Learn how BitChat's BLEAnnounceHandler processes incoming announcements in 14 steps. Discover cryptographic validation, trust policies, peer registry updates, and side effect management.

- Tags: internals
- Published: 2026-08-08

### [How Multi-Hop Relays Extend BitChat's Bluetooth Range: A Technical Deep Dive](/permissionlesstech/bitchat/how-do-multi-hop-relays-extend-bitchats-bluetooth-range)

Discover how BitChat's multi-hop relays build a Bluetooth mesh network, extending range beyond 10 meters with TTL forwarding and signed topology announcements. Learn the technical details.

- Tags: deep-dive
- Published: 2026-08-08

### [How BitChat Manages Message TTL Expiration in the Outbox: Implementation Guide](/permissionlesstech/bitchat/how-does-bitchat-manage-message-ttl-expiration-in-the-outbox)

Discover how BitChat manages message TTL expiration in the outbox using a three-layered defense mechanism in MessageRouter.swift. Learn about periodic sweeps, validation, and retry checks.

- Tags: how-to-guide
- Published: 2026-08-08

### [Concurrency Control Mechanism in BitChat's BLE Media Transfers: How It Works](/permissionlesstech/bitchat/what-is-the-concurrency-control-mechanism-in-bitchats-ble-media-transfers)

Discover BitChat's concurrency control for BLE media transfers. Learn how NSLock, serial queues, and panic recovery ensure atomic file operations and prevent race conditions.

- Tags: deep-dive
- Published: 2026-08-08

### [How BitChat Routes Read Receipts and Delivery Acknowledgments: A Complete Technical Guide](/permissionlesstech/bitchat/how-are-read-receipts-and-delivery-acknowledgments-routed-in-bitchat)

Understand how BitChat routes read receipts and delivery acknowledgments. Explore the technical architecture for efficient message tracking and delivery confirmation.

- Tags: deep-dive
- Published: 2026-08-08

### [How BitChat's MessageRouter Balances Reachability and Connection State for Reliable P2P Messaging](/permissionlesstech/bitchat/how-does-bitchats-messagerouter-balance-reachability-and-connection-state)

Discover how BitChat's MessageRouter ensures reliable P2P messaging by balancing reachability and connection state. Learn how it handles offline peers and intermittent connectivity for guaranteed delivery.

- Tags: deep-dive
- Published: 2026-08-08

### [How BitChat's BLE Peer Discovery Protocol Works: CoreBluetooth Implementation Guide](/permissionlesstech/bitchat/how-does-bitchats-ble-peer-discovery-protocol-function)

Learn how BitChat's BLE peer discovery protocol works using CoreBluetooth. Discover service UUID filtering, RSSI evaluation, and budget-aware scheduling for efficient peer management.

- Tags: deep-dive
- Published: 2026-08-08

### [BitChat Private Envelope Format vs NIP-17 and NIP-44: Complete Technical Comparison](/permissionlesstech/bitchat/compare-bitchats-private-envelope-format-with-nip-17-and-nip-44)

Discover the technical differences between BitChat Private Envelope and Nostr NIP-17 and NIP-44. Learn about its XChaCha20 encryption and incompatibility with standard clients.

- Tags: comparison
- Published: 2026-08-08

### [How BitChat Handles Large Message Fragmentation Over BLE](/permissionlesstech/bitchat/how-does-bitchat-handle-large-message-fragmentation-over-ble)

Discover how BitChat manages large message fragmentation over BLE. Learn about its indexed fragments, three-tier pipeline, and built-in recovery mechanisms for efficient data transfer.

- Tags: internals
- Published: 2026-08-08

### [Fallback Mechanism for BitChat's Mesh-Only Delivery Using Nostr: Implementation Guide](/permissionlesstech/bitchat/what-is-the-fallback-mechanism-for-bitchats-mesh-only-delivery-using-nostr)

Implement BitChat's fallback mechanism for mesh-only delivery using Nostr. Learn how BitChat routes messages over Nostr relays when Bluetooth fails, ensuring end-to-end confidentiality.

- Tags: how-to-guide
- Published: 2026-08-08

### [How the BitChat Courier System Delivers Messages to Offline Peers: Store-and-Forward Architecture Explained](/permissionlesstech/bitchat/how-does-the-bitchat-courier-system-deliver-messages-to-offline-peers)

Discover how BitChat's store-and-forward architecture delivers messages to offline peers via Nostr relays or physical couriers. Learn about encrypted rotating-tag envelopes for secure communication.

- Tags: architecture
- Published: 2026-08-08

### [How BitChat Implements BLE Central and Peripheral Roles for Mesh Messaging](/permissionlesstech/bitchat/how-does-bitchats-ble-service-implement-central-and-peripheral-roles)

Discover how BitChat's BLE service uses central and peripheral roles for seamless peer-to-peer mesh messaging with thread-safe event handling.

- Tags: internals
- Published: 2026-08-08

### [BitChat AuthenticatedPeerStatePacket Structure: A Complete Technical Guide to the TLV Wire Format](/permissionlesstech/bitchat/what-is-the-structure-of-bitchats-authenticatedpeerstatepacket)

Explore the AuthenticatedPeerStatePacket structure in BitChat. Understand its TLV wire format for exchanging peer capabilities and Ed25519 keys in Noise sessions.

- Tags: deep-dive
- Published: 2026-08-08

### [How BitChat's Outbox Handles Message Retries: Swift Implementation Guide](/permissionlesstech/bitchat/how-does-bitchats-outbox-handle-message-retries)

Learn how BitChat's outbox ensures Nostr message delivery with persistent in-memory storage and exponential backoff for reliable retries over unstable connections.

- Tags: how-to-guide
- Published: 2026-08-08

### [BitChat Geohash Location Channel Precision Levels: From Region to Building](/permissionlesstech/bitchat/explain-bitchats-geohash-location-channel-precision-levels)

Explore BitChat's six geohash precision levels for Nostr location channels. Discover how BitChat narrows down chat channels from broad regions to specific buildings with geohash.

- Tags: deep-dive
- Published: 2026-08-08

### [How BitChat Encodes Peer Capabilities in Mesh Announcement TLV Packets](/permissionlesstech/bitchat/how-are-peer-capabilities-encoded-in-bitchats-mesh-announcement-tlv-packets)

Discover how BitChat encodes peer capabilities in mesh announcement TLV packets using a compact bitfield. Learn about feature flag preservation and efficient TLV type 0x03 implementation for enhanced mesh networking.

- Tags: internals
- Published: 2026-08-08

### [Noise Protocol Parameters for BitChat's Bluetooth Mesh Encryption: Complete Implementation Guide](/permissionlesstech/bitchat/what-are-the-specific-noise-protocol-parameters-for-bitchats-bluetooth-mesh-encryption)

Discover BitChat's Noise Protocol parameters for Bluetooth mesh encryption. Learn about the fixed Noise_XX_25519_ChaChaPoly_SHA256 configuration and static X25519 key usage in this implementation guide.

- Tags: how-to-guide
- Published: 2026-08-08

### [How BitChat's MessageRouter Prioritizes Bluetooth Mesh Over Nostr](/permissionlesstech/bitchat/how-does-bitchats-messagerouter-prioritize-bluetooth-mesh-over-nostr)

Discover how BitChat's MessageRouter prioritizes Bluetooth mesh over Nostr using integer transport priorities to ensure the first reachable connection. Learn more about this efficient routing strategy.

- Tags: internals
- Published: 2026-08-08

### [BitChat Verification Model: How QR-Based Out-of-Band Binding Works](/permissionlesstech/bitchat/what-is-the-verification-model-and-how-does-qr-based-out-of-band-binding-work)

Discover BitChat's verification model. Learn how QR-based out-of-band binding secures human-readable identities with Noise static keys via encrypted transport.

- Tags: deep-dive
- Published: 2026-08-07

### [How BitChat Implements Tor Integration to Enhance User Privacy](/permissionlesstech/bitchat/how-does-tor-integration-work-in-bitchat-for-enhanced-privacy)

Discover how BitChat uses Tor integration with Arti, the official iOS Tor library, to route all network traffic and bolster user privacy via a local SOCKS5 proxy.

- Tags: deep-dive
- Published: 2026-08-07

### [BitChat Source Routing Mechanism: How Explicit Hop Paths Replace Flooding in Protocol v2](/permissionlesstech/bitchat/what-is-the-source-routing-mechanism-and-how-does-it-work)

Discover BitChat's source routing mechanism in protocol v2. Learn how explicit hop paths replace flooding for efficient unicast forwarding, improving performance and reducing network overhead.

- Tags: internals
- Published: 2026-08-07

### [How BitChat Implements End‑to‑End Encrypted Group Chats: Architecture and Code Deep Dive](/permissionlesstech/bitchat/how-are-group-chats-implemented-with-end-to-end-encryption)

Discover how BitChat implements end-to-end encrypted group chats using AEAD encryption and Ed25519 signatures. Explore the architecture and code in our deep dive.

- Tags: architecture
- Published: 2026-08-07

### [How BitChat's Adaptive Battery Mode Optimizes BLE Power Consumption: 5 Proven Mechanisms](/permissionlesstech/bitchat/how-does-the-adaptive-battery-mode-optimize-ble-power-consumption)

Discover how BitChat's adaptive battery mode slashes BLE power consumption through dynamic throttling of scans, ads, and relay traffic. Optimize your device's battery life now.

- Tags: deep-dive
- Published: 2026-08-07

### [BitChat Private Envelopes vs. Nostr NIP-44 and NIP-59: Key Technical Differences](/permissionlesstech/bitchat/what-is-the-difference-between-bitchats-private-envelopes-and-nip-44nip-59)

Explore the key technical differences between BitChat private envelopes and Nostr NIP-44 NIP-59. Understand BitChat's incompatible encryption and lack of forward secrecy.

- Tags: deep-dive
- Published: 2026-08-07

### [BitChat Emergency Wipe: How the Triple-Tap Feature Erases All Data Instantly](/permissionlesstech/bitchat/how-does-the-emergency-wipe-feature-work-triple-tap)

Secure your data with BitChat's triple-tap emergency wipe. Instantly destroy all information and keys with a hidden gesture for ultimate privacy. Learn how this feature works.

- Tags: how-to-guide
- Published: 2026-08-07

### [How the Geohash Subscription Manager Optimizes Filtering for Location Channels in BitChat](/permissionlesstech/bitchat/how-does-the-geohash-subscription-manager-optimize-location-channel-filtering)

Discover how BitChat's Geohash Subscription Manager optimizes location channel filtering using ephemeral filters, relay proximity, and smart deduplication for efficient bandwidth use.

- Tags: architecture
- Published: 2026-08-07

### [BitChat Persistent Per-Device Identifier: Security Implications and Risks](/permissionlesstech/bitchat/what-are-the-security-considerations-around-the-persistent-per-device-identifier)

Explore BitChat's persistent per-device identifier. Understand its security implications and privacy risks from stable device fingerprinting and tracking.

- Tags: security
- Published: 2026-08-07

### [What Media Transfer Protocol Does BitChat Use for Private File Sharing?](/permissionlesstech/bitchat/how-does-the-media-transfer-protocol-handle-private-file-sharing)

Discover the custom Mesh File Transferring protocol BitChat uses for secure, private file sharing. Learn how Noise encryption ensures your data stays protected with ChatMediaTransferCoordinator.

- Tags: deep-dive
- Published: 2026-08-07

### [How Peer Identity Rotation Works in BitChat: Cryptographic Design and Trigger Conditions](/permissionlesstech/bitchat/how-does-peer-identity-rotation-work-and-when-is-it-triggered)

Discover how BitChat peer identity rotation generates new IDs and fresh keys. Learn about trigger conditions like user requests or epoch expiry.

- Tags: deep-dive
- Published: 2026-08-07

### [BitChat Trust Verification System and Vouch Attestations Explained](/permissionlesstech/bitchat/what-is-the-trust-verification-system-and-how-do-vouch-attestations-work)

Explore BitChat's trust verification system and how vouch attestations work. Learn how verified peers build trust through cryptographic endorsements without direct confirmation.

- Tags: deep-dive
- Published: 2026-08-07

### [How BitChat's Gossip Sync Protocol Synchronizes Message History Across Mesh Networks](/permissionlesstech/bitchat/how-does-the-gossip-sync-protocol-work-for-message-history-synchronization)

Discover how BitChat's gossip sync protocol efficiently back-fills message history across mesh networks using bounded packet stores and Golomb-Coded Set filters, while preventing replay attacks.

- Tags: deep-dive
- Published: 2026-08-07

### [How BLE Services in BitChat Facilitate Multi-Hop Message Relay in the Mesh Network](/permissionlesstech/bitchat/how-do-the-ble-services-handle-multi-hop-message-relay-in-the-mesh)

Discover how BitChat's BLE services enable multi-hop message relay in mesh networks through scheduled relays, TTL routing, and crypto deduplication. Learn more.

- Tags: internals
- Published: 2026-08-07

### [How BitChat Implements Push-to-Talk Voice Communication: A Technical Deep Dive](/permissionlesstech/bitchat/how-does-bitchat-implement-push-to-talk-voice-communication)

Discover how BitChat implements push-to-talk for live voice streaming. Learn about AAC audio frame transmission and seamless transition to voice notes.

- Tags: deep-dive
- Published: 2026-08-07

### [BitChat ConversationStore Architecture and State Management Explained](/permissionlesstech/bitchat/what-is-the-architecture-of-the-conversationstore-and-how-does-it-manage-state)

Explore BitChat's ConversationStore architecture and state management. Learn how this fine-grained observable model and write-only API centralize conversation data.

- Tags: architecture
- Published: 2026-08-07

### [How Private Message Encryption Differs Between BitChat's Mesh and Nostr Transports](/permissionlesstech/bitchat/how-does-private-message-encryption-differ-between-mesh-and-nostr-transports)

Discover how private message encryption differs between BitChat's mesh and Nostr. Understand key derivation with XChaCha20-Poly1305 on both transport layers.

- Tags: deep-dive
- Published: 2026-08-07

### [How BitChat Manages Message Delivery and Read Receipts: A Deep Dive into the Swift Implementation](/permissionlesstech/bitchat/how-does-bitchat-handle-message-delivery-and-read-receipts)

Discover how BitChat implements message delivery and read receipts using its unique three-layer architecture. Explore the DeliveryStatus enum, ReadReceipt struct, and MessageRouter service for reliable communication.

- Tags: deep-dive
- Published: 2026-08-07

### [BitChat Protocol Binary Packet Format and Message Fragmentation Explained](/permissionlesstech/bitchat/what-is-the-bitchatprotocol-binary-packet-format-and-how-does-fragmentation-work)

Understand the BitChat protocol binary packet format and message fragmentation. Learn how oversized messages are fragmented and reassembled using BLEFragmentAssemblyBuffer.

- Tags: deep-dive
- Published: 2026-08-07

### [How BitChat's Bluetooth Mesh Peer Discovery Works: A Technical Deep Dive](/permissionlesstech/bitchat/how-does-peer-discovery-work-in-the-bluetooth-mesh-network)

Explore BitChat's Bluetooth mesh peer discovery. Learn about its three-stage pipeline: scanning, validation, and trust-based response for secure, dynamic connections.

- Tags: deep-dive
- Published: 2026-08-07

### [How BitChat Implements Noise Protocol Encryption in Its Mesh Network](/permissionlesstech/bitchat/how-does-noise-protocol-encryption-work-in-bitchats-mesh-network)

Discover how BitChat implements Noise Protocol encryption in its mesh network. Learn about its use of Curve25519, ChaCha20-Poly1305, and SHA-256 for secure communication.

- Tags: internals
- Published: 2026-08-07

### [How BitChat Handles Message Routing Between Bluetooth and Nostr Transports](/permissionlesstech/bitchat/how-does-message-routing-work-between-bluetooth-and-nostr-transports)

Discover how BitChat's capability-driven abstraction layer routes messages seamlessly between Bluetooth and Nostr transports. Learn about peer reachability and local mesh vs remote relay delivery.

- Tags: internals
- Published: 2026-08-07

### [Performance Optimization Techniques in Bitchat: How the iOS/macOS Chat App Stays Responsive Under Load](/permissionlesstech/bitchat/performance-optimization-techniques-in-bitchat)

Discover how Bitchat achieves peak performance with concurrency, caching, rate limiting, and QoS execution. Learn optimization techniques for a responsive chat app.

- Tags: performance
- Published: 2026-08-06

### [Bitchat Project Dependencies: Complete Swift Package Guide (2024)](/permissionlesstech/bitchat/dependencies-for-bitchat-project)

Discover Bitchat project dependencies managed by Swift Package Manager. Explore Arti, BitFoundation, BitLogger, swift-secp256k1, and arti.xcframework for Tor networking.

- Tags: getting-started
- Published: 2026-08-06

### [Bitchat Testing Strategies: A Complete Guide to Swift XCTest Implementation](/permissionlesstech/bitchat/testing-strategies-for-bitchat)

Master Bitchat testing strategies with Swift XCTest. Explore unit, integration, performance, and validation tests for robust app development in this comprehensive guide.

- Tags: testing
- Published: 2026-08-06

### [How Bitchat Handles Message Encryption: A Deep Dive into the Nostr Private Envelope Protocol](/permissionlesstech/bitchat/how-bitchat-handles-message-encryption)

Discover how Bitchat encrypts private messages with its Nostr-based private envelope protocol. Learn about ECDH, HKDF, XChaCha20-Poly1305, and AES-GCM for secure communication.

- Tags: deep-dive
- Published: 2026-08-06

### [What Build Tools Does Bitchat Use? A Complete Guide to the Swift Development Pipeline](/permissionlesstech/bitchat/build-tools-used-in-bitchat)

Discover the build tools Bitchat employs: Swift Package Manager, xcodebuild, Just, SwiftLint, and Periphery. Learn about its Swift development pipeline.

- Tags: deep-dive
- Published: 2026-08-06

### [How State Is Managed in the BitChat Frontend: A Deep Dive into the MVVM Architecture](/permissionlesstech/bitchat/state-management-in-bitchat-frontend)

Discover how BitChat frontend manages state using MVVM architecture. Explore ChatViewModel as the central source of truth and its intent methods for state mutations.

- Tags: deep-dive
- Published: 2026-08-06

### [How to Run bitchat Locally for Development: A Complete Setup Guide](/permissionlesstech/bitchat/how-to-run-bitchat-locally-for-development)

Learn to run bitchat locally for development. Clone the repository, configure, and build on macOS or iOS simulator for seamless local testing.

- Tags: how-to-guide
- Published: 2026-08-06

### [What Are the Main Modules in the Bitchat Codebase? A Complete Architecture Guide](/permissionlesstech/bitchat/main-modules-in-bitchat-codebase)

Explore the eight main modules of the Bitchat codebase, covering core app, data, logic, UI, networking, sync, share extensions, and utilities. Understand the complete architecture.

- Tags: architecture
- Published: 2026-08-06

### [Bitchat Deployment Strategy: Manual Build-and-Sign Workflow for iOS/macOS](/permissionlesstech/bitchat/deployment-strategy-for-bitchat)

Discover the bitchat deployment strategy: a manual build-and-sign workflow using Justfile, Xcode, and App Store Connect for iOS and macOS applications.

- Tags: architecture
- Published: 2026-08-06

### [How to Contribute to the BitChat Project: A Complete Developer Guide](/permissionlesstech/bitchat/how-to-contribute-to-bitchat-project)

Learn how to contribute to the BitChat project with our developer guide. Follow our 12-step workflow for setting up, testing, and submitting your code for a successful pull request.

- Tags: how-to-guide
- Published: 2026-08-06

### [What Are the API Endpoints for Bitchat? Understanding Nostr WebSocket Relays](/permissionlesstech/bitchat/api-endpoints-for-bitchat)

Discover Bitchat's API endpoints which use Nostr WebSocket relays like wss://relay.damus.io and wss://relay.primal.net for network communication instead of traditional REST APIs.

- Tags: api-reference
- Published: 2026-08-06

### [How Bitchat Implements Real-Time Communication: Nostr Relays and Bluetooth Mesh](/permissionlesstech/bitchat/real-time-communication-implementation-in-bitchat)

Discover how Bitchat achieves real-time communication using Nostr relays for global access and Bluetooth mesh for efficient local peer discovery. Explore its innovative hybrid architecture.

- Tags: internals
- Published: 2026-08-06

### [Bitchat Database Schema: In-Memory Architecture with ConversationStore](/permissionlesstech/bitchat/database-schema-for-bitchat)

Explore the bitchat database schema, featuring an in-memory architecture and ConversationStore for efficient data management. Learn how conversations and messages are stored.

- Tags: architecture
- Published: 2026-08-06

### [How Bitchat Handles User Authentication: Noise XX Handshake and Cryptographic Identity](/permissionlesstech/bitchat/how-bitchat-handles-user-authentication)

Discover how Bitchat handles user authentication with Noise XX handshake, creating password-less cryptographic identities stored securely in your system keychain.

- Tags: deep-dive
- Published: 2026-08-06

### [How the Bitchat Client-Side Architecture Is Structured: A Layer-by-Layer Guide](/permissionlesstech/bitchat/bitchat-client-side-structure)

Explore the Bitchat client-side architecture layer by layer. Understand its UI, ViewModels, Core Services, Cryptography, Sync, and Data Models for secure decentralized messaging.

- Tags: architecture
- Published: 2026-08-06

### [What Are the Core Components of the Bitchat Architecture? A Deep Dive into the Dual-Transport Messaging Stack](/permissionlesstech/bitchat/core-components-of-bitchat-architecture)

Explore the core components of the Bitchat architecture, a dual-transport messaging stack merging local Bluetooth-mesh with global Nostr-relay for seamless communication.

- Tags: deep-dive
- Published: 2026-08-06

### [How to Set Up the Development Environment for Bitchat: Complete Swift Setup Guide](/permissionlesstech/bitchat/how-to-set-up-development-environment-for-bitchat)

Set up the bitchat development environment easily. Clone the repo, install Xcode & Swift, configure settings, and build with just build or Xcode.

- Tags: getting-started
- Published: 2026-08-06

### [How BitChat Outbound Packet Policy and Write Buffering Work: A Deep Dive into the BLE Stack](/permissionlesstech/bitchat/how-does-outbound-packet-policy-write-buffering-work-bitchat)

Discover how BitChat's outbound packet policy and write buffering optimize BLE communication. Learn about link planner, ATT limits, and priority queues for reliable control traffic.

- Tags: deep-dive
- Published: 2026-08-05

### [How to Test Mesh Networking Behavior in BitChat: A Complete Guide for Developers](/permissionlesstech/bitchat/how-can-developers-test-mesh-networking-behavior-bitchat)

Test BitChat mesh networking behavior effectively using the SimulatedMesh harness. Developers can validate BLEService engines in memory, no hardware needed. Read the complete guide.

- Tags: how-to-guide
- Published: 2026-08-05

### [BitChat BLEService Concurrency Model: A Three‑Tier Queue Architecture Explained](/permissionlesstech/bitchat/what-is-concurrency-model-used-bitchats-bleservice)

Explore BitChat's BLEService concurrency model featuring a three-tier queue architecture using GCD serial queues. Discover how it eliminates deadlocks and ensures efficient protocol state, I/O, and shared store management.

- Tags: architecture
- Published: 2026-08-05

### [How BitChat Implements Read Receipts and Delivery Acknowledgments: A Complete Technical Breakdown](/permissionlesstech/bitchat/how-are-read-receipts-delivery-acknowledgments-implemented-bitchat)

Discover how BitChat implements read receipts and delivery acknowledgments. Explore the technical breakdown of data models, message routing, and state tracking for seamless communication.

- Tags: deep-dive
- Published: 2026-08-05

### [How QR Verification Binds Nicknames to Peer Fingerprints in BitChat](/permissionlesstech/bitchat/how-does-qr-verification-bind-nicknames-peer-fingerprints-bitchat)

Discover how BitChat's QR verification links nicknames to peer fingerprints by cryptographically signing a payload containing both your nickname and the peer's Noise key for secure authentication.

- Tags: how-to-guide
- Published: 2026-08-05

### [BitChat Keychain Encryption Key Management Explained](/permissionlesstech/bitchat/how-are-encryption-keys-managed-within-bitchat-keychain)

Discover how BitChat Keychain Encryption Key Management works. Learn about secure storage, lifecycle gating, and device-locked access in this technical explanation.

- Tags: deep-dive
- Published: 2026-08-05

### [How BitChat Handles Multi-Hop Relay: TTL and Packet Forwarding Explained](/permissionlesstech/bitchat/how-does-multi-hop-relay-handle-ttl-packet-forwarding-bitchat)

Learn how BitChat manages multi-hop relay with TTL decrement and packet forwarding. Discover its deterministic relay policy for reliable delivery in any network.

- Tags: deep-dive
- Published: 2026-08-05

### [BitChat BLE Stack Battery Optimization Strategies: 7 Power-Saving Mechanisms Explained](/permissionlesstech/bitchat/what-battery-optimization-strategies-used-bitchat-ble-stack)

Discover BitChat BLE stack battery optimization strategies. Learn 7 power-saving mechanisms like adaptive scanning and rate limiting to extend device life.

- Tags: deep-dive
- Published: 2026-08-05

### [How File Transfer Works Over BLE Mesh in BitChat: A Complete Technical Guide](/permissionlesstech/bitchat/how-does-file-transfer-operate-over-ble-mesh-bitchat)

Discover how BitChat enables file transfer over BLE mesh. Learn about its layered architecture, payload fragmentation, reassembly, and security handlers in this technical guide.

- Tags: deep-dive
- Published: 2026-08-05

### [How BitChat's Gossip Sync Protocol Maintains Message History Across Device Restarts and Network Partitions](/permissionlesstech/bitchat/how-does-gossip-sync-protocol-maintain-message-history-bitchat)

Discover how BitChat's gossip sync protocol preserves message history through device restarts and network partitions using in-memory stores, filtering, and JSON archives for seamless communication.

- Tags: internals
- Published: 2026-08-05

### [What Compression Algorithm Does BitChat Use for Message Data?](/permissionlesstech/bitchat/what-compression-algorithm-does-bitchat-use-message-data)

Discover BitChat's message data compression: zlib via Apple's Compression framework. Learn how payloads over 100 bytes are optimized for efficiency.

- Tags: deep-dive
- Published: 2026-08-05

### [How BitChat Clients Select and Manage Nostr Relays: Architecture Deep Dive](/permissionlesstech/bitchat/how-are-nostr-relays-selected-managed-bitchat-clients)

Explore how BitChat clients select and manage Nostr relays. Discover the three-stage architecture including whitelists custom relays and a dynamic policy engine for privacy and permissions.

- Tags: deep-dive
- Published: 2026-08-05

### [How Peers Advertise and Discover Capabilities in BitChat: A Complete Technical Guide](/permissionlesstech/bitchat/how-do-peers-advertise-discover-capabilities-bitchat)

Learn how BitChat enables real-time peer capability exchange using a lightweight bit-field in BLE advertisement packets. Discover the technical details of this innovative approach.

- Tags: deep-dive
- Published: 2026-08-05

### [How Push-to-Talk Voice Messaging Works in BitChat: A Deep Dive into Live Voice Streaming](/permissionlesstech/bitchat/how-does-push-to-talk-voice-messaging-function-bitchat)

Discover how BitChat's push-to-talk voice messaging streams live audio in real-time, transmitting AAC-encoded frames and converting them into voice notes.

- Tags: deep-dive
- Published: 2026-08-05

### [How Private Media Is Stored and Transferred in BitChat: A Deep Dive into BLE Mesh File Protocols](/permissionlesstech/bitchat/how-is-private-media-stored-transferred-within-bitchat)

Discover how BitChat stores and transfers private media using BLE Mesh File Protocols. Learn about TLV-encoded packets, Noise protocol encryption, and robust transport mechanisms.

- Tags: deep-dive
- Published: 2026-08-05

### [How Peer Identity and Peer ID Rotation Work in BitChat: A Technical Deep Dive](/permissionlesstech/bitchat/how-does-peer-identity-peer-id-rotation-work-bitchat)

Explore how BitChat uses unforgeable peer IDs derived from Noise static public keys for secure rotation. Learn about fresh cryptographic material and signed v2 announce for privacy. Discover BitChat peer identity and rotation.

- Tags: deep-dive
- Published: 2026-08-05

### [How BitChat Handles BLE Packet Fragmentation and Reassembly for Large Messages](/permissionlesstech/bitchat/how-bitchat-handle-ble-packet-fragmentation-reassembly-large-messages)

Learn how BitChat manages BLE packet fragmentation and reassembly for large messages. Discover its efficient buffer and reordering strategy for seamless communication.

- Tags: how-to-guide
- Published: 2026-08-05

### [How BitChat's Store-and-Forward Courier System Enables Offline Messaging](/permissionlesstech/bitchat/what-is-store-and-forward-courier-system-bitchat-how-operate)

Discover BitChat's store-and-forward courier system. Learn how it combines BLE mesh and Nostr for reliable offline messaging to any recipient.

- Tags: internals
- Published: 2026-08-05

### [How Geohash‑Based Location Channels Work in BitChat: A Technical Deep Dive](/permissionlesstech/bitchat/how-are-geohash-based-location-channels-implemented-bitchat)

Discover how BitChat implements geohash-based location channels for private messaging. Learn about hierarchical geohash strings and ephemeral Nostr events in this technical deep dive.

- Tags: deep-dive
- Published: 2026-08-05

### [How BLE Mesh Source Routing Works in BitChat: A Technical Deep Dive](/permissionlesstech/bitchat/how-does-ble-mesh-source-routing-work-in-bitchat)

Discover how BitChat's BLE mesh source routing efficiently delivers unicast packets via pre-computed paths and automatic fallback to broadcast flooding when routes fail. Learn more!

- Tags: deep-dive
- Published: 2026-08-05

### [BitChat ConversationStore Design Philosophy: A Single Source of Truth for Decentralized Chat](/permissionlesstech/bitchat/what-conversationstore-design-managing-conversations)

Discover BitChat's ConversationStore design philosophy. Learn how SSOT, single-writer, and derived views prevent data races in decentralized chat for seamless synchronization.

- Tags: architecture
- Published: 2026-08-04

### [BitChat Emergency Wipe Implementation: How the Panic Wipe Feature Destroys Data Securely](/permissionlesstech/bitchat/how-bitchat-implement-emergency-wipe-data-destruction)

Explore BitChat's emergency wipe implementation. Learn how this feature securely destroys all local data, including keys and messages, ensuring privacy with guaranteed recovery markers.

- Tags: deep-dive
- Published: 2026-08-04

### [BLE Fragment Transfer Scheduling Mechanisms in BitChat: A Deep Dive into the Mesh Stack Architecture](/permissionlesstech/bitchat/describe-ble-fragment-transfer-scheduling-mechanisms)

Explore BitChat's BLE fragment transfer scheduling. Discover how its mesh stack architecture ensures deterministic, deadlock-free message fragmentation and transfer using efficient queue management and radio back-pressure.

- Tags: deep-dive
- Published: 2026-08-04

### [How BitChat Manages Peer ID Rotation to Enhance User Privacy](/permissionlesstech/bitchat/how-bitchat-handle-peer-id-rotation-privacy)

Discover how BitChat uses hourly peer ID rotation, cryptographically derived from a static Noise private key, to prevent tracking and boost user privacy. Learn about pairwise recognition tags.

- Tags: deep-dive
- Published: 2026-08-04

### [What Is the AppRuntime Composition Root in Bitchat and How Does It Manage the Application Lifecycle?](/permissionlesstech/bitchat/what-appruntime-composition-root-manage-app-lifecycle)

Discover the AppRuntime composition root in Bitchat. Learn how it centralizes dependency injection, service wiring, and application lifecycle management for seamless operation.

- Tags: deep-dive
- Published: 2026-08-04

### [How the BitChat Distributed Board System Functions: A Technical Deep Dive](/permissionlesstech/bitchat/how-board-system-work-distributed-message-boards)

Explore the BitChat distributed board system. Discover how this peer-to-peer bulletin board synchronizes signed posts and tombstones across its mesh network without central servers.

- Tags: deep-dive
- Published: 2026-08-04

### [BitChat Private Envelope Format vs NIP-44: Architecture, Usage, and Comparison](/permissionlesstech/bitchat/what-bitchat-private-envelope-format-how-differ-nip-44)

Explore the BitChat private envelope format built on secp256k1 ECDH and compare it to NIP-44. Understand its store-and-forward resilience and trade-offs for offline delivery.

- Tags: architecture
- Published: 2026-08-04

### [How BitChat Implements Geohash-Based Location Channels for Privacy-Preserving Local Communication](/permissionlesstech/bitchat/how-bitchat-implement-location-based-channels-geohash)

Discover how BitChat uses geohash-based location channels for private local communication, mapping GPS data to hierarchical rooms without revealing exact positions.

- Tags: internals
- Published: 2026-08-04

### [RequestSyncManager in Bitchat: How Targeted Fragment Recovery Works](/permissionlesstech/bitchat/explain-request-sync-manager-targeted-fragment-recovery)

Discover how Bitchat's RequestSyncManager uses targeted fragment recovery to precisely retrieve data streams without relying on slow gossip protocols. Learn its validation and tracking mechanism.

- Tags: internals
- Published: 2026-08-04

### [How the Noise Protocol Ensures End-to-End Encryption in the BitChat BLE Mesh](/permissionlesstech/bitchat/how-noise-protocol-provide-end-to-end-encryption-mesh)

Discover how the Noise Protocol enables end-to-end encryption in BitChat's BLE mesh. Learn about mutual authentication, forward secrecy, and authenticated encryption with Noise_XX handshake.

- Tags: deep-dive
- Published: 2026-08-04

### [BLE Policies for Peer Discovery and Connection Management in BitChat](/permissionlesstech/bitchat/what-ble-policies-bitchat-peer-discovery-connection-management)

Explore BitChat's six layered BLE policies for peer discovery and connection management. Discover how BitChat ensures deadlock-free concurrency, atomic security checks, and deterministic peer discovery.

- Tags: architecture
- Published: 2026-08-04

### [How BitChat Reassembles Fragmented Large Messages over BLE: A Deep Dive into the Fragment Assembly Pipeline](/permissionlesstech/bitchat/how-bitchat-handle-fragment-reassembly-large-messages-ble)

Discover how BitChat reassembles fragmented large messages over BLE. Learn about its header parsing, buffer management, and re-injection pipeline for efficient data transfer.

- Tags: deep-dive
- Published: 2026-08-04

### [BLERecentTrafficMonitor: How It Monitors Activity in the Mesh Network](/permissionlesstech/bitchat/what-blerecent-traffic-monitor-how-track-mesh-activity)

Discover how BLERecentTrafficMonitor tracks BLE packet timestamps to enable adaptive radio behavior in bitchat's mesh network. Learn to monitor recent activity efficiently.

- Tags: deep-dive
- Published: 2026-08-04

### [How Prekey Bundles Enable Asynchronous Encrypted Messaging in BitChat](/permissionlesstech/bitchat/how-prekey-bundles-enable-asynchronous-encrypted-messaging-bitchat)

Learn how BitChat uses prekey bundles to enable asynchronous encrypted messaging. Send messages securely even when recipients are offline, without real-time key exchange.

- Tags: deep-dive
- Published: 2026-08-04

### [How the GossipMessageArchive Persists Public Messages in Bitchat](/permissionlesstech/bitchat/what-gossip-message-archive-how-persist-public-messages)

Discover the GossipMessageArchive in bitchat. Learn how this JSON on-disk store ensures persistent public message storage for mesh participants, enabling message retrieval even after hours.

- Tags: internals
- Published: 2026-08-04

### [How BitChat's Intelligent Transport Selection Routes Private Messages: BLE Mesh, Nostr, and Courier Fallbacks](/permissionlesstech/bitchat/describe-bitchat-intelligent-transport-selection-private-messages)

Discover how BitChat intelligently routes private messages using BLE mesh, Nostr, and courier fallbacks. Ensure secure, reliable communication with its advanced transport selection.

- Tags: deep-dive
- Published: 2026-08-04

### [BitChat Message Freshness Windows: How Time Limits Vary by Message Type](/permissionlesstech/bitchat/what-message-freshness-windows-how-differ-message-type)

Discover BitChat's message freshness windows, from 15 minutes to 24 hours based on message type. Learn how ephemeral messages have no persistence.

- Tags: internals
- Published: 2026-08-04

### [How the SyncResponseRateLimiter Prevents Sync Abuse in the BitChat Mesh Network](/permissionlesstech/bitchat/how-sync-response-rate-limiter-prevent-sync-abuse-mesh-network)

Learn how the SyncResponseRateLimiter protects the BitChat mesh network from abuse by capping sync responses and preventing DoS attacks from rapid sync request flooding.

- Tags: internals
- Published: 2026-08-04

### [BitChat Packet Types: Complete Guide to Message Encoding and Processing](/permissionlesstech/bitchat/what-packet-types-bitchat-used-how-handled)

Explore BitChat packet types from announce to announceV2. Learn how this binary protocol handles compression, routing, encryption, and signature verification for secure messaging.

- Tags: deep-dive
- Published: 2026-08-04

### [How BitChat Achieves Multi-Hop Mesh Networking with TTL-Based Relay Decisions](/permissionlesstech/bitchat/how-bitchat-implement-multi-hop-mesh-networking-ttl-relay-decisions)

Discover how BitChat achieves multi-hop mesh networking using TTL-based relay decisions. Learn about its autonomous packet routing and efficient network communication.

- Tags: internals
- Published: 2026-08-04

### [Deduplication Mechanism in BLEReceivePipeline: How Bitchat Prevents Duplicate BLE Packets](/permissionlesstech/bitchat/what-is-blerpereceivepipeline-deduplication-mechanism-how-implemented)

Discover how Bitchat's BLEReceivePipeline prevents duplicate BLE packets with its three-component deduplication system: context generator, LRU cache, and drop-logic handler.

- Tags: internals
- Published: 2026-08-04

### [How GossipSyncManager Uses GCS Filters for Bandwidth-Efficient Message Synchronization in BitChat](/permissionlesstech/bitchat/explain-gossip-sync-manager-gcs-filters-message-synchronization)

Discover how GossipSyncManager efficiently synchronizes BitChat messages using GCS filters. Slash sync bandwidth by only sending missing packets.

- Tags: deep-dive
- Published: 2026-08-04

### [How Noise Session Establishment (XX Handshake) Works in BitChat](/permissionlesstech/bitchat/how-does-noise-session-establishment-xx-handshake-work-in-bitchat)

Learn how BitChat uses the Noise XX handshake to establish secure, authenticated, end-to-end encrypted sessions between peers without needing static public keys. Understand the XX handshake.

- Tags: deep-dive
- Published: 2026-08-03

### [How MeshTopologyTracker Tracks Network Topology for Routing in BitChat](/permissionlesstech/bitchat/how-does-meshtopologytracker-track-network-topology-in-bitchat)

Learn how MeshTopologyTracker in BitChat uses Swift to track network topology for efficient routing. Discover its methods for maintaining connectivity and computing source routes.

- Tags: internals
- Published: 2026-08-03

### [BLEOutboundWriteBuffer: How bitchat Handles BLE Back-Pressure with Prioritized Write Queues](/permissionlesstech/bitchat/what-is-bleoutboundwritebuffer-and-how-does-it-handle-backpressure)

Discover how bitchat's BLEOutboundWriteBuffer manages BLE backpressure with prioritized queues. It automatically discards low-priority packets to optimize data flow and prevent buffer overflow.

- Tags: internals
- Published: 2026-08-03

### [How BLEService Manages Simultaneous Bluetooth Peripheral and Central Roles in Bitchat](/permissionlesstech/bitchat/how-does-bleservice-manage-simultaneous-bluetooth-roles)

Discover how BLEService handles simultaneous Bluetooth peripheral and central roles in Bitchat. Learn about its architecture for concurrent BLE operation.

- Tags: internals
- Published: 2026-08-03

### [How BitChat's Emergency Triple-Tap Wipe Securely Clears All Local Data](/permissionlesstech/bitchat/how-does-bitchats-emergency-wipe-feature-securely-clear-data)

Discover how BitChat's emergency triple-tap wipe securely clears all local data by stopping the network stack, deleting files, clearing stores, and removing keys.

- Tags: internals
- Published: 2026-08-03

### [What Is the RequestSyncManager in BitChat and How Does It Manage Sync Requests?](/permissionlesstech/bitchat/what-is-requestsyncmanager-in-bitchat-and-how-does-it-manage-sync-requests)

Discover the RequestSyncManager in BitChat and learn how it secures the Bluetooth-mesh gossip protocol by validating sync requests and preventing floods.

- Tags: deep-dive
- Published: 2026-08-03

### [How BLEAnnounceHandlingPolicy Prevents Identity Spoofing in BitChat](/permissionlesstech/bitchat/how-does-bleannouncehandlingpolicy-prevent-identity-spoofing-in-bitchat)

Discover how BitChat's BLEAnnounceHandlingPolicy prevents identity spoofing. Learn about its three-stage validation pipeline that cryptographically binds peer identity to signing keys.

- Tags: deep-dive
- Published: 2026-08-03

### [How BLEAnnounceHandlingPolicy Validates Peer Announcements in BitChat: A 3-Stage Security Pipeline](/permissionlesstech/bitchat/how-does-bleannouncehandlingpolicy-validate-peer-announcements-in-bitchat)

Discover how BitChat secures peer announcements using BLEAnnounceHandlingPolicy's 3-stage security pipeline: identity checks, trust verification, and response planning.

- Tags: internals
- Published: 2026-08-03

### [How Push-to-Talk Voice Works Over BitChat’s Mesh Network](/permissionlesstech/bitchat/how-does-push-to-talk-voice-work-over-bitchat-mesh-network)

Discover how BitChat's push-to-talk voice functions over its mesh network. Experience low latency walkie-talkie audio streaming on this decentralized platform.

- Tags: internals
- Published: 2026-08-03

### [How BitChat's Nostr Private Envelope Differs from NIP-17 and NIP-44](/permissionlesstech/bitchat/how-does-bitchats-nostr-private-envelope-differ-from-nip-17-and-nip-44)

Discover how BitChat's Nostr private envelope differs from NIP-17 and NIP-44 using secp256k1 ECDH custom HKDF and a unique double-wrapper structure for enhanced privacy and security.

- Tags: deep-dive
- Published: 2026-08-03

### [BitChat Private Envelope Format for Nostr: Three-Layer Encryption Protocol Explained](/permissionlesstech/bitchat/what-is-the-bitchat-private-envelope-format-for-nostr)

Discover the BitChat private envelope format for Nostr. Learn how its three-layer encryption protocol ensures sender-anonymous, end-to-end encrypted messaging over Nostr relays.

- Tags: deep-dive
- Published: 2026-08-03

### [How Multi-Hop Message Relay Works in BitChat's BLE Mesh with Source Routing](/permissionlesstech/bitchat/how-does-multi-hop-message-relay-work-in-bitchats-ble-mesh)

Discover how BitChat's BLE mesh uses multi-hop message relay with source routing. Learn how senders embed paths and relays forward messages or fall back to flooding for reliable communication.

- Tags: internals
- Published: 2026-08-03

### [How Peer ID Rotation Enhances Privacy in the BitChat Mesh Network](/permissionlesstech/bitchat/how-does-peer-id-rotation-enhance-privacy-in-bitchat-mesh-network)

Discover how peer ID rotation boosts privacy in BitChat's mesh network. Learn how changing identifiers hourly thwarts tracking while enabling trusted contact recognition.

- Tags: internals
- Published: 2026-08-03

### [Understanding the Geohash Precision Hierarchy in BitChat: Block, Neighborhood, and City Levels Explained](/permissionlesstech/bitchat/how-does-geohash-precision-hierarchy-work-in-bitchat)

Explore the BitChat geohash precision hierarchy. Understand how block neighborhood and city levels protect user privacy by broadcasting presence data at region province and city levels.

- Tags: deep-dive
- Published: 2026-08-03

### [Geohash-Based Location Channels in BitChat: Privacy-Preserving Proximity Messaging](/permissionlesstech/bitchat/what-are-geohash-based-location-channels-in-bitchat)

Discover geohash-based location channels in BitChat for private proximity messaging. Communicate with nearby users securely without revealing exact GPS locations.

- Tags: deep-dive
- Published: 2026-08-03

### [How BitChat Implements the Noise Protocol for End‑to‑End Encryption in Its BLE Mesh](/permissionlesstech/bitchat/how-is-noise-protocol-implemented-for-end-to-end-encryption-in-bitchats-ble-mesh)

Discover how BitChat implements the Noise Protocol for robust end-to-end encryption in its BLE mesh network. Learn about XChaCha20-Poly1305 and secure channel creation.

- Tags: deep-dive
- Published: 2026-08-03

### [When Does BitChat Switch Between Bluetooth Mesh and Nostr Transports?](/permissionlesstech/bitchat/when-does-bitchat-switch-between-bluetooth-mesh-and-nostr-transports)

Discover when BitChat switches between Bluetooth mesh and Nostr transports. Learn how BitChat prioritizes Bluetooth and uses Nostr as a fallback for seamless communication.

- Tags: internals
- Published: 2026-08-03

### [How BitChat's Dual Transport Architecture Works: Bluetooth Mesh vs Nostr Routing](/permissionlesstech/bitchat/how-does-bitchats-dual-transport-architecture-work)

Discover how BitChat's dual transport architecture efficiently combines Bluetooth mesh and Nostr relays for seamless local and remote messaging. Learn its fallback strategy.

- Tags: deep-dive
- Published: 2026-08-03

### [How IRC-Style Commands Are Processed and Routed in BitChat: A Complete Technical Breakdown](/permissionlesstech/bitchat/how-are-irc-style-commands-processed-and-routed-in-bitchat)

Discover how BitChat processes and routes IRC-style commands through its three-layer pipeline: UI detection, parsing, and execution. Learn the technical breakdown.

- Tags: deep-dive
- Published: 2026-08-02

### [How to Verify the BitChat Build Using Source-to-Binary Hash Manifests](/permissionlesstech/bitchat/how-can-i-verify-the-build-of-bitchat-using-source-to-binary-hash-manifests)

Verify the BitChat build integrity using signed source-to-binary hash manifests. Confirm your source code matches the authentic release with commit hashes and SHA-256 checksums.

- Tags: how-to-guide
- Published: 2026-08-02

### [BitChat Security Model: How Persistent Identifiers and BLE Header Metadata Protect Privacy](/permissionlesstech/bitchat/what-is-bitchats-security-model-regarding-persistent-identifiers-and-ble-header-metadata)

Discover BitChat's security model for protecting privacy using persistent identifiers and BLE header metadata. Learn how it secures communication.

- Tags: deep-dive
- Published: 2026-08-02

### [How BitChat Handles Migration and Sync Recovery After Network Partitions or Restarts](/permissionlesstech/bitchat/how-does-bitchat-handle-migration-and-sync-recovery-after-network-partitions-or-restarts)

Learn how BitChat recovers and resynchronizes peers after network partitions or restarts using its dual-component architecture, GossipSyncManager and RequestSyncManager.

- Tags: migration-guide
- Published: 2026-08-02

### [BitChat Message Compression: How the zlib Algorithm Optimizes Payloads](/permissionlesstech/bitchat/does-bitchat-use-message-compression-and-what-algorithm-is-employed)

Discover how BitChat optimizes message payloads using the zlib algorithm for efficient compression. Learn when and why BitChat employs this technique.

- Tags: deep-dive
- Published: 2026-08-02

### [BitChat BLE Power Optimization Techniques: 9 Methods to Minimize Radio Usage](/permissionlesstech/bitchat/what-power-optimization-techniques-does-bitchat-use-for-ble)

Discover 9 BitChat BLE power optimization techniques. Minimize radio usage with state-aware control, buffering, and concurrency limits for efficient battery life.

- Tags: best-practices
- Published: 2026-08-02

### [How BitChat's Nostr Integration Handles Private Envelopes Compared to NIP-17/NIP-44](/permissionlesstech/bitchat/how-does-bitchats-nostr-integration-handle-private-envelopes-compared-to-nip-17nip-44)

Discover how BitChat's Nostr integration handles private envelopes using a proprietary protocol incompatible with NIP-17/NIP-44. Learn about its unique encryption and authentication methods.

- Tags: deep-dive
- Published: 2026-08-02

### [How Peer ID Rotation in BitChat Works: Identity Management and Privacy Considerations](/permissionlesstech/bitchat/what-are-the-considerations-for-peer-id-rotation-in-bitchat-for-identity-management)

Explore BitChat peer ID rotation for enhanced privacy and identity management. Discover how rotating IDs ensure unlinkability while maintaining recognition through secure binding.

- Tags: deep-dive
- Published: 2026-08-02

### [How the Emergency Data Wipe Feature Works in BitChat With Triple-tap](/permissionlesstech/bitchat/how-is-the-emergency-data-wipe-feature-implemented-in-bitchat-with-a-triple-tap)

Learn how BitChat's emergency data wipe works via triple-tap. This feature stops the network, deletes media, clears stores, and removes keys for ultimate privacy.

- Tags: how-to-guide
- Published: 2026-08-02

### [How BitChat Implements Relay Flood Control Using Degree-Based TTL Clamping](/permissionlesstech/bitchat/how-does-bitchat-implement-relay-flood-control-using-degree-based-ttl-clamping)

BitChat prevents Bluetooth mesh flooding with degree-based TTL clamping. Discover how it limits packet TTL for dense network regions and high-degree nodes.

- Tags: internals
- Published: 2026-08-02

### [BLE Link-Layer Connection Scheduling Policies in BitChat](/permissionlesstech/bitchat/what-are-the-policies-for-ble-link-layer-connection-scheduling-in-bitchat)

Explore BitChat's BLE link layer connection scheduling policies. Discover its deterministic system separating radio duty-cycling from authentication logic via strict queue hierarchies and budgets.

- Tags: internals
- Published: 2026-08-02

### [How BitChat Handles Persistence for Board Posts and Public Messages During Network Partitions](/permissionlesstech/bitchat/how-does-bitchat-handle-persistence-for-board-posts-and-public-messages-during-network-partitions)

Learn how BitChat ensures board posts and public messages persist through network partitions using its immutable signed packet store and automatic reloading.

- Tags: internals
- Published: 2026-08-02

### [How Private Media Is Stored and Encrypted in BitChat: A Noise Protocol Deep Dive](/permissionlesstech/bitchat/how-is-private-media-stored-and-encrypted-in-bitchat)

Discover how BitChat encrypts private media using Noise XX handshakes and ChaCha20-Poly1305. Learn about secure storage, quotas, and expiration policies.

- Tags: deep-dive
- Published: 2026-08-02

### [Can BitChat Transmit Voice Bursts Over BLE Mesh? Technical Implementation Guide](/permissionlesstech/bitchat/can-bitchat-transmit-voice-bursts-over-ble-mesh)

Learn how BitChat transmits voice bursts over BLE mesh by encapsulating AAC-LC audio frames into VoiceBurstPacket structures routed as opaque encrypted payloads. Technical implementation guide.

- Tags: how-to-guide
- Published: 2026-08-02

### [BitChat Message Freshness Policies and TTL Capping: A Complete Guide](/permissionlesstech/bitchat/what-are-bitchats-message-freshness-policies-including-ttl-capping)

Understand BitChat message freshness policies and TTL capping. Learn how hop limits and age-based expiry control message propagation and storage lifetimes in BitChat.

- Tags: deep-dive
- Published: 2026-08-02

### [How Peer Discovery Works in BitChat's BLE Mesh: Link-Layer Scanning to Secure Binding](/permissionlesstech/bitchat/how-does-peer-discovery-work-in-bitchats-ble-mesh)

Learn how BitChat's BLE mesh discovers peers. Understand the link-layer scanning and secure binding process for seamless connections.

- Tags: internals
- Published: 2026-08-02

### [How BitChat Performs BLE File Transfers and Fragment Assembly](/permissionlesstech/bitchat/what-is-the-process-for-ble-file-transfers-in-bitchat-including-fragment-assembly)

Learn how BitChat achieves BLE file transfers by fragmenting data into packets and reassembling them with sequence number validation and timeouts. Discover the technical details.

- Tags: internals
- Published: 2026-08-02

### [How the BitChat Gossip Sync Protocol Uses GCS Filters for Efficient P2P Synchronization](/permissionlesstech/bitchat/how-does-the-bitchat-gossip-sync-protocol-use-gcs-filters-for-synchronization)

Discover how BitChat's gossip sync protocol leverages GCS filters for efficient P2P synchronization. Save bandwidth by sending only missing messages within a 400-byte budget.

- Tags: internals
- Published: 2026-08-02

### [BitChat Private Message Envelope Format: XChaCha20-Poly1305 Over Nostr Explained](/permissionlesstech/bitchat/what-is-the-format-of-bitchats-private-message-envelope-using-xchacha20-poly1305-over-nostr)

Understand the BitChat private message envelope format. Discover how XChaCha20-Poly1305 encryption is used over Nostr events for secure private messaging.

- Tags: api-reference
- Published: 2026-08-02

### [How Location-Based Channels Work in BitChat: Geohash Precision Explained](/permissionlesstech/bitchat/how-do-location-based-channels-work-in-bitchat-including-geohash-precision)

Discover how BitChat uses geohash precision for location-based channels. Explore building-level to regional chat rooms with this innovative technology.

- Tags: deep-dive
- Published: 2026-08-02

### [BitChat Noise Protocol Integration: Session Establishment and Forward Secrecy Implementation](/permissionlesstech/bitchat/what-is-bitchats-noise-protocol-integration-for-session-establishment-and-forward-secrecy)

Discover BitChat's Noise Protocol integration for secure session establishment and forward secrecy using Curve25519 keys, ephemeral pre-keys, and auto re-keying.

- Tags: deep-dive
- Published: 2026-08-02

### [How BitChat Implements BLE Mesh Routing, TTL, and Multi-Hop Communication](/permissionlesstech/bitchat/how-is-routing-implemented-in-bitchats-ble-mesh-including-ttl-and-multi-hop-communication)

Learn how BitChat implements BLE mesh routing with its source-routing protocol, TTL, and multi-hop communication for efficient, low-latency message delivery.

- Tags: internals
- Published: 2026-08-02

### [BitChat Binary Protocol: Complete Guide to Message Encoding and Fragmentation](/permissionlesstech/bitchat/what-is-the-bitchat-binary-protocol-for-message-encoding-and-fragmentation)

Master the BitChat binary protocol. Learn about message encoding, fragmentation into BLE chunks, and Version 2 requirements for efficient, scalable communication.

- Tags: api-reference
- Published: 2026-08-02

### [How BitChat Chooses Between Bluetooth and Nostr for Its Dual Transport](/permissionlesstech/bitchat/how-does-bitchat-choose-between-bluetooth-and-nostr-for-its-dual-transport)

Discover how BitChat prioritizes Bluetooth mesh for direct P2P delivery and uses Nostr as a fallback. Learn about its dual transport strategy.

- Tags: architecture
- Published: 2026-08-02

### [Where to Find BitChat API Documentation: A Complete Guide to Nostr Protocol Integration](/permissionlesstech/bitchat/where-can-i-find-documentation-for-bitchats-api)

Discover where to find BitChat API documentation. Learn how to integrate with the Nostr protocol directly through this Swift implementation. Get started with decentralized communication.

- Tags: api-reference
- Published: 2026-08-01

### [BitChat Protocol Features: Complete Guide to Offline-First Messaging with Bluetooth Mesh and Nostr](/permissionlesstech/bitchat/what-are-the-main-features-of-the-bitchat-protocol)

Discover BitChat protocol features: robust offline-first messaging via Bluetooth mesh and Nostr relays. Explore seamless, private communication.

- Tags: deep-dive
- Published: 2026-08-01

### [How to Build the BitChat Project from Source: Complete Guide for macOS and iOS](/permissionlesstech/bitchat/how-to-build-the-bitchat-project-from-source)

Build BitChat from source on macOS and iOS with our complete guide. Learn to use Xcode or the just command-line tool to compile the permissionlesstech/bitchat project.

- Tags: how-to-guide
- Published: 2026-08-01

### [BitChat Security Architecture: Threat Model, Key Risks, and Code-Level Mitigations](/permissionlesstech/bitchat/what-are-the-security-implications-of-bitchats-architecture)

Explore BitChat's security architecture. Understand threat models, key risks like identity linkability and metadata exposure, and code-level mitigations for this innovative messaging system.

- Tags: architecture
- Published: 2026-08-01

### [How BitChat's P2P Network Layers Are Implemented: A Deep Dive Into the BLE Mesh Stack](/permissionlesstech/bitchat/how-are-bitchats-p2p-network-layers-implemented)

Explore how BitChat implements its P2P network layers with a four-layer stack. Discover BLE mesh, Nostr/Tor fallbacks, and deterministic simulation in this deep dive.

- Tags: deep-dive
- Published: 2026-08-01

### [What Is the Role of the `client` Directory in BitChat?](/permissionlesstech/bitchat/what-is-the-role-of-the-client-directory-in-bitchat)

Discover the role of the `client` directory in BitChat. It contains all Swift code for the user interface, state management, data persistence, and Nostr communication.

- Tags: deep-dive
- Published: 2026-08-01

### [How to Debug Issues in BitChat: A Complete Guide to Mesh Messaging Troubleshooting](/permissionlesstech/bitchat/how-to-debug-issues-in-bitchat)

Debug BitChat issues with our complete guide. Learn to troubleshoot Bluetooth mesh, Noise encryption, and Nostr relay problems by inspecting transport events and logs.

- Tags: how-to-guide
- Published: 2026-08-01

### [What Core Libraries Power BitChat? A Complete Dependency Breakdown](/permissionlesstech/bitchat/what-are-the-core-libraries-used-by-bitchat)

Discover the core Swift libraries powering BitChat: BitFoundation, BitLogger, Arti, and swift-secp256k1. Explore their roles in cryptography, logging, networking, and Tor routing for a complete dependency breakdown.

- Tags: deep-dive
- Published: 2026-08-01

### [How BitChat Handles Network Connectivity Issues: A Deep Dive into Offline-First Design](/permissionlesstech/bitchat/how-does-bitchat-handle-network-connectivity-issues)

Discover how BitChat overcomes network connectivity issues with its offline first design. Learn about its unique approach to Bluetooth-mesh messaging and internet-dependent operations.

- Tags: deep-dive
- Published: 2026-08-01

### [BitChat Performance Characteristics: Benchmarks, Throughput Metrics, and Architectural Optimizations](/permissionlesstech/bitchat/what-are-the-performance-characteristics-of-bitchat)

Explore BitChat performance benchmarks achieving 11000 BLE packets/sec and 2000 Nostr events/sec. Discover architectural optimizations for high throughput and low latency.

- Tags: performance
- Published: 2026-08-01

### [How to Run BitChat on Different Operating Systems: macOS, iOS Simulator, and Cross-Platform Workflows](/permissionlesstech/bitchat/how-to-run-bitchat-on-different-operating-systems)

Learn how to run BitChat on macOS and iOS simulator using Xcode. Explore streamlined cross-platform workflows with the just task runner for a seamless development experience.

- Tags: how-to-guide
- Published: 2026-08-01

### [What Data Does BitChat Store and Where? Privacy‑First Storage Architecture Explained](/permissionlesstech/bitchat/what-data-is-stored-by-bitchat-and-where)

Discover what data BitChat stores and where. Learn about its privacy-first architecture, keeping minimal data locally and conversation histories in memory for enhanced security.

- Tags: internals
- Published: 2026-08-01

### [How Message Routing Works in BitChat: A Deep Dive Into Its Three-Layer Architecture](/permissionlesstech/bitchat/how-does-message-routing-work-in-bitchat)

Discover how BitChat message routing uses a three-layer architecture for reliable, private delivery, even offline. Explore transport selection, BLE mesh, and courier fallback.

- Tags: deep-dive
- Published: 2026-08-01

### [Does BitChat Have a Server Architecture? Understanding Its Decentralized Design](/permissionlesstech/bitchat/what-is-the-bitchat-server-architecture)

Explore BitChat's unique serverless architecture. Discover how it uses BLE mesh and Nostr relays for decentralized communication without traditional servers. Learn more today.

- Tags: architecture
- Published: 2026-08-01

### [How to Contribute to the BitChat Project: A Complete Developer Guide](/permissionlesstech/bitchat/how-to-contribute-to-the-bitchat-project)

Learn how to contribute to the BitChat project. Fork the repo, set up Swift/Xcode, run tests, and submit pull requests following the dual-transport architecture. Your guide to joining BitChat development.

- Tags: how-to-guide
- Published: 2026-08-01

### [BitChat Build Dependencies: Complete Swift Package Manager Guide](/permissionlesstech/bitchat/what-are-the-dependencies-for-building-bitchat)

Discover BitChat build dependencies including Swift 5.9 Xcode iOS 16 macOS 13 SDKs and the just task runner. Learn about SwiftPM dependency management and local packages for Tor networking logging and foundation utilities.

- Tags: how-to-guide
- Published: 2026-08-01

### [How to Integrate BitChat with Other Applications: Developer Guide for Nostr-Based Messaging](/permissionlesstech/bitchat/can-i-integrate-bitchat-with-other-applications)

Integrate BitChat with your apps using Swift or the Nostr protocol. Learn how to connect Nostr-based messaging via API calls or the iOS Share Extension. Permissionless Tech developer guide.

- Tags: how-to-guide
- Published: 2026-08-01

### [How BitChat Manages User Identity: A Complete Guide to Its Privacy-First Architecture](/permissionlesstech/bitchat/how-is-user-identity-managed-in-bitchat)

Discover how BitChat manages user identity with its privacy-first, decentralized key-derived system. Learn about X25519 key pairs and peer ID rotation for secure, anonymous communication.

- Tags: architecture
- Published: 2026-08-01

### [What Encryption Methods Does BitChat Use? A Complete Technical Breakdown](/permissionlesstech/bitchat/what-encryption-methods-does-bitchat-use)

Discover the encryption methods BitChat employs: Noise Protocol Framework, Curve25519, ChaCha20-Poly1305, SHA-256, and XChaCha20-Poly1305 for Nostr. Get a full technical breakdown.

- Tags: deep-dive
- Published: 2026-08-01

### [How BitChat Handles Peer-to-Peer Connections: BLE Mesh Architecture Explained](/permissionlesstech/bitchat/how-does-bitchat-handle-peer-to-peer-connections)

Discover how BitChat manages peer-to-peer connections via its BLE mesh architecture. Learn about decentralized routing and secure authentication without central servers.

- Tags: architecture
- Published: 2026-08-01

### [BitChat Client Architecture: A Deep Dive Into the SwiftUI-Based Messaging Stack](/permissionlesstech/bitchat/what-is-the-bitchat-client-architecture)

Explore the BitChat client architecture, a SwiftUI messaging stack using ConversationStore and async events for BLE mesh, Tor, and Nostr networks. Learn how concerns are separated for a robust decentralized app.

- Tags: architecture
- Published: 2026-08-01

### [What Programming Languages Are Used in BitChat? A Complete Technical Breakdown](/permissionlesstech/bitchat/what-programming-languages-are-used-in-bitchat)

Discover the programming languages powering BitChat. Learn how Swift, Python, and Shell scripts combine for its macOS/iOS app and CI/CD pipeline.

- Tags: deep-dive
- Published: 2026-08-01

### [How to Set Up BitChat on a Local Machine: Complete Build Guide](/permissionlesstech/bitchat/how-to-set-up-bitchat-on-local-machine)

Build and set up BitChat on your local machine with this complete guide. Clone the repository, install dependencies, and build easily.

- Tags: how-to-guide
- Published: 2026-08-01

### [How BitChat's Emergency Wipe (Triple-Tap) Securely Destroys All Local Data](/permissionlesstech/bitchat/what-is-emergency-wipe-triple-tap-data-destruction-feature)

Discover how BitChat's emergency wipe safely destroys all local data. Learn about the triple-tap feature that securely clears media, stores, and keychain entries.

- Tags: deep-dive
- Published: 2026-07-31

### [BitChat BLE Mesh Battery Optimization Strategies: 7 Power-Saving Techniques Explained](/permissionlesstech/bitchat/what-battery-optimization-strategies-for-ble-mesh)

Discover BitChat's BLE mesh battery optimization strategies. Learn 7 power-saving techniques including flood controls and adaptive scanning to maximize device uptime.

- Tags: best-practices
- Published: 2026-07-31

### [How the Geohash Presence Service Tracks Nearby Users in BitChat](/permissionlesstech/bitchat/how-does-geohash-presence-service-track-nearby-users)

Discover how the geohash presence service tracks nearby users in BitChat by broadcasting ephemeral Nostr events to geohash channels, ensuring privacy with randomized delays and derived identities.

- Tags: architecture
- Published: 2026-07-31

### [Noise Session Establishment and Key Exchange Process in BitChat: A Technical Deep Dive](/permissionlesstech/bitchat/what-is-noise-session-establishment-and-key-exchange-process)

Explore the BitChat noise session establishment and key exchange. Learn how XX handshake pattern, Diffie-Hellman, and Curve25519 ensure secure peer-to-peer communication.

- Tags: deep-dive
- Published: 2026-07-31

### [How the Gossip Protocol in BitChat Constructs the Mesh Topology Graph](/permissionlesstech/bitchat/how-does-gossip-protocol-build-mesh-topology-graph)

Discover how BitChat's gossip protocol constructs its mesh topology graph. Learn about neighbor claims, claim maps, and BFS routing for efficient network visualization.

- Tags: deep-dive
- Published: 2026-07-31

### [BLE Service Policies for Handling Outbound Packets in BitChat](/permissionlesstech/bitchat/what-are-ble-service-policies-for-outbound-packet-handling)

Discover BitChat's BLE service policies for outbound packets. Learn how BLEOutboundPacketPolicy manages padding, priority, fragmentation, and deduplication for Bluetooth links.

- Tags: performance
- Published: 2026-07-31

### [BitChat Relay Controller Flood Control Policy: Mesh Network Traffic Management](/permissionlesstech/bitchat/what-is-relay-controllers-flood-control-policy)

Master BitChat relay controller flood control. Learn how BitChat filters packets by type, TTL, and node degree to manage mesh network traffic and prioritize session data.

- Tags: performance
- Published: 2026-07-31

### [BitChat ConversationStore and AppRuntime Architecture: A Deep Dive into Message State Management](/permissionlesstech/bitchat/what-is-architecture-of-conversationstore-and-appruntime)

Explore BitChat's ConversationStore and AppRuntime architecture. Learn how O(1) incremental updates and ObservableObject conversations streamline message state management for efficient chat applications.

- Tags: architecture
- Published: 2026-07-31

### [How Private Messages Are Routed in BitChat: Bluetooth First, Nostr Fallback](/permissionlesstech/bitchat/how-are-private-messages-routed-bluetooth-vs-nostr-fallback)

Discover how BitChat routes private messages using Bluetooth first and Nostr relays as a fallback. Ensures end-to-end encrypted communication locally and globally.

- Tags: deep-dive
- Published: 2026-07-31

### [How BitChat Discovers Peers Using Bluetooth LE: A Deep Dive into the iOS Implementation](/permissionlesstech/bitchat/how-does-bitchat-handle-peer-discovery-over-bluetooth-le)

Explore how BitChat discovers peers via Bluetooth LE on iOS. Learn about its layered architecture, fixed service UUID, scanning techniques, and intelligent connection scheduler.

- Tags: deep-dive
- Published: 2026-07-31

### [BitChat Version 2 Packet Structure: Binary Wire Format Explained](/permissionlesstech/bitchat/what-is-packet-format-structure-for-version-2-packets)

Explore the BitChat Version 2 packet structure. Understand the binary wire format including fixed header sender ID recipient ID hop list and Ed25519 signature.

- Tags: internals
- Published: 2026-07-31

### [How the Push-to-Talk (PTT) Voice Burst Protocol Works in BitChat](/permissionlesstech/bitchat/how-does-push-to-talk-ptt-voice-burst-protocol-work)

Discover how BitChat's PTT voice burst protocol streams live audio over BLE or direct messages, ensuring walkie-talkie functionality and guaranteed delivery.

- Tags: internals
- Published: 2026-07-31

### [How BitChat Handles Message Synchronization Across Mesh Peers: Gossip-Sync Protocol Explained](/permissionlesstech/bitchat/how-does-message-synchronization-work-across-mesh-peers)

Discover how BitChat's gossip-sync protocol with GCS filters efficiently synchronizes messages across BLE mesh peers, ensuring secure data propagation without central servers.

- Tags: deep-dive
- Published: 2026-07-31

### [BitChat Tor Integration Architecture: How the Arti SOCKS5 Proxy Works](/permissionlesstech/bitchat/what-is-tor-integration-architecture-arti-socks5-proxy)

Explore BitChat's Tor integration architecture. Discover how the embedded Arti SOCKS5 proxy routes traffic, ensuring fail-closed networking via an in-process Swift wrapper.

- Tags: architecture
- Published: 2026-07-31

### [Implementation of Location-Based Channels Using Geohash Coordinates in BitChat](/permissionlesstech/bitchat/how-are-location-based-channels-implemented-using-geohash-coordinates)

Discover how BitChat uses geohash coordinates to implement location-based channels. Learn about privacy protection through hierarchical geohashing and presence zone restrictions.

- Tags: implementation-details
- Published: 2026-07-31

### [How BitChat Implements End-to-End Encryption Using the Noise Protocol](/permissionlesstech/bitchat/how-does-bitchat-implement-end-to-end-encryption-with-noise-protocol)

Discover how BitChat implements end-to-end encryption with the Noise Protocol. Learn about its secure handshake, authenticated encryption, and session management for a robust communication platform.

- Tags: deep-dive
- Published: 2026-07-31

### [What Is the Source-Based Routing Protocol v2 in BitChat? Implementation Guide](/permissionlesstech/bitchat/what-is-source-based-routing-protocol-v2-and-how-does-it-work)

Learn about BitChat's Source-Based Routing Protocol v2 for efficient unicast delivery in mesh networks. Discover its implementation and fallback mechanisms for robust communication.

- Tags: deep-dive
- Published: 2026-07-31

### [How Multi-Hop Message Routing Works in BitChat's BLE Mesh: A Technical Deep Dive](/permissionlesstech/bitchat/how-does-ble-mesh-handle-multi-hop-message-routing)

Explore BitChat's BLE mesh multi-hop message routing. Learn how deterministic routing and throttling enable reliable communication across devices without internet.

- Tags: deep-dive
- Published: 2026-07-31

### [How BitChat's Dual Transport Architecture Balances Bluetooth Mesh and Nostr](/permissionlesstech/bitchat/how-does-bitchats-dual-transport-architecture-work-bluetooth-mesh-nostr)

Explore how BitChat's dual transport architecture uses Bluetooth mesh and Nostr. Discover reliable P2P messaging with automatic fallback for seamless communication.

- Tags: architecture
- Published: 2026-07-31

### [VoiceBurstPacket Format in BitChat: Binary Protocol for Live Voice Notes](/permissionlesstech/bitchat/what-is-the-voiceburstpacket-format-used-for-voice-notes-in-bitchat)

Discover the VoiceBurstPacket format used by BitChat for efficient live voice notes. Learn how this compact binary protocol groups AAC audio frames into sequenced packets for push-to-talk communication.

- Tags: internals
- Published: 2026-07-30

### [How BitChat's Location Channels Use the bridgeGeohash Field to Connect Mesh-Only Peers](/permissionlesstech/bitchat/how-do-bitchats-location-channels-use-the-bridgegeohash-field-to-connect-mesh-only-peers)

Discover how BitChat uses the bridgeGeohash field to connect mesh-only peers. Enable internet communication for devices without direct Nostr connectivity via BLE mesh bridging.

- Tags: internals
- Published: 2026-07-30

### [How BitChat's BLE Fragment Assembly Buffer Handles Out-of-Order Packets](/permissionlesstech/bitchat/how-does-the-ble-fragment-assembly-buffer-in-bitchat-manage-out-of-order-packets)

Learn how BitChat's BLE fragment assembly buffer handles out-of-order packets by buffering valid protocol frames and using reset timers, discarding stray bytes to ensure efficient data processing.

- Tags: internals
- Published: 2026-07-30

### [How the BitChat Emergency Wipe (Triple-Tap) Securely Clears All User Data](/permissionlesstech/bitchat/how-does-the-emergency-wipe-feature-triple-tap-in-bitchat-securely-clear-all-user-data)

Discover how BitChat triple-tap emergency wipe securely erases all user data, stopping network activity and deleting keys, media, and storage for ultimate privacy.

- Tags: internals
- Published: 2026-07-30

### [How BitChat's Geohash-Based Location Channels Function at Multiple Precision Levels](/permissionlesstech/bitchat/how-do-bitchats-geohash-based-location-channels-function-at-different-precision-levels-from-block-to-region)

Explore how BitChat's geohash-based location channels work across multiple precision levels, from broad regions to specific buildings. Learn about its hierarchical chat room system.

- Tags: internals
- Published: 2026-07-30

### [BitChat TLV Packet Encoding: How AnnouncementPacket and Protocols Structure Network Data](/permissionlesstech/bitchat/what-is-the-tlv-packet-encoding-format-used-by-bitchats-announcementpacket-and-other-protocols)

Discover BitChat's TLV packet encoding format for network data. Learn how AnnouncementPacket and protocols structure messages using efficient type-length-value serialization for forward-compatible P2P communication.

- Tags: internals
- Published: 2026-07-30

### [How BitChat Implements Forward Secrecy for Live Sessions](/permissionlesstech/bitchat/how-does-bitchat-implement-forward-secrecy-for-live-sessions)

Discover how BitChat implements forward secrecy for live sessions using Noise XX handshake protocol and automatic re-keying. Protect your past communications now.

- Tags: internals
- Published: 2026-07-29

### [Unable to Generate Article: Source Code Analysis Returned Permission Errors](/permissionlesstech/bitchat/how-are-routes-calculated-and-verified-in-bitchats-source-based-routing)

Troubleshoot BitChat permission errors preventing source code analysis for route calculation and verification. Access inaccessible files and resolve Denied errors for BitChat routing insights.

- Tags: internals
- Published: 2026-07-29

### [What Platforms Does the BitChat Universal App Support?](/permissionlesstech/bitchat/what-platforms-does-bitchat-universal-app-support)

Discover which platforms BitChat supports. This universal Swift app runs natively on iOS, iPadOS, and macOS, sharing a single codebase for efficient development.

- Tags: getting-started
- Published: 2026-07-29

### [BitChat Private Message Types: The 6 Encrypted Formats Defined in the Source Code](/permissionlesstech/bitchat/what-are-different-types-of-private-messages-supported-by-bitchat)

Explore the six BitChat private message types, including text and media formats, all meticulously defined within the source code and secured with Noise encryption for private communication.

- Tags: api-reference
- Published: 2026-07-28

### [How ConversationStore Manages App-Layer Conversation Context in BitChat](/permissionlesstech/bitchat/how-does-conversationstore-manage-app-layer-conversation-context-in-bitchat)

Learn how BitChat's ConversationStore manages app-layer conversation context with its intent API, O(1) lookups, and automated SwiftUI publishing. Discover efficient state management.

- Tags: internals
- Published: 2026-07-28

### [BitChat Mesh Protocol Binary Packet Format: Structure and Implementation](/permissionlesstech/bitchat/what-is-the-defined-binary-packet-format-for-the-bitchat-mesh-protocol)

Explore the BitChat mesh protocol binary packet format. Discover how BitchatPacket struct and encode/decode methods handle compression, signatures, and routing for versions 1 and 2.

- Tags: api-reference
- Published: 2026-07-27

### [How BitChat Implements TOR Integration for Network Privacy](/permissionlesstech/bitchat/what-is-the-implementation-strategy-for-tor-integration-in-bitchat-for-network-privacy)

Discover how BitChat integrates the Arti Tor client for enhanced network privacy. Learn about its fail-closed proxy architecture designed to prevent IP leaks.

- Tags: deep-dive
- Published: 2026-07-27

### [How BitChat Adaptive Battery Modes Optimize Bluetooth Mesh Power Consumption](/permissionlesstech/bitchat/how-do-bitchats-adaptive-battery-modes-contribute-to-power-optimization)

Discover how BitChat's adaptive battery modes slash Bluetooth mesh power consumption on iOS and macOS. Learn about dynamic features that self-regulate for peak efficiency.

- Tags: performance
- Published: 2026-07-27

### [How BitChat Implements Source Routing for Packet Forwarding](/permissionlesstech/bitchat/describe-the-source-routing-algorithm-used-for-packet-forwarding-in-bitchat)

Discover how BitChat's source routing algorithm streamlines packet forwarding by embedding explicit relay lists in headers, eliminating network discovery needs.

- Tags: deep-dive
- Published: 2026-07-27

### [How Ephemeral Keys Enable Location-Based Privacy in BitChat](/permissionlesstech/bitchat/what-role-do-ephemeral-keys-play-in-bitchats-location-based-privacy-features)

Learn how BitChat uses ephemeral keys for location-based privacy. Prevent tracking and detect presence in real-time with geohash-derived keys.

- Tags: deep-dive
- Published: 2026-07-27

### [How BitChat Integrates with Nostr Relays for Extended Global Messaging](/permissionlesstech/bitchat/how-does-bitchat-integrate-with-nostr-relays-for-extended-global-messaging)

Discover how BitChat integrates with Nostr relays for global messaging. Learn how it uses Nostr events and a NostrRelayManager for secure, decentralized communication.

- Tags: integration-guide
- Published: 2026-07-27

### [How BitChat Tracks and Displays Read Receipts and Delivery Status](/permissionlesstech/bitchat/how-does-bitchat-track-and-display-read-receipts-and-delivery-status)

Learn how BitChat tracks and displays read receipts and delivery status. Discover its dual-state architecture for efficient message tracking.

- Tags: internals
- Published: 2026-07-27

### [How the Triple-Tap Emergency Wipe Works in BitChat: Implementation and Security Architecture](/permissionlesstech/bitchat/how-does-the-triple-tap-emergency-wipe-feature-function-in-bitchat)

Discover how BitChat's triple-tap emergency wipe protects your data. Learn about its secure implementation and architecture for instant, complete erasure.

- Tags: deep-dive
- Published: 2026-07-27

### [How Peer Discovery Works in the BitChat Bluetooth Mesh Network](/permissionlesstech/bitchat/what-is-the-process-for-peer-discovery-within-the-bitchat-bluetooth-mesh-network)

Discover BitChat's peer discovery process in Bluetooth mesh networks. Learn how continuous scanning, validation, and reciprocal announcements build a self-healing mesh.

- Tags: internals
- Published: 2026-07-27

### [How BitChat Encrypts and Routes Private Messages: End‑to‑End Security and Decentralized Delivery](/permissionlesstech/bitchat/how-are-private-messages-encrypted-and-routed-to-their-intended-recipients-in-bitchat)

Discover how BitChat encrypts private messages with XChaCha20Poly1305 and routes them securely through decentralized mesh connections, couriers, or Nostr relays. Learn about BitChat's end-to-end security.

- Tags: deep-dive
- Published: 2026-07-27

### [How BitChat Manages BLE Fragmentation and Reassembly for Messages Exceeding MTU](/permissionlesstech/bitchat/how-does-bitchat-manage-ble-fragmentation-and-reassembly-for-messages-exceeding-mtu)

Discover how BitChat handles BLE fragmentation and reassembly for messages over 512 bytes. Learn about its automatic packet splitting versioned fragments and receiver-side buffers.

- Tags: deep-dive
- Published: 2026-07-27

### [How BitChat Handles Message Routing Fallback from Bluetooth to Nostr](/permissionlesstech/bitchat/how-does-bitchat-handle-message-routing-fallback-from-bluetooth-to-nostr)

Discover how BitChat routes messages seamlessly from Bluetooth to Nostr. Learn about its fallback mechanism that ensures message delivery even when peers are offline.

- Tags: how-to-guide
- Published: 2026-07-27

### [How BitChat Implements Noise Protocol Encryption for Peer-to-Peer Messaging](/permissionlesstech/bitchat/explain-the-noise-protocol-encryption-used-in-bitchats-peer-to-peer-communication)

Discover how BitChat secures peer-to-peer messaging using Noise Protocol encryption. Learn about its XX handshake, Curve25519, ChaCha20-Poly1305, and SHA-256 implementation for ultimate privacy.

- Tags: deep-dive
- Published: 2026-07-27

### [How BitChat Implements Geohash-Based Location Channels for Precision-Scoped Messaging](/permissionlesstech/bitchat/how-does-bitchat-implement-geohash-based-location-channels-for-different-precision-levels)

Discover how BitChat uses geohash-based location channels with the Nostr protocol to create precision-scoped messaging. Explore chat rooms from city-wide to building-specific scopes.

- Tags: internals
- Published: 2026-07-27

### [How BitChat's Dual Transport Architecture Chooses Between Bluetooth Mesh and Nostr](/permissionlesstech/bitchat/how-does-bitchats-dual-transport-architecture-choose-between-bluetooth-mesh-and-nostr)

Discover how BitChat's dual transport architecture intelligently selects Bluetooth mesh for local messages and Nostr relays for broader reach. Learn about its smart communication fallback.

- Tags: architecture
- Published: 2026-07-27

### [How Bitchat's Binary Protocol Uses PKCS#7 Padding for Traffic Analysis Protection](/permissionlesstech/bitchat/how-does-binary-protocol-use-pkcs-7-padding-for-traffic-analysis-protection)

Discover how Bitchat's binary protocol uses PKCS#7 padding to encrypt payloads into fixed sizes, thwarting traffic analysis by obscuring plaintext lengths. Learn about its strong privacy protections.

- Tags: internals
- Published: 2026-07-27

### [How NostrCarrier Packets Bridge BitChat’s Mesh Network with the Internet](/permissionlesstech/bitchat/how-do-nostrcarrier-packets-enable-bridging-between-bitchats-mesh-and-the-internet)

Discover how NostrCarrier packets seamlessly bridge BitChat offline mesh networks with the internet. Learn how these signed payloads enable global message relay.

- Tags: deep-dive
- Published: 2026-07-27

### [How BitChat Sync Schedule Prioritizes Different Message Types: Priority Levels Explained](/permissionlesstech/bitchat/how-does-bitchat-sync-schedule-prioritize-different-message-types)

Understand BitChat sync schedule priorities. Learn how BitChat prioritizes message types from public chats to file transfers using a six-level system.

- Tags: deep-dive
- Published: 2026-07-27

### [How BLEPeerRegistry in BitChat Tracks and Manages Discovered Peers](/permissionlesstech/bitchat/how-does-ble-peer-registry-in-bitchat-track-and-manage-discovered-peers)

Discover how BitChat's BLEPeerRegistry efficiently tracks and manages discovered peers using in-memory dictionaries, crypto key pinning, and automatic pruning for optimal performance.

- Tags: deep-dive
- Published: 2026-07-27

### [BitChat BLE File Transfer Fragmentation: Handling Large Media Over 512-Byte MTU](/permissionlesstech/bitchat/how-does-bitchats-ble-file-transfer-handle-large-media-with-fragmentation)

Explore BitChat's BLE file transfer fragmentation for large media. Discover how it handles payloads over 512-byte MTU, reassembles data, and ensures complete file delivery.

- Tags: internals
- Published: 2026-07-27

### [How Push-to-Talk Voice Communication Operates Over BitChat's Mesh Network](/permissionlesstech/bitchat/how-does-push-to-talk-voice-communication-operate-over-bitchats-mesh)

Discover how BitChat's mesh network enables secure, low-latency push-to-talk voice communication using encrypted VoiceBurstPackets over BLE mesh.

- Tags: how-to-guide
- Published: 2026-07-27

### [How BitChat Manages Group Invites and Key Rotation in Private Messaging](/permissionlesstech/bitchat/how-are-group-invites-and-key-rotation-managed-in-bitchat-group-messaging)

Discover how BitChat manages group invites and key rotation using creator-signed state objects and Noise protocol. Learn about secure membership and encryption key management.

- Tags: internals
- Published: 2026-07-27

### [How LZ4 Compression Is Used for Message Optimization in BitChat](/permissionlesstech/bitchat/how-is-lz4-compression-used-for-message-optimization-in-bitchat)

Discover how LZ4 compression optimizes messages in BitChat. Learn about its implementation and impact on network performance.

- Tags: deep-dive
- Published: 2026-07-27

### [How Adaptive Battery Optimization Works in BitChat's BLE Service Duty Cycling](/permissionlesstech/bitchat/how-does-adaptive-battery-optimization-work-in-bitchats-ble-service-duty-cycling)

Discover how BitChat's BLE service duty cycling optimizes battery usage by dynamically adjusting intervals based on traffic, node connections, and power levels. Maintain connectivity efficiently.

- Tags: deep-dive
- Published: 2026-07-27

### [How MessageDeduplicator Prevents Duplicate Messages in BitChat's Mesh Network](/permissionlesstech/bitchat/how-does-message-deduplicator-prevent-duplicate-messages-in-bitchats-mesh)

Learn how BitChat's MessageDeduplicator prevents duplicate messages in its mesh network using a thread-safe LRU cache with time-based expiry for unique packet processing.

- Tags: internals
- Published: 2026-07-27

### [How BitChat's Binary Protocol Optimizes Bluetooth LE Bandwidth: A Technical Deep Dive](/permissionlesstech/bitchat/how-is-bitchats-binary-protocol-designed-for-bluetooth-le-bandwidth-optimization)

Learn how BitChat's binary protocol optimizes Bluetooth LE bandwidth with fixed headers, bit-packed flags, and z-standard compression, minimizing airtime and battery use.

- Tags: deep-dive
- Published: 2026-07-27

### [How NIP-17 Gift-Wrapping Enhances Privacy for Nostr Messages in BitChat](/permissionlesstech/bitchat/how-does-nip-17-gift-wrapping-enhance-privacy-for-nostr-messages-in-bitchat)

Discover how NIP-17 gift-wrapping in BitChat boosts Nostr message privacy using ephemeral keys and NIP-44 v2 encryption. Learn how relays verify messages without reading content.

- Tags: deep-dive
- Published: 2026-07-27

### [How BLE Peer Discovery and Connection Management Work in BitChat](/permissionlesstech/bitchat/how-does-ble-peer-discovery-and-connection-management-work-in-bitchat)

Discover how BitChat leverages BLE for peer discovery and connection management. Learn about its custom mesh layer, secure sessions, and efficient message handling for decentralized communication.

- Tags: deep-dive
- Published: 2026-07-27

### [BitChat Courier Store-and-Forward Service for Offline Messaging: Technical Deep Dive](/permissionlesstech/bitchat/what-is-bitchat-courier-store-and-forward-service-for-offline-messaging)

Learn how the BitChat courier store-and-forward service ensures offline message delivery via encrypted envelopes and spray-and-wait diffusion. Discover its innovative anti-metadata features.

- Tags: deep-dive
- Published: 2026-07-27

### [How Message Fragmentation Works for Large Payloads over Bluetooth LE MTU in Bitchat](/permissionlesstech/bitchat/how-does-message-fragmentation-work-for-large-payloads-over-bluetooth-le-mtu)

Learn how Bitchat handles large payloads over Bluetooth LE MTU using automatic message fragmentation and reassembly with BLEOutboundFragmentPlanner and BLEFragmentAssemblyBuffer.

- Tags: deep-dive
- Published: 2026-07-27

### [How Prekey Bundles Enable Forward-Secret Courier Mail Encryption in BitChat](/permissionlesstech/bitchat/how-are-prekey-bundles-used-for-forward-secret-courier-mail-encryption-in-bitchat)

Discover how BitChat uses prekey bundles for forward-secret courier mail encryption. Learn about one-way Noise X handshakes and unique one-time keys for secure messaging. permissionlesstech/bitchat

- Tags: internals
- Published: 2026-07-27

### [How the BitChat Emergency Wipe Triple-Tap Feature Securely Deletes Local Data](/permissionlesstech/bitchat/how-does-bitchat-emergency-wipe-triple-tap-feature-securely-delete-data)

Discover how the BitChat emergency wipe triple-tap feature securely deletes all local data by stopping networks, wiping files, clearing stores, and removing keys.

- Tags: internals
- Published: 2026-07-27

### [How BitChat's BLE Mesh Handles Multi-Hop Message Relaying with TTL](/permissionlesstech/bitchat/how-does-bitchats-ble-mesh-handle-multi-hop-message-relaying-with-ttl)

Discover how BitChat's BLE mesh network expertly manages multi-hop message relaying using TTL. Learn about hop-limited flooding and hop count enforcement.

- Tags: internals
- Published: 2026-07-27

### [How GossipSyncManager and GCS Filters Enable Efficient Message Synchronization in BitChat](/permissionlesstech/bitchat/how-does-gossip-sync-manager-and-gcs-filters-work-for-message-synchronization)

Learn how GossipSyncManager and GCS filters streamline BitChat message synchronization by exchanging compressed filters for efficient transmission of only missing packets.

- Tags: internals
- Published: 2026-07-27

### [Geohash-Based Location Channels in BitChat's Nostr Integration: A Complete Technical Guide](/permissionlesstech/bitchat/what-are-geohash-based-location-channels-in-bitchats-nostr-integration)

Explore geohash-based location channels in BitChat's Nostr integration. Learn how this technical guide enables hyper-local messaging via compact geohash strings, bypassing centralized servers.

- Tags: deep-dive
- Published: 2026-07-27

### [How BitChat Implements the Noise Protocol for End-to-End Encrypted P2P Communication](/permissionlesstech/bitchat/how-noise-protocol-implemented-for-end-to-end-encrypted-p2p-communication-in-bitchat)

Discover how BitChat uses the Noise Protocol for secure end-to-end encrypted P2P communication. Learn about its XX handshake, Curve25519, ChaCha20-Poly1305, and SHA-256 implementation.

- Tags: deep-dive
- Published: 2026-07-27

### [How BitChat Selects Between Bluetooth Mesh and Nostr for Message Delivery](/permissionlesstech/bitchat/how-does-bitchat-select-between-bluetooth-mesh-and-nostr-for-message-delivery)

Discover how BitChat intelligently selects between Bluetooth mesh and Nostr for message delivery. Learn about its runtime channel check for nearby and geohash-based communication.

- Tags: architecture
- Published: 2026-07-27

