WalletConnectProvider takes one prop, config, of type WalletConnectKitConfig.
import type { WalletConnectKitConfig } from "@dogeos/dogeos-sdk"
const dogeConfig: WalletConnectKitConfig = {
clientId: "YOUR_DOGEOS_CLIENT_ID",
}Fields#
| Field | Type | Required | Default |
|---|---|---|---|
clientId | string | Yes | |
chains | Partial<Record<ChainType, Chain[] | EvmChain[]>> | No | SDK default networks |
defaultConnectChain | ChainType | No | None |
connectors | WalletConfig[] | No | The SDK’s wallet list |
login | UserLoginConfig | No | Email, external wallets, Google and X |
metadata | { name: string; description: string; url: string; icons: string[] } | No | SDK metadata |
walletConnectProjectId | string | No | None (WalletConnect off) |
theme | ThemeConfig | No | SDK theme, light mode |
embeddedWalletConfig | { stage?: EmbeddedWalletStage } | No | The release’s environment |
gatewayBaseUrl | string | No | None |
autoRestore | boolean | No | true |
persistConnection | boolean | No | true |
forceAccountSelection | boolean | ForceAccountSelectionOptions | No | Off |
clientId#
Your project’s public client ID from the developer console : the Sandbox ID for development or the Live ID for production. Surrounding whitespace is trimmed. A missing or blank value throws config.clientId is required.
The origins allowed to use a client ID are set in the console, not here. See Set Up the SDK.
chains#
The networks the SDK offers, grouped by chain family: evm, solana and dogecoin.
When chains is | The SDK uses |
|---|---|
Omitted or {} | evm: Ethereum, BNB Smart Chain, OP Mainnet, Arbitrum One, Linea, Base and Polygon; solana: Solana; dogecoin: Dogecoin |
| Set | Only the families and networks you list |
DogeOS Chikyū Testnet isn’t a default; list it under evm. For solana and dogecoin, use the entries returned by getChains(). The EVM networks you list also become the WalletConnect networks.
chains: {
evm: [dogeOSChikyuTestnet]
}See Use DogeOS Chikyū and Other Networks for the Chikyū definition, and Chain for the shape of an entry.
defaultConnectChain#
The chain family to connect first, such as ChainTypeEnum.EVM. Inside MyDoge, useWalletHost().connect() tries this family first, then the first configured family the wallet supports.
connectors#
Wallet entries from getConnectors() to use for the wallet list. When omitted, the SDK loads its own wallet list. These entries are configuration objects; useWalletConnect().connect() doesn’t accept them.
login#
Which ways to connect the SDK offers.
| Field | Type | Default |
|---|---|---|
basicLogins | ("email" | "externalWallets")[] | ["email", "externalWallets"] |
socialLogins | { type: "google" | "x" }[] | [{ type: "google" }, { type: "x" }] |
- Each array is resolved on its own: an omitted array keeps its default, and
[]turns all of its methods off. basicLogins: ["externalWallets"]withsocialLogins: []turns off the embedded wallet;walletStatusis then"disabled".SocialLoginProvider.clientIdis deprecated and ignored. DogeOS runs social sign-in.- Inside MyDoge,
loginis ignored and the SDK connects MyDoge’s wallet.
See Choose Login Methods.
metadata#
Your app’s identity, shown by wallets when the user approves a WalletConnect connection.
| Field | Default |
|---|---|
name | "DogeOS Wallet Connect" |
description | "DogeOS wallet connection SDK" |
url | "https://dogeos.com" |
icons | The MyDoge wallet logo |
Fields you set replace the default for that field. name and the first entry in icons also label the embedded wallet; when you don’t set name, or set it blank, the embedded wallet is called “DogeOS Social Wallet”.
walletConnectProjectId#
Your Reown (WalletConnect) project ID. Surrounding whitespace is trimmed. When it’s omitted or blank, WalletConnect isn’t offered; the SDK has no fallback project. An invalid ID shows a connection error. See Enable WalletConnect.
theme#
Colors and light or dark mode for the SDK’s wallet UI and the embedded wallet.
| Field | Type | Default |
|---|---|---|
defaultTheme | "light" | "dark" | "light" |
themes | HeroUI ConfigThemes | SDK colors |
layout | HeroUI LayoutTheme | SDK layout |
prefix | string | Always "heroui" |
Colors in themes.light and themes.dark are merged with the SDK’s defaults key by key, including nested keys such as primary.DEFAULT. See ThemeConfig and Match Your App’s Theme.
embeddedWalletConfig#
| Field | Type | Default |
|---|---|---|
stage | "dev" | "pre" | "prod" | "prod-dogeos" | The environment the SDK release was built for |
Selects the embedded wallet’s environment. Published SDK releases are built for production. Leave it unset.
gatewayBaseUrl#
The origin of the DogeOS wallet gateway, for example https://wallet.mydoge.com. When set, the SDK runs the wallet continuation check after sign-in, and useDogeOSAuth().fetch() also accepts this origin. When omitted, the continuation check is skipped.
autoRestore#
Whether to reconnect a saved connection when the page loads, and, inside MyDoge, to reconnect silently when MyDoge already approved the dApp. Defaults to true.
Set it to false for a provider that should connect only when the user asks, such as a second provider that links another wallet. It doesn’t affect DogeOS sign-in: with email or social login enabled, a signed-in user’s social wallet still connects when the page loads. To keep it out, set login to external wallets only.
persistConnection#
Whether to save this provider’s connection so a later page load can restore it. Defaults to true. Set it to false for a second provider on the page, so it neither saves its own connection nor replaces or clears the main provider’s.
forceAccountSelection#
Asks an EVM browser wallet to show its account picker on every connect, even for a site it already approved. true uses the default options. Ignored inside MyDoge and for the embedded wallet.
| Option | Type | Default | Description |
|---|---|---|---|
revokePermissions | boolean | false | Revoke the site’s existing account permission first, so wallets that skip their picker for an approved site show it again. This also ends a main connection to the same wallet on the page. |
blockedAddresses | readonly string[] | None | Addresses the user has already linked. If the wallet can’t be asked to show its picker and returns one of these, the connection fails and asks the user to disconnect the site in their wallet. Wallets that show their picker can still return them, so check on your server too. |
See Link a Second Wallet.