Skip to main content

Recommended: JavaScript SDK with React Hooks

For new React apps, we recommend the JavaScript SDK with React Hooks (@dynamic-labs-sdk/react-hooks) instead of the legacy React SDK documented here. The JS SDK comes with many benefits such as a much smaller bundle size and other optimizations. Use the React quickstart (JavaScript SDK) to get started.
Stellar embedded wallets are available in SDK version 4.59.2 and later.

Installation

To use Stellar wallets, install the Stellar wallet connector package:
npm i @dynamic-labs/stellar

Setup

Include the Stellar wallet connector in your provider configuration:
import { DynamicContextProvider } from '@dynamic-labs/sdk-react-core';
import { StellarWalletConnectors } from '@dynamic-labs/stellar';

<DynamicContextProvider
  settings={{
    walletConnectors: [StellarWalletConnectors],
    // ... other settings
  }}
>
  {/* Your app components */}
</DynamicContextProvider>

Checking if a wallet is a Stellar wallet

import { isStellarWallet } from '@dynamic-labs/stellar';

if (!isStellarWallet(wallet)) {
  throw new Error('This wallet is not a Stellar wallet');
}

Get the Stellar client

import { useDynamicContext } from '@dynamic-labs/sdk-react-core';
import { isStellarWallet } from '@dynamic-labs/stellar';

const { primaryWallet } = useDynamicContext();

if (!primaryWallet || !isStellarWallet(primaryWallet)) {
  throw new Error('This wallet is not a Stellar wallet');
}

const stellarClient = await primaryWallet.getStellarClient();

Sign a transaction

import { useDynamicContext } from '@dynamic-labs/sdk-react-core';
import { isStellarWallet } from '@dynamic-labs/stellar';

const { primaryWallet } = useDynamicContext();

if (!primaryWallet || !isStellarWallet(primaryWallet)) {
  throw new Error('This wallet is not a Stellar wallet');
}

// Sign a transaction
const signedTransaction = await primaryWallet.signTransaction(transaction);

Resources

Last modified on June 25, 2026