# Allowed list of config parameters

**URL:** <https://openfhe.discourse.group/t/allowed-list-of-config-parameters/1486>\
**Category:** FHE Challenges\
**Created:** [August 11, 2024, 4:03am UTC](https://openfhe.discourse.group/t/allowed-list-of-config-parameters/1486 "2024-08-11T04:03:19Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![pandasamanvaya](https://avatars.discourse-cdn.com/v4/letter/p/df788c/32.png) [@pandasamanvaya](https://openfhe.discourse.group/u/pandasamanvaya)\
**Post date:** [August 11, 2024, 4:03am UTC](https://openfhe.discourse.group/t/allowed-list-of-config-parameters/1486/1 "2024-08-11T04:03:19Z")

</div>

Hi team. I have a question regarding the parameters allowed in the config.json file for a challenge. Are the parameters mentioned as example in respective challenges the only set of parameters that can be used for that challenge? Or is it just a subset? For example, Max Element challenge’s example config doesn’t have bootstrapping parameter where as Array Sorting challenge’s example config does. Does this imply that bootstrapping can’t be used in Max Element challenge? If no, then what is the exhaustive list of configs that can be used in any challenge?

---

<div class="post-metadata">

**Author:** ![gurgen](https://avatars.discourse-cdn.com/v4/letter/g/e47774/32.png) [@gurgen](https://openfhe.discourse.group/u/gurgen)\
**Post date:** [August 16, 2024, 9:32am UTC](https://openfhe.discourse.group/t/allowed-list-of-config-parameters/1486/2 "2024-08-16T09:32:29Z")

</div>

Hi!  
Listed below are all the parameters that can be used in the config file.

> {  
> “indexes\_for\_rotation\_key”: [  
> 1  
> ],  
> “mult\_depth”: 29,  
> “ring\_dimension”: 131072,  
> “scale\_mod\_size”: 59,  
> “first\_mod\_size”: 60,  
> “batch\_size”: 65536,  
> “max\_relin\_sk\_deg”: 5,  
> “enable\_bootstrapping”: false,  
> “levels\_available\_after\_bootstrap”: 10,  
> “level\_budget”: [4,4],  
> “scheme”: “BFV” // or BGV, or CKKS depending on the Challenge.  
> }

> - **indexes\_for\_rotation\_key** : if an application requires the use of a rotation key, this option allows specifying indexes for the rotation key. If the rotation key is not used, it should be an empty array: `indexes_for_rotation_key=[]`.
> - **mult\_depth** : the user can set the ring dimension. However, if a minimum ring dimension is set for the challenge, then the user can only increase this value; decreasing it is not possible.
> - **scale\_mod\_size** : this parameter is used to configure `ScaleModSize`, default value is `51`.
> - **first\_mod\_size** : this parameter allows setting up `FirstModSize`, default value is `60`.
> - **batch\_size** : if the bootstrapping is not used, this parameter allows to set the batch size. Default value is `ring_dimension/2`.
> - **enable\_bootstrapping** : if you need bootstrapping, set this option to `true`.
> - **max\_relin\_sk\_deg** : this parameter is used to configure`MaxRelinSkDeg`, default value is `3`.
> - **levels\_available\_after\_bootstrap** : this parameter allows setting up levels available after the bootstrapping if it’s used. Note that the actual number of levels available after bootstrapping before next bootstrapping will be `levels_available_after_bootstrap - 1`, because an additional level is used for scaling the ciphertext before next bootstrapping (in 64-bit CKKS bootstrapping).
> - **level\_budget** : the bootstrapping procedure needs to consume a few levels to run. This parameter is used to call `EvalBootstrapSetup`. Default value is [4,4].

By default, bootstrapping is enabled for all challenges unless explicitly stated that bootstrapping is not supported.

---

<div class="post-metadata">

**Author:** ![pandasamanvaya](https://avatars.discourse-cdn.com/v4/letter/p/df788c/32.png) [@pandasamanvaya](https://openfhe.discourse.group/u/pandasamanvaya)\
**Post date:** [August 17, 2024, 3:11am UTC](https://openfhe.discourse.group/t/allowed-list-of-config-parameters/1486/3 "2024-08-17T03:11:23Z")

</div>

Thanks a lot. One last question. Can I use EvalSum()? I looked at few examples and noticed that EvalSumKeyGen() requires secretKey to be generated. This can’t be generated inside the challenge as secretKey is not provided. So, it should be already present in the AutomorphismKey.
