> For the complete documentation index, see [llms.txt](/llms.txt).

# PnP Modal SDK - v5 to v6

## General[​](#general "Direct link to General")

### `web3auth.connected` is introduced[​](#web3authconnected-is-introduced "Direct link to web3authconnected-is-introduced")

#### Manage session using `web3auth.connected` instead of `web3auth.provider`[​](#manage-session-using-web3authconnected-instead-of-web3authprovider "Direct link to manage-session-using-web3authconnected-instead-of-web3authprovider")

With v6, users can manage their session using `web3auth.connected` instead of `web3auth.provider`.

```
// With V6
if (web3auth.connected) {
  setLoggedIn(true)
}

```

### `provider` is now always available[​](#provider-is-now-always-available "Direct link to provider-is-now-always-available")

In v5, we used to add a check for setting the `provider` only if the `web3auth.provider` was present. But now with V6 we always have a provider available even if the user is not logged in.

```
// With V5
if (web3auth.provider) {
  setProvider(web3auth.provider)
}
// With V6
setProvider(web3auth.provider) // before the connect() or connectTo(), provider is available.

```

### `rpcTarget` and `chainId` is now a mandatory parameter[​](#rpctarget-and-chainid-is-now-a-mandatory-parameter "Direct link to rpctarget-and-chainid-is-now-a-mandatory-parameter")

Previously, the Web Modal SDK required `chainConfig` as a parameter which had `rpcTarget` and `chainId` as the optional parameter. But with V6, it's mandatory to add `rpcTarget` and `chainId` in the `chainConfig` object.

```
const web3auth = new Web3Auth({
  clientId,
  chainConfig: {
    chainNamespace: CHAIN_NAMESPACES.EIP155,
    chainId: '0x1',
    rpcTarget: 'https://rpc.ethereum.org', // This is the public RPC we have added, please pass on your own custom endpoint while creating an app
  },
  web3AuthNetwork: 'sapphire_mainnet',
})

```
