# Hashing

## **XEN11**

Hashing involves your computer making numerous attempts at discovering a specific hash. The server employs an algorithm to look for a hash that contains "...XEN11...". When your mining device identifies a sequence of 65 characters that contain 'XEN11' within the hashes, a XenBlock is recognized as found.&#x20;

```
{'hash_to_verify': '$argon2id$v=19$m=1827,t=1,p=1$WEVOMTAwODIwMjJYRU4$Z5K2z48kj4Rwp2SXEN11JRaqRGjr+bbdolMmiXnZnpXMpcNPpfIeO1fqOCHlwozBzUEdArHUGmra+29xJwJnug', 'key': '8352e490f6927d1cff31392d8be7b909a68fb567118b8d8e38aaa9ef8ade4c548734cdc01a109afb5ffc5d4b32ae97be5d07f10e0998a1bf42f5b4e8407b49b5', 'account': '0x34...', 'attempts': 12465538, 'hashes_per_second': 1212.7330427037584}
HTTP Status Code: 200
Proof of Work successful: {'message': 'POW Record stored successfully!'}
Block ID: 12603, Merkle Root: cbd22b24776e5b3f8b036aac2924baf005d183f7ddfccfa4e64b967778f7d560
Server Response: {'message': 'Hash verified successfully and block saved.'}
```

Above is a successful found hash with XEN11 in it. It took 12.5M hashes ("guesses") to find it.

* argon2id - cryptographic hashing algorithm used
* v - version of argon2
* m - difficulty. adjusts based on how many miners there are and hashes produced.&#x20;
* t - time. set to minimum.&#x20;
* p - parallelism - set to 1. inside algorithm can run multiple versions itself w/o increasing the algorithm.

## **Key**

The key is essential for cryptographic hashing. Because if the goal is to find a hash looking like this:

Hash:

```
$WEVOMTAwODIwMjJYRU4$Z5K2z48kj4Rwp2SXEN11JRaqRGjr+bbdolMmiXnZnpXMpcNPpfIeO1fqOCHlwozBzUEdArHUGmra+29xJwJnug
```

Someone could simply come up with random numbers and fake the hash - push it out to nodes and hope they will accept it. No, this is not possible and its because you must also present a corresponding key to the found hash.&#x20;

Key:

```
8352e490f6927d1cff31392d8be7b909a68fb567118b8d8e38aaa9ef8ade4c548734cdc01a109afb5ffc5d4b32ae97be5d07f10e0998a1bf42f5b4e8407b49b5
```

The key is produced by your hashing algorithm to prove that you really did the work to find the hash. \
Because even though you can fake the XEN11 hash - you cant fake it together with a corresponding key.&#x20;

<figure><img src="/files/nd73FRLjHMSYlNoWJkxx" alt=""><figcaption></figcaption></figure>

This is a key that's produced and its matching my hash that I mined. \
Dashboard runs verification and it will only insert my result if the key matches the hash I mined.&#x20;

{% hint style="info" %}
Try out the Argon2 Hash Generator & Verifier:    <https://argon2.online/>
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.xenblocks.io/technicals/hashing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
