MeshKit
Providers

Helia Provider

App-owned Helia storage for web and mobile runtimes.

HeliaProvider lets an application use an app-owned Helia/UnixFS stack as the encrypted byte-storage path while preserving MeshKit client semantics.

Use it when the app owns its IPFS/libp2p runtime, especially in browser, PWA, or mobile-style environments where connecting directly to an operator Kubo RPC endpoint is not appropriate.

What The App Owns

With Helia, MeshKit does not configure libp2p for you. Your app owns:

  • Helia node creation
  • UnixFS adapter creation
  • transports and peer discovery
  • persistence and cache behavior
  • browser/mobile lifecycle integration
  • network permissions
  • metadata service or metadata persistence strategy for MeshKit workflows

MeshKit encrypts content and calls the adapter you provide.

Example

import { createMeshkit, HeliaProvider } from "@meshkit/core";

export async function createClient(unixfs: {
  addBytes(bytes: Uint8Array): Promise<{ toString(): string }>;
  cat(cid: unknown): AsyncIterable<Uint8Array>;
}) {
  return createMeshkit({
    provider: new HeliaProvider({ unixfs }),
    identity: "browser-peer",
  });
}

Wire the actual Helia node in your runtime-specific app layer, then pass the UnixFS API into the provider.

When To Use Helia

Good fitPoor fit
Browser/PWA owns in-process IPFSServer app already has an authenticated Kubo service
Mobile app owns transport lifecycleYou need operator-controlled pinning/cluster behavior first
You want app-level peer behaviorYou need a simple CLI provider config only

Metadata Boundary

Helia handles byte storage and retrieval. MeshKit workflows still need metadata for proofs, capsules, mailboxes, sync jobs, vaults, capabilities, and logs. Decide where that metadata lives before using Helia for production sharing, messaging, sync, or policy workflows.

Production Caveats

  • Browser and mobile network behavior can be limited by platform lifecycle, connectivity, and permissions.
  • Persisted local IPFS data is not the same as durable multi-provider retention.
  • Validate retrieval after app restart and network changes.
  • Do not claim production readiness until the metadata boundary is also validated.

Next Steps

On this page