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

# Migration guide from v8.2 to v8.3 for Web3Auth PnP iOS SDK

## Overview[​](#overview "Direct link to Overview")

This migration guide provides steps for upgrading from version 8.2(v8.2) to version 8.3(v8.3) of the Web3Auth PnP iOS SDK. The guide outlines significant changes and enhancements, including the introduction of new login providers, and changes in `request` method.

## Changes in detail[​](#changes-in-detail "Direct link to Changes in detail")

### `request` method updates[​](#request-method-updates "Direct link to request-method-updates")

From v8.3, developers can pass the `chainConfig` to request the signature for specific chain. To further improve developer experience, we have removed the `loginParams` from the `request` method.

#### Before (v8.2)[​](#before-v82 "Direct link to Before (v8.2)")

Usage

```
var params = [Any]()
params.append("Hello, Web3Auth from Android!")
params.append("0x764dd67c0420b43a39ab337463d8995622f226a2")
params.append("Web3Auth")

do {
  try await self.web3Auth?.request(
    W3ALoginParams(loginProvider: .GOOGLE, mfaLevel: .NONE),
    method: "personal_sign",
    requestParams: params
  )
} catch {
  // Handle error
}

```

#### After (v8.3)[​](#after-v83 "Direct link to After (v8.3)")

Usage

```
var params = [Any]()
params.append("Hello, Web3Auth from Android!")
params.append("0x764dd67c0420b43a39ab337463d8995622f226a2")
params.append("Web3Auth")

var chainConfig = ChainConfig(
    chainNamespace: ChainNamespace.eip155,
    chainId: "0x1",
    rpcTarget: "https://mainnet.infura.io/v3/${key}",
    ticker: "ETH"
)

do {
  try await self.web3Auth?.request(
    chainConfig: chainConfig
    method: "personal_sign",
    requestParams: params,
  )
} catch {
  // Handle error
}

```

### New Login providers[​](#new-login-providers "Direct link to New Login providers")

v8.3 update brings two new providers. Now developers can use the SMS Passwordless and Farcaster login options.

#### SMS Passwordless[​](#sms-passwordless "Direct link to SMS Passwordless")

```
import Web3Auth

let web3auth = try await Web3Auth(W3AInitParams(
  clientId: "YOUR_WEB3AUTH_CLIENT_ID", // Pass your Web3Auth Client ID, ideally using an environment variable
  network: .sapphire_mainnet,
  redirectUrl: "bundleId://auth"
))

let result = try await web3Auth.login(W3ALoginParams(
  Web3AuthProvider.SMS_PASSWORDLESS,
  // The phone number should be in format of +{country_code}-{phone_number}
  extraLoginOptions: .init(loginHint: "+91-9911223344")
))

```

#### Farcaster[​](#farcaster "Direct link to Farcaster")

Usage

```
let result = try await Web3Auth().login(
    W3ALoginParams(loginProvider: .Farcaster)
)

```
