# Configuring the SDK

Learn how to make the required configurations or customize the SDK for your needs before you use it

# Overview

In order to use the kycDAO iOS SDK, you must provide certain configurations before using it. Currently only an environment configuration is mandatory but an api key will be required in the near future as well. There are optional configurations, like setting custom RPC URLs to use with your supported networks.

# Setting your configurations

You can set the configurations by calling VerificationManager.configure(_:).

val networkOptions = listOf(
	NetworkOption("eip155:89", "https://polygon-rpc.com"),
	NetworkOption("eip155:80001", "https://matic-mumbai.chainstacklabs.com")
)
		
val configuration = Configuration(
	KycDaoEnvironment.Development,
	networkOptions
)

VerificationManager.configure(configuration)

# Environment types

KycDaoEnvironment enum defines the available environments.

KycDaoEnvironment Implementation
Production A live, production environment which uses the smart contracts on the main nets, with a live identity verification service and live kycDAO server environment.
Development A developer environment which uses the smart contracts on the dev/test nets, with a sandbox identity verification service and staging kycDAO server environment.

# Network configurations

NetworkOption describes a set of configurations for a particular network. The chainId identifies every set of option and relates them with the identified network's usage. It is in CAIP-2 format.

# RPC URL

You can set a custom RPC URL for the SDK to use during on-chain calls with a network.

// Creates a network config, which sets the RPC URL used 
// by Mumbai testnet calls to `https://matic-mumbai.chainstacklabs.com`
val mumbaiConfig = NetworkOption("eip155:80001", "https://matic-mumbai.chainstacklabs.com")