wagmi.sh
App.tsx
// import requirements
import {
WagmiConfig,
createClient,
defaultChains,
configureChains,
} from 'wagmi'
import { alchemyProvider } from 'wagmi/providers/alchemy'
import { publicProvider } from 'wagmi/providers/public'
import { MetaMaskConnector } from 'wagmi/connectors/metaMask'
function MyApp({ Component, pageProps }: AppProps) {
// configure connector
const { chains, provider, webSocketProvider } = configureChains(
defaultChains,
[alchemyProvider({ apiKey: process.env.ALCHEMY_API_KEY }), publicProvider()]
)
const client = createClient({
autoConnect: true,
connectors: [new MetaMaskConnector({ chains })],
provider,
webSocketProvider,
})
// wrap app components to access
return (
<WagmiConfig client={client}>
<Component {...pageProps} />
</WagmiConfig>
)
}
WalletConnect.tsx
// import requirements
import { useAccount, useConnect, useDisconnect } from 'wagmi'
const Wallet = () => {
// instantiate connection functions
const { connect, connectors, error, isLoading, pendingConnector } =
useConnect()
const { disconnect } = useDisconnect()
return (
<div className="flex space-x-4 items-center">
{isConnected ? (
<button
onClick={() => disconnect()}
>
Disconnect
</button>
) : (
<div>
{connectors.map((connector) => (
<button
key={connector.id}
onClick={() => connect({ connector })}
>
Connect
</button>
))}
{error && <div>{error.message}</div>}
</div>
)}
</div>
)
}
Last updated