Config
The @wagmi/core config
is a framework agnostic (Vanilla JS) config that manages wallet connection state and configuration, such as: auto-connection, connectors, and viem clients.
import { createConfig } from '@wagmi/core'
Usage
import { createConfig, configureChains, mainnet } from '@wagmi/core'
import { publicProvider } from '@wagmi/core/providers/public'
const { chains, publicClient, webSocketPublicClient } = configureChains(
[mainnet],
[publicProvider()],
)
const config = createConfig({
chains,
publicClient,
webSocketPublicClient,
})
Configuration
autoConnect (optional)
Enables reconnecting to last used connector on mount. Defaults to false
.
import { createConfig, configureChains, mainnet } from '@wagmi/core'
import { publicProvider } from '@wagmi/core/providers/public'
const { publicClient } = configureChains([mainnet], [publicProvider()])
const config = createConfig({
autoConnect: true,
publicClient,
})
connectors (optional)
Connectors used for linking accounts. Defaults to [new InjectedConnector()]
.
import { createConfig, configureChains, mainnet } from '@wagmi/core'
import { publicProvider } from '@wagmi/core/providers/public'
import { InjectedConnector } from '@wagmi/core/connectors/injected'
import { WalletConnectConnector } from '@wagmi/core/connectors/walletConnect'
const { chains, publicClient } = configureChains([mainnet], [publicProvider()])
const config = createConfig({
connectors: [
new InjectedConnector({ chains }),
new WalletConnectConnector({
chains,
options: {
projectId: '...',
},
}),
],
publicClient,
})
logger (optional)
Adds the ability to provide a custom logger to override how logs are broadcasted in @wagmi/core. Defaults to console
logging.
import { createConfig, configureChains, mainnet } from '@wagmi/core'
import { publicProvider } from '@wagmi/core/providers/public'
import { logWarn } from './logger'
const { publicClient } = configureChains([mainnet], [publicProvider()])
const config = createConfig({
logger: {
warn: (message) => logWarn(message),
},
publicClient,
})
You can also disable a logger by passing null
as the value.
// ...
const config = createConfig({
logger: {
warn: null,
},
publicClient,
})
publicClient
viem Public Client for reading from the Ethereum network.
import { createConfig, configureChains, mainnet } from '@wagmi/core'
import { publicProvider } from '@wagmi/core/providers/public'
const { publicClient } = configureChains([mainnet], [publicProvider()])
const config = createConfig({
publicClient,
})
You can create a "chain-aware" provider
by using the configureChains
API or passing a function that updates based on chainId
.
storage (optional)
The default strategy to persist and cache data. Defaults to window.localStorage
.
import {
createConfig,
createStorage,
configureChains,
mainnet,
} from '@wagmi/core'
import { publicProvider } from '@wagmi/core/providers/public'
const { publicClient } = configureChains([mainnet], [publicProvider()])
const config = createConfig({
publicClient,
storage: createStorage({ storage: window.localStorage }),
})
webSocketPublicClient (optional)
viem Public Client with a WebSocket Transport for connecting to the Ethereum network. If you provide a WebSocket Public Client, it will be used instead of polling in certain instances.
import { createConfig, configureChains, mainnet } from '@wagmi/core'
import { publicProvider } from '@wagmi/core/providers/public'
const { publicClient, webSocketPublicClient } = configureChains(
[mainnet],
[publicProvider()],
)
const config = createConfig({
publicClient,
webSocketPublicClient,
})
You can create a "chain-aware" webSocketProvider
by using the configureChains
API or passing a function that updates based on chainId
.