Migration to Lit and AA
  • Overview
  • Getting Started
    • Installation
    • Deployment
    • FAQ
  • Reference
    • Onboarding and Wallet SDK
      • Concepts
      • Wagmi config
      • @tria-sdk/core
        • Auth Controller [INTERNAL]
        • User Controller
      • @tria-sdk/web [INTERNAL]
        • Lit Controller
        • Keyring Controller
        • Wallet Controller
        • Gas Abstraction Wallet Controller ⛽️
        • Fee Controller
        • Solana Wallet
        • WalletConnect Controller
        • 🚂Execution Engine Controller
      • @tria-sdk/connect
        • TriaProvider
        • Actions
        • Hooks
          • Internal hooks
        • Constants [Internal]
      • @tria-sdk/authenticate
        • Application
      • @tria-sdk/authenticate-web
    • Supported Networks
    • How to create Debridge Solana Calldata
    • New concepts [Internal]
    • Gas Abstraction Integrations [Internal]
  • EIP1193 - Provider (WIP)
Powered by GitBook
On this page
  1. Reference
  2. Onboarding and Wallet SDK

Wagmi config

Add WagmiConfig for Metamask support

Create Wagmi Config
import { configureChains, createConfig, WagmiConfig } from "wagmi";
import { MetaMaskConnector } from "wagmi/connectors/metaMask";
import { WalletConnectConnector } from "wagmi/connectors/walletConnect";
import { CoinbaseWalletConnector } from "wagmi/connectors/coinbaseWallet";
import {
  mainnet,
  polygon,
  optimism,
  arbitrum,
  fantom,
  fuse,
  bsc,
  avalanche,
  polygonMumbai,
} from "wagmi/chains";

import { publicProvider } from "wagmi/providers/public";

const supportedChains = [
  mainnet,
  polygon,
  optimism,
  arbitrum,
  fantom,
  fuse,
  bsc,
  avalanche,
  polygonMumbai,
]

const { chains, publicClient, webSocketPublicClient } = configureChains(
  supportedChains,
  [publicProvider()]
);

export const getDefaultWallets = ({ appName, projectId, chains }: any) => {
  const connectors = [
    new CoinbaseWalletConnector({
      chains,
      options: {
        appName,
        //@ts-ignore
        shimDisconnect: true,
      },
    }),
    new WalletConnectConnector({
      chains,
      options: {
        projectId,
        //@ts-ignore
        qrcode: true,
        shimDisconnect: true,
        isNewChainsStale: false, // v2 specific
      },
    }),
    new MetaMaskConnector({
      chains,
      options: {
        shimDisconnect: true,
        UNSTABLE_shimOnConnectSelectAccount: true,
      },
    }),
  ];
  return { connectors };
};

const { connectors } = getDefaultWallets({
  appName: "Customer App powered by Tria",
  projectId: "bd38d3892c8fd8bc9dabf6fced0bd3c6",
  chains,
});

const wagmiConfig = createConfig({
  autoConnect: true,
  connectors,
  publicClient,
  webSocketPublicClient,
});
Add WagmiConfig to root of the project
import { WagmiConfig } from "wagmi";

<WagmiConfig config={wagmiConfig}>
 ....
</WagmiConfig>
PreviousConceptsNext@tria-sdk/core