Skip to main content
The Trails Widget is not tied to any particular wallet library. The SDK talks to wallets through adapters: small factories that bridge an existing wallet runtime (wagmi, an EIP-1193 provider, a Solana wallet, an embedded wallet SDK) into the Trails widget. Omit adapters entirely and Trails uses its built-in EVM wallet runtime, your app wallet context stays separate. Pass adapters when your app already owns wallet state and Trails should share it instead of managing its own.

Available adapters

AdapterPackageUse it when
wagmiAdapter@0xtrails/adapter-wagmiYour app uses wagmi (v2 or v3), or a wagmi-based stack such as Dynamic, Privy, or Sequence Connect
evmAdapter0xtrails (built in)You have a raw EIP-1193 provider — window.ethereum, an embedded wallet, or any SDK that can expose one
svmAdapter@0xtrails/svmYou want to accept or send payments from Solana wallets
Wallet SDKs that can produce an EIP-1193 provider don’t need a dedicated adapter — they plug into evmAdapter directly. See the thirdweb guide for a complete example of this pattern.

Where to pass adapters

Adapters are a widget-only feature. Pass them on focused widget components such as Pay, Fund, Swap, Earn, Withdraw.
import { Fund } from '0xtrails/widget'
import { wagmiAdapter } from '@0xtrails/adapter-wagmi'

const adapters = [wagmiAdapter()]

<Fund apiKey="YOUR_API_KEY" adapters={adapters} renderInline />

Mixing adapters

You can pass several adapters together. EVM adapters compose into one wallet runtime; Solana adapters stack alongside, so EVM and Solana wallets work in the same widget:
import { evmAdapter } from '0xtrails'
import { svmAdapter } from '@0xtrails/svm'

const adapters = [
  evmAdapter({
    wallets: { id: 'browser', name: 'Browser Wallet', provider: () => window.ethereum ?? null },
  }),
  svmAdapter({ rpcUrls: ['https://api.mainnet-beta.solana.com'] }),
]

Choosing an adapter

  1. No existing wallet stack? Pass no adapters — the built-in runtime handles injected wallets and WalletConnect.
  2. App on wagmi? Use wagmiAdapter. One package supports wagmi 2 and wagmi 3. Wagmi-based wallet SDKs such as Dynamic (Fireblocks embedded wallets) plug in the same way — no custom Trails code needed.
  3. Embedded or custom wallet that speaks EIP-1193? Use evmAdapter. This covers wallet SDKs that expose an EIP-1193 provider directly, such as thirdweb.
  4. Solana? Add svmAdapter.