Skip to content

[Feature] Add LOBSTR wallet support via the WalletAdapter interface #490

Description

@collinsezedike

Summary

Implement WalletAdapter (apps/web/src/lib/wallet.ts) for LOBSTR, alongside FreighterWallet and (once #488 lands) XBullWallet. LOBSTR is mobile-first, unlike Freighter.

Motivation

Same motivation as #488: the README targets emerging-market users and the roadmap names low-end Android devices as the target device class, but Freighter cannot be installed on mobile. LOBSTR is one of the most widely used mobile Stellar wallets and is a real path to reaching that user.

Proposed Solution

Add a LobstrWallet class implementing the WalletAdapter interface (isInstalled/isAuthorized/connect/sign) introduced in #476, using LOBSTR's own connection API (likely WalletConnect-based, since LOBSTR doesn't expose a browser-extension API the way Freighter does — confirm the actual integration path during implementation). Do not wire it into the UI yet, same as #488; the wallet-picker issue comes after at least one non-Freighter wallet exists to design against.

Scope

Field Value
Area Frontend
Protocol affected None
Network Both
Breaking change? No

Acceptance Criteria

  • LobstrWallet implements WalletAdapter fully (isInstalled, isAuthorized, connect, sign)
  • Matches the same E2E-mock-wallet short-circuit pattern FreighterWallet uses, so Playwright e2e tests can exercise it without a real wallet
  • Unit tests covering the real LOBSTR path and the e2e-mock path, mirroring wallet.test.ts's existing Freighter coverage
  • pnpm --filter @meridian/web lint && pnpm --filter @meridian/web typecheck && pnpm --filter @meridian/web test pass

Additional Context

Third of the multi-wallet batch. Depends on #476 (merged). Followed by a wallet-picker UI issue, then a docs update.

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardThird CampaignCampaign: Third CampaignenhancementNew feature or requestfrontendInvolves React components, Tailwind styling, or Next.js pagesmediumRequires familiarity with the Meridian codebase or relevant tooling; expect 4–8 hours

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions