> ## Documentation Index
> Fetch the complete documentation index at: https://etherspot.fyi/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

<Info>
  This page will contain detailed information about SessionKey and how SessionKeys are created, rotated and disabled and used to sign UserOps
</Info>

## ERC20-SessionKeyValidator Background

ERC20-SessionKeyValidator is a wrapper on Etherspot-Modular-SDK which handles

* enable SessionKey
* disable SessionKey
* rotate SessionKey
* get SessionKeyInfo

## Pre-Requisites for SessionKeyValidator SDK functions on Modular-Wallet

1. SessionKey SDK functions can be executed on an existing Etherspot Modular Wallets
2. If ModularWallet doesnot exist, then please refer to the ModularSDK user guide to create a ModularWallet
3. ERC20SessionKeyValidator module must be installed on the ModularWallet

## SessionKey creation

1. SessionKey is created offchain and stored in the KMS system and managed by a secured backend service
2. Users Operating on SessionKey must use APIKey which is used to authorize if they are permitted to use sessionKey for signing

## ERC20SessionKeyValidator SmartContracts

ERC20SessionKeyValidator is a smart-contract validator module
Smartcontract has functions to handle enable, rotate, disable, validateSignatures made by SessionKey
Reference: [ERC20SessionKeyValidator.sol](https://github.com/etherspot/etherspot-prime-contracts/blob/master/src/modular-etherspot-wallet/modules/validators/ERC20SessionKeyValidator.sol)

If you want to take a look at the SDK code in more detail then you can check these functions out [here on Github](https://github.com/etherspot/etherspot-modular-sdk/blob/master/src/sdk/SessionKeyValidator/SessionKeyValidator.ts).
