An extension of the logos_js_sdk to enable web app built with it run in standard browsers, with limited access to Logos functionality. This is to enable onboarding of new users with minimal friction, specifically relevant for the activity_hub.

Ai generated

This entire document was generated by an LLM and has not yet been human-reviewed.

FURPS+

Functionality

  • Connect to publicly accessible Logos blockchain RPC endpoints
  • Access recent messages via Logos Messaging (limited history)
  • Basic wallet operations (view balance, sign transactions with browser wallet)
  • Enable interaction with smart contracts via RPC
  • WASM-compiled Logos Blockchain client (optional)
  • Existing JavaScript implementation of Logos Messaging protocols

Usability

  • Provide intuitive API matching Logos JS SDK where possible
  • Include TypeScript type definitions for IDE support
  • Offer example code and starter templates
  • Support all modern browsers (Chrome, Firefox, Safari, Edge)
  • No installation required - works in any browser

Reliability

  • Graceful degradation when features unavailable
  • Clear error messages for unsupported operations
  • Fallback to public RPC when local node unavailable

Supportability

  • Maintain backward compatibility across versions
  • Support modern bundlers (Webpack, Vite, Rollup)
  • Clear documentation of browser limitations vs launcher version

+ (Privacy, Anonymity, Censorship-Resistance)

  • Limited Privacy: Relies on public RPC endpoints (IP exposure risk)
  • Limited Anonymity: Browser fingerprinting and network analysis possible
  • Partial Censorship-Resistance: Access to Logos Messaging for recent data
  • Security: Client-side key management, browser wallet integration

Demand Validation

Potential Users: Web developers building onboarding experiences, newcomers to Logos ecosystem

Use Cases:

  • Activity Hub browser version for newcomers
  • Preview/read-only interfaces for Logos data
  • Landing pages with live Logos network stats
  • Onboarding funnels to convert users to Logos App
  • Developer documentation with live code examples
  • Public-facing dashboards and explorers

Possible Implementation

  • Core Library: TypeScript implementation with browser-compatible dependencies
  • RPC Provider: Connect to public Logos RPC endpoints
  • Messaging Client: JavaScript implementation or WASM-compiled client for Logos Messaging
  • Limited Storage: Read-only access to Logos Storage via HTTP gateways (no upload)
  • Wallet Integration: Browser extension wallets (MetaMask-style)

Example API (with limitations)

const logos = new LogosAPI({
  mode: 'browser',
  rpcUrl: 'https://rpc.logos.network'
});
 
// ✅ Recent messaging works
await logos.chat.joinChannel('general');
logos.chat.onChatMessage((msg) => { ... });
 
// ❌ Full history NOT available (limited to recent)
// await logos.chat.retrieveHistory('general'); // Limited or unavailable
 
// ❌ Storage upload NOT available
// await logos.storage.upload(data); // NOT SUPPORTED
 
// ✅ Storage download MAY work via HTTP gateway
const content = await logos.storage.download(cid); // Via gateway
 
// ✅ Wallet operations via RPC
const balance = await logos.wallet.ethBalance('0x...');

Technical Validation

Risks & Challenges:

  • Documenting which features work vs require Logos App
  • Managing user expectations about privacy limitations
  • Maintaining feature parity where possible
  • Browser bundle size with WASM dependencies
  • CORS and browser security restrictions
  • Public RPC infrastructure availability

Limitations (compared to Logos JS SDK):

  • No Logos Storage upload: Cannot write data to decentralized storage
  • Limited message history: Only recent messages available, no persistent history retrieval
  • Reduced privacy: IP exposure to public RPC endpoints
  • No local node: Cannot run full Logos Core modules
  • Browser restrictions: CORS, local storage limits, no native APIs

Dependencies:

  • Public Logos RPC endpoints (infrastructure requirement)
  • HTTP gateways for Logos Storage read access
  • WASM-compiled Logos clients (optional)
  • Browser wallet extensions for transaction signing

Integration Points:

  • Public Logos blockchain RPC endpoints
  • Logos Messaging via public relays
  • Logos Storage HTTP gateways (read-only)
  • Browser wallet extensions (MetaMask, etc.)
  • Onboarding funnel to Logos JS SDK

Migration Path

The browser version serves as an onboarding funnel to the full Logos experience:

  1. Newcomer uses Activity Hub in browser (no installation)
  2. Discovers limitations (cannot upload minutes to Storage, limited history)
  3. Installs Logos App to access full functionality
  4. Same codebase works in both environments with feature detection

This aligns with the Logos Web SDK strategy of reducing friction while maintaining a clear upgrade path.