> For the complete documentation index, see [llms.txt](https://canary-1.gitbook.io/canary/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://canary-1.gitbook.io/canary/how-it-works/confirmation-floors.md).

# Confirmation floors

The one direction in which Canary is not configurable.

Most verifiers read whatever security configuration an application hands them and use it, even when those settings are unsafe. A configuration that asks for too few confirmations is valid in the framework, so a verifier will sign on it.

Canary takes a different position. For each chain, Canary enforces a minimum number of block confirmations that overrides any application configuration falling below it. An application asking Canary to sign on zero confirmations will not get a signature until Canary's floor is reached. The floors move with Canary's own assessment of chain finality, not with whatever a customer is willing to accept.

## How the floor interacts with your configuration

Canary waits for whichever is higher: the confirmations your configuration asks for, or Canary's floor for that chain.

| Your configuration asks for        | Canary's floor for the chain | Canary signs after |
| ---------------------------------- | ---------------------------- | ------------------ |
| Fewer confirmations than the floor | The floor                    | The floor          |
| Exactly the floor                  | The floor                    | The floor          |
| More confirmations than the floor  | The floor                    | Your configuration |

You can always ask for stricter settings than the floors, and they will be honoured. You cannot ask for looser ones. This is the one area where Canary is not configurable on the permissive side.

## How floors are set

Floors are set by Canary per chain and reviewed as chain behaviour changes. Faster-finality chains shorten the wait to reach the floor, and they do not change the standard. For high-value transfers configured under [Canary Cipher](/canary/the-assurance-layer/canary-cipher.md), confirmation depth can also scale with the value being moved, with those thresholds agreed with each protocol.

## What this means for your configuration

The `confirmations` value in your security stack is the number of source-chain blocks DVNs wait before signing. Too low risks a reorg invalidating a message that has already been signed. Too high adds unnecessary latency. Practical guidance on choosing a value is on [Confirmation counts and common pitfalls](/canary/integrate/confirmations-and-pitfalls.md).
