# allowsEnvRootKey

> **allowsEnvRootKey**(`host?`): `boolean`

Defined in: [utils/helper.ts:143](https://github.com/B3Pay/ic-reactor/blob/2de45f357e6c8bcfa7cb2aa71eff7a059eacdf01/packages/core/src/utils/helper.ts#L143)

Whether the configuration carried by the `ic_env` cookie may be trusted for a
host: its root key, its Internet Identity provider, and the canister IDs a
reactor resolves by name.

This is a POSITIVE allowlist, and deliberately not `!isMainnetHost(host)`.
`isMainnetHost` recognises exactly three mainnet domains, so every other host
— including a production dapp served from an `ic-domains` custom domain —
fell through it and accepted a root key supplied by a cookie. Cookies are not
origin-isolated, so any sibling subdomain of the registrable domain could
substitute the key that certificate verification is checked against.

The same reasoning covers the canister ID a `Reactor` resolves when none is
configured: a substituted ID is not something certificate verification can
catch, because the attacker names a real canister whose responses verify
against the real root key.

Accepted: loopback, `localhost` and its subdomains, and the dev-container
domains that tunnel a local replica. Everything else must opt in explicitly
through `allowEnvConfig`.

This answers the question for ONE host. `ClientManager` asks it of both the
agent host and the page origin — the page being what decides who can write
the cookie — and resolves the pair once into `trustsEnvConfig`. Prefer
reading that over calling this again, so every consumer of the cookie
agrees.

## Parameters

### host?

`string`

The host URL to evaluate.

## Returns

`boolean`

`true` only for hosts that are unambiguously a local replica.