Skip to content
Developers

@synqid/solana-mobile.
MWA, wired.

Solana Mobile Stack integration. Mobile Wallet Adapter wallet linking, sign-to-link against Synq, transaction signing — all behind the same hook shape Synq uses everywhere else. Pairs with @synqid/react-native; targets Android dApps.

Install

pnpm add @synqid/solana-mobile @synqid/react-native @synqid/js

Use it

useSolanaMwaAdapter() returns a walletAdapter object you pass straight into SynqProvider. The bundled SignInSheet renders a wallet button alongside socials.

import { useSolanaMwaAdapter } from '@synqid/solana-mobile'
import { SynqProvider, SignInSheet } from '@synqid/react-native'
import { BottomSheetModalProvider } from '@gorhom/bottom-sheet'

export default function App() {
  const walletAdapter = useSolanaMwaAdapter()
  return (
    <BottomSheetModalProvider>
      <SynqProvider
        issuer="https://api.synq.id"
        clientId={process.env.EXPO_PUBLIC_SYNQ_CLIENT_ID!}
        redirectUri="myapp://oauth/callback"
        walletAdapter={walletAdapter}
        uiTheme="dark"
      >
        <Root />
        <SignInSheet />
      </SynqProvider>
    </BottomSheetModalProvider>
  )
}
What it ships

MWA, but Synq-shaped

useSolanaMwaAdapter()

Hook returning a walletAdapter that satisfies Synq’s SignInProvider contract. Drop into SynqProvider; the sheet automatically renders a wallet button.

useTransactionSigner()

Hook returning a `sign(tx)` function. Opens MWA, signs with the user’s wallet, returns the signed transaction.

useLinkedWallets()

Hook returning the user’s linked wallets from Synq. Useful for "this wallet meets the token gate" UX.

Sign-to-link

Linking another wallet to an existing Synq user — MWA flow gathers the signature; Synq verifies and links server-side.

Pair it with

Common questions

Solana Mobile sign-in without the MWA glue.

One hook, one wallet button, one signed message — and the user’s wallet lands in their Synq linked_wallets.