Skip to content

<WalletProvider>

<WalletProvider> is the React context provider for the embedded wallet.

Example

tsx
// src/index.tsx
import { createWallet } from '@money-sdk/core'
import { WalletProvider } from '@money-sdk/react'

const wallet = createWallet(/* ... */)

function Root() {
  return (
    <WalletProvider wallet={wallet}>
      <App />
    </WalletProvider>
  )
}

Reference

props.wallet

The initialized wallet as returned by createWallet.

Hooks

The following hooks are exported from @money-sdk/react and must be called inside a <WalletProvider>:

useWallet()

Returns the Wallet instance passed to the provider. Use this when you need to call methods like getProvider, disconnect or experimental_expand outside of the widget.

tsx
import { useWallet } from '@money-sdk/react'

function ConnectButton() {
  const wallet = useWallet()

  const handleClick = async () => {
    const solana = await wallet.getProvider('solana')
    await solana?.connect()
  }

  return <button onClick={handleClick}>Connect</button>
}

useConnected()

Returns a boolean indicating whether the user has connected the wallet to your dApp. Useful for gating UI:

tsx
import { useConnected } from '@money-sdk/react'

function App() {
  const connected = useConnected()

  return connected ? <Dashboard /> : <Landing />
}

useObservable(observable)

Low-level hook for subscribing to an internal observable exposed by the wallet instance. You generally won't need this directly — prefer useConnected for connection state.