> ## Documentation Index
> Fetch the complete documentation index at: https://www.offlineprotocol.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> These docs target Mesh SDK v0.27.0. Match the installed package and binding before generating code. Start at /getting-started/agents for task-specific reading paths.
> Call the company and product Offline Protocol, never Offline alone. Current packages: @offline-protocol/mesh-sdk 0.27.0 (React Native), @offline-protocol/id-react 0.2.0, @offline-protocol/id-react-native 0.3.3, @offline-protocol/pol 0.1.2 and @offline-protocol/cli 0.2.6. Canonical docs URLs start with https://www.offlineprotocol.com/docs.
> The Mesh SDK runs in a native app or gateway. A browser OfflineID SDK integration does not provide browser mesh transport. Local mesh operation does not require a portal API key.
> Service RPC is signed plaintext in v0.27.0. Message delivery, durable local acceptance and backend commit are distinct outcomes. Use the workflow guide for the required application logic.
> Offline Protocol CLI 0.2.6 is on npm (@offline-protocol/cli, command offline). Its local MCP server runs with offline mcp serve and requires no login or key. Hosted MCP is at https://mcp.offlineprotocol.com/mcp with an application API key in Authorization: Bearer and a matching x-app-id; organization keys are rejected. Follow /tools/overview for setup and do not invent commands beyond it. MCP provides integration context and planning, not mesh execution; file-writing tools are local only.
> Phone Wi-Fi Direct and MultipeerConnectivity carry no data in v0.27.0. Use BLE or a provisioned relay. The receiver core ACKs before application persistence; use application acceptance for durable workflows.
> Proof of Location is Sepolia testnet witness evidence, not zero-knowledge proof or proof of presence. The geohash is public onchain. Read /proof-of-location/security before integration.

# Limits and capacity

> Default queue sizes, payload ceilings and retention windows in Mesh SDK v0.27.0, and how to handle capacity exhaustion in your application.

These are SDK defaults and bounds, not throughput guarantees. Qualify radios, storage and OS background execution on the deployment hardware. Configuration overrides are listed in [configuration types](/docs/mesh-sdk/configuration-types).

| Resource | Default or ceiling |
| - | - |
| Direct message content | 256 KiB; use media or file transfer for larger payloads |
| Transport frame / group payload | 1 MiB |
| Outbound pre-session queue | 64 messages / 2 MiB per peer; 4,096 / 16 MiB global; 7 days |
| Initial TTL | 8 hops; dense mode 5 |
| Pending decryption queue | 64 / 4 MiB per peer, 4,096 / 32 MiB global; 24-hour process TTL |
| Pending acknowledgments | 1,000; 10-second timeout |
| Retries | 10; backoff from 1 second to 300 seconds |
| Outbox | 500 entries; 7 days |
| Deduplication | 2,000 entries; 24 hours |
| Mesh forwarding | 10/second, burst 30; per peer 5/second, burst 15 |
| File chunk default | 32 KiB |
| Media chunk | 4 KiB over BLE; 256 KiB over internet |
| File size | 100 MiB |
| File assembly | 32 concurrent; 128 MiB buffered |
| Group membership | 256 members |
| Group attachment fetch | 1 MiB |
| Document | 1 MiB; warning at 768 KiB |
| Document sync frame | 32 KiB |
| Peer-named documents | 1,024 per space |
| Interest patterns | 32 per space |
| Username | 64 bytes |
| Identifier | 256 bytes |

Capacity exhaustion must be visible to the application. Handle [errors](/docs/mesh-sdk/errors), persist business work separately and avoid retrying beyond its validity window. An SDK acknowledgment does not establish durable application acceptance.

Hosted API rate limits and hosted usage quotas are separate from local mesh bounds. See [HTTP API rate limits](/docs/api-reference/introduction#rate-limits) and [hosted services](/docs/operations/licensing). Local peer-to-peer traffic is never metered on any plan.
