Trails works with virtually all wallets including embedded wallets like Privy or injected EOAs while still facilitating complex transaction orchestration cross-chain in 1-click. Additionally, applications or wallets don’t have to natively support ERC-7702 for this to work seamlessly. Simply pass the desired provider as an option to the trails widget, for example:

Embedded wallets (Privy)

Use Privy for embedded email/social login experiences.
import { TrailsWidget } from '0xtrails/widget'

export function EmbeddedPrivy() {
  return (
    <TrailsWidget
      walletOptions={["privy"]}
      privyAppId="YOUR_PRIVY_APP_ID"
      privyClientId="YOUR_PRIVY_CLIENT_ID"
      toAddress="0x..." // Recipient address
      toAmount="1000" // 1000 USDT
      toChainId={42161} // Arbitrum
    />
  )
}

Injected wallets (EOA)

Support browser-injected EOA wallets like MetaMask, Coinbase Wallet - compatible with ERC7702 implementations:
import { TrailsWidget } from '0xtrails/widget'

export function InjectedOnly() {
  return (
    <TrailsWidget
      walletOptions={["injected"]}
      toAddress="0x..." // Recipient address
      toAmount="1000" // 1000 USDT
      toChainId={42161} // Arbitrum
    />
  )
}
For more wallet options check out Configuration Options/sdk/get-started#configuration-options in our SDK.