CoinbaseWalletSDK Changes (v3 to v4)
This page details changes between versions 3.x and 4.x of the Coinbase Wallet SDK.
CoinbaseWalletSDK
CoinbaseWalletSDKOptions
// v4
type CoinbaseWalletSDKOptions = {
appName?: string | undefined;
appLogoUrl?: string | null | undefined;
appChainIds?: number[] | undefined;
};New (v4 only):
appChainIds?: number[]- An array of chain IDs your dapp supports
- The first chain in this array will be used as the default chain.
- Removes the need for non-mainnet dapps to request switching chains before making first request.
- Default value is
[1](mainnet)
Deprecated (v3 only):
enableMobileWalletLink(enabled by default in v4)jsonRpcUrlreloadOnDisconnectuiConstructoroverrideIsMetaMaskoverrideIsCoinbaseWalletdiagnosticLoggerreloadOnDisconnectheadlessMode
Deprecated functions
CoinbaseWalletSDK.disconnect()is deprecated- dapps should call
CoinbaseWalletProvider.disconnect()instead
- dapps should call
CoinbaseWalletSDK.setAppInfo()is deprecated- Dapps should pass in
appNameandappLogoUrlviaCoinbaseWalletSDKOptions
- Dapps should pass in
makeWeb3Provider
Signature
// v3
makeWeb3Provider(jsonRpcUrl?: string, chainId?: number): CoinbaseWalletProvider
// v4
makeWeb3Provider(preference: Preference = { options: 'all' }): ProviderInterface Parameters
interface Preference {
options: 'all' | 'smartWalletOnly' | 'eoaOnly';
}options'all'(default) show both smart wallet and EOA options'smartWalletOnly'only show smart wallet option'eoaOnly'only show EOA option
Return type
export interface ProviderInterface extends EventEmitter {
request<T>(args: RequestArguments): Promise<T>;
disconnect(): Promise<void>;
on(event: 'connect', listener: (info: ProviderConnectInfo) => void): this;
on(event: 'disconnect', listener: (error: ProviderRpcError) => void): this;
on(event: 'chainChanged', listener: (chainId: string) => void): this;
on(event: 'accountsChanged', listener: (accounts: string[]) => void): this;
on(event: 'message', listener: (message: ProviderMessage) => void): this;
}CoinbaseWalletProvider
connect event fix
- v3 returned
chainIdStrinstead ofchainId. - v4 is EIP-1193 compliant.
// v4
interface ProviderConnectInfo { readonly chainId: string; }
on(event: 'connect', listener: (info: ProviderConnectInfo) => void): this; eth_accounts when disconnected
- v3 returned an empty array.
- v4 throws an error.
Error: Must call 'eth_requestAccounts' before other methods
Deprecated functionality
Instance properties
isCoinbaseBrowser: booleanqrUrl?: string | nullreloadOnDisconnect: boolean
Getter methods
selectedAddressnetworkVersionisWalletLinkismetaMaskhost
Methods
disableReloadOnDisconnectsetProviderInfosetAppInfoclosesendsendAsyncscanQRCodegenericRequestconnectAndSignInselectProvidersupportsSubscriptionssubscribeunsubscribe