# Event fingerprint enrichment
> Generate unique fingerprints for events using hash functions to enable deduplication and event matching.
> Source: https://docs.snowplow.io/docs/pipeline/enrichments/available-enrichments/event-fingerprint-enrichment/
> Documentation index: https://docs.snowplow.io/llms.txt

This enrichment computes the fingerprint of an event using the Snowplow tracker payload.

Both the key and the value of all parameters in the payload are used to compute the fingerprint, except for the fields specified in `excludeParameters`. Check out the [atomic fields reference](/docs/fundamentals/canonical-event/) and [example HTTP requests](/docs/events/http-requests/) for more information on the relevant parameters.

This can be helpful when de-duplicating events.

## Configuration

The enrichment takes these parameters:

| Parameter           | Required | Description                                             |
| ------------------- | -------- | ------------------------------------------------------- |
| `hashAlgorithm`     | ✅        | The algorithm used to compute the event fingerprint.    |
| `excludeParameters` | ✅        | Parameters to exclude from the fingerprint calculation. |

**Console:**

Configure the parameters in the Console enrichment editor. For example:

```json
{
  "excludeParameters": ["eid", "nuid", "stm", "cv"],
  "hashAlgorithm": "MD5"
}
```

**Self-Hosted:**

For Self-Hosted, [provide a complete JSON](/docs/pipeline/enrichments/managing-enrichments/terraform/). For example:

```json
{
  "schema": "iglu:com.snowplowanalytics.snowplow/event_fingerprint_config/jsonschema/1-0-1",
  "data": {
    "vendor": "com.snowplowanalytics.snowplow",
    "name": "event_fingerprint_config",
    "enabled": true,
    "parameters": {
      "excludeParameters": ["eid", "nuid", "stm", "cv"],
      "hashAlgorithm": "MD5"
    }
  }
}
```

***

> **Tip: Testing with Micro**
>
> Unsure if your enrichment configuration is correct or works as expected? You can easily test it using [Snowplow Micro](/docs/testing/snowplow-micro/), either [through Console](/docs/testing/snowplow-micro/console/) or [on your machine](/docs/testing/snowplow-micro/local/).

Supported hashing algorithms are:

- [MD5](https://en.wikipedia.org/wiki/MD5)
- [SHA1](https://en.wikipedia.org/wiki/SHA-1)
- [SHA256](https://en.wikipedia.org/wiki/SHA-2)
- [SHA384](https://en.wikipedia.org/wiki/SHA-2)
- [SHA512](https://en.wikipedia.org/wiki/SHA-2)

We recommend excluding the sent timestamp `stm`. When the tracker doesn't receive an acknowledgement after sending an event once, it will retry. The two copies of the event will have different `stm`s, but they're the same event.

Similarly, not much is gained by including the event ID, `eid`, in the hash given that this field is already used for de-duplication.

## Output

This enrichment will populate the `event_fingerprint` atomic event field.
