import { createConfig, http, WagmiProvider } from 'wagmi'
import { mainnet, base, arbitrum } from 'wagmi/chains'
import { injected, walletConnect } from 'wagmi/connectors'
import { sequenceWallet } from '@0xsequence/wagmi-connector'
import { createPrivyWalletConnector } from '@privy-io/wagmi-connector'
import { PrivyProvider } from '@privy-io/react-auth'
// Create all connectors
const sequenceConnector = sequenceWallet({
connectOptions: {
app: "Your App",
projectAccessKey: "your-sequence-key",
},
defaultNetwork: 1,
})
const privyConnector = createPrivyWalletConnector({
appId: "your-privy-app-id",
name: "Privy",
})
const config = createConfig({
chains: [mainnet, base, arbitrum],
connectors: [
injected(),
walletConnect({ projectId: 'your-walletconnect-project-id' }),
sequenceConnector,
privyConnector,
],
transports: {
[mainnet.id]: http(),
[base.id]: http(),
[arbitrum.id]: http(),
},
})
export function MultiWalletApp() {
return (
<PrivyProvider
appId="your-privy-app-id"
config={{
loginMethods: ["email", "google"],
embeddedWallets: { createOnLogin: "all-users" },
}}
>
<WagmiProvider config={config}>
{/* Users can connect with any of the configured wallets */}
<TrailsWidget
mode="pay"
toAddress="0x..."
toAmount="1000"
toChainId={42161}
toToken="USDC"
/>
</WagmiProvider>
</PrivyProvider>
)
}