# V0.0.6 of \`ic\_siwe\` adds runtime feature flags to customise library/provider canister behaviour

**URL:** <https://forum.dfinity.org/t/v0-0-6-of-ic-siwe-adds-runtime-feature-flags-to-customise-library-provider-canister-behaviour/28862>\
**Category:** Developers\
**Created:** [March 25, 2024, 11:43am UTC](https://forum.dfinity.org/t/v0-0-6-of-ic-siwe-adds-runtime-feature-flags-to-customise-library-provider-canister-behaviour/28862 "2024-03-25T11:43:03Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![kristofer](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/kristofer/32/11135_2.png) [@kristofer](https://forum.dfinity.org/u/kristofer)\
**Post date:** [March 25, 2024, 11:43am UTC](https://forum.dfinity.org/t/v0-0-6-of-ic-siwe-adds-runtime-feature-flags-to-customise-library-provider-canister-behaviour/28862/1 "2024-03-25T11:43:03Z")

</div>

Hi, I have added some requested features to the `ic_siwe` library and provider canister.

Rust library: [ic\_siwe](https://crates.io/crates/ic_siwe)  
Pre-built provider canister: [ic\_siwe\_provider](https://github.com/kristoferlund/ic-siwe/tree/main/packages/ic_siwe_provider)

## Changes

The runtime behaviour of the `ic_siwe_provider` canister and the `ic_siwe` library can now be customized using the following settings:

### `IncludeUriInSeed`

Default: URI is not included in the seed

When set, the URI is included in the seed used to generate the principal. Including the URI in the seed does not add any additional security in a scenario where `ic_siwe_provider` is deployed and configured to serve only one domain. However, if the `ic_siwe` library is used in a custom canister, that delagetes identities for more than one domain, it is recommended to enable this feature to ensure that the principal is unique for each domain.

```bash
  runtime_features = opt vec { \
    variant { IncludeUriInSeed } \
  }; 

```

### `DisableEthToPrincipalMapping`

Default: Mapping is enabled

When set, the mapping of Ethereum addresses to Principals is disabled. This also disables the canister endpoints `get_principal`.

```bash
  runtime_features = opt vec { \
    variant { DisableEthToPrincipalMapping } \
  }; 

```

### `DisablePrincipalToEthMapping`

Default: Mapping is enabled

When set, the mapping of Principals to Ethereum addresses is disabled. This also disables the canister endpoints `get_address` and `get_caller_address`.

```bash
  runtime_features = opt vec { \
    variant { DisablePrincipalToEthMapping } \
  }; 

```
