Skip to content

[Feature] Add xBull wallet support via the WalletAdapter interface #488

Description

@collinsezedike

Summary

Implement WalletAdapter (apps/web/src/lib/wallet.ts) for xBull, alongside the existing FreighterWallet. xBull has a mobile app, unlike Freighter, which is desktop-only.

Motivation

The README targets "users in West Africa and other emerging markets" and the roadmap names low-end Android devices as the target device class, but Freighter cannot be installed on mobile at all. xBull is a real path to reaching that user on a phone.

Proposed Solution

Add an XBullWallet class implementing the WalletAdapter interface (isInstalled/isAuthorized/connect/sign) introduced in #476, using xBull's own connection API. Do not wire it into the UI yet, a wallet-picker issue will follow once at least one non-Freighter wallet exists to design the picker against; this issue is just the adapter implementation.

Scope

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

Acceptance Criteria

  • XBullWallet 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 extension
  • Unit tests covering the real xBull 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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardStellar WaveIssues in the Stellar wave programThird 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