# L’outil du chasseur (L’Ange de l’Eau, en anglais « The Angel of the Water »)

Tout est vérifiable. Rien n’est promis.

Un seul fichier, `outil_chasseur.py`, et la liste publique `LISTE_DES_CINQ_MILLE.txt` à côté. Il faut Python 3.8 ou plus récent (déjà présent sur macOS et Linux ; sur Windows, l’installer depuis python.org) et un ordinateur avec au moins 2 Go de mémoire. Aucune autre dépendance, aucun réseau : l’outil est conforme à la Pierre V1j.

**Débranchez Internet** avant de taper vos réponses, puis lancez :

    python3 outil_chasseur.py

Le menu propose :
1. **Vérifier mes réponses** : le numéro du coffre, vos mots (ou leurs numéros, accents et majuscules indifférents), l’aléa du cri, l’adresse publiée du coffre. L’outil dit « identiques » ou non.
2. **Forcer un mot manquant** : tapez « ? » à la place du mot qui vous manque (un seul). L’outil essaie toute la liste, sauf les mots déjà donnés dans la même énigme : un mot ne se répète jamais à l’intérieur d’une énigme, mais il peut servir dans les deux énigmes d’un même coffre. Près de 5 000 essais, quelques secondes chacun.
3. **Retirer les bitcoins** : relevez sur un explorateur (sur un autre appareil) les sorties de l’adresse du coffre (txid, numéro, montant), donnez votre adresse et un taux de frais ; l’outil signe la transaction, que vous diffusez vous-même, de préférence directement à un mineur.
4. **Coffres d’entraînement** : deux faux coffres publics pour s’exercer (celui du mode d’emploi, et une cathédrale à 4 mots).
5. **Autotests** : vecteurs publics (scrypt RFC 7914, adresses BIP-173 et BIP-350, RIPEMD-160, BIP-322, clés de test de la Pierre, et les vecteurs de la Cave pour les heures, le COFFRET, le cri et l’engagement). `python3 outil_chasseur.py test --rapide` les passe sans les calculs de 1 Go.
6. **Lire un COFFRET**, 7. **Vérifier une solution publiée**, 8. **Lire un manifeste** : voir plus bas.

## Le manifeste et le contrôle du cri

Le manifeste de la chasse (publié sur la page de la chasse, et gravé sur la chaîne) porte, pour chaque coffre, son adresse, l’empreinte de son aléa et l’engagement de sa solution. Donnez-le à l’outil :

    python3 outil_chasseur.py verifier --chasse 0 --manifeste manifeste_chasse0.json

L’outil affiche l’empreinte SHA-256 du fichier, à comparer à sa gravure `AEDE:manifeste:<empreinte>`, vérifie sa signature si `signature_manifeste_chasse0.json` est à côté, et prend l’adresse du coffre dans le manifeste.

**L’aléa est contrôlé avant tout calcul.** Vous pouvez donner les 64 caractères de l’aléa, la ligne entière du cri (`AEDE:cri:H0:1:<aléa>`) ou la transaction du cri en hexadécimal. L’outil vérifie que c’est bien le cri de ce coffre et de cette chasse, puis compare l’aléa à son empreinte gravée dans le manifeste. N’importe qui peut graver un faux « AEDE:cri » : s’il n’a pas la bonne empreinte, l’outil répond « ce cri n’est pas celui du semis » et ne calcule rien. Vos réponses ne sont alors pas en cause : cherchez le vrai cri. Sans le manifeste, l’outil demande l’empreinte (le champ `empreinte_alea` du coffre) ; si vous ne l’avez pas, il calcule quand même, en signalant que l’aléa n’est pas contrôlé.

## La chasse zéro

La chasse zéro est le galop d’essai : trois coffres de 100 €, joués en parallèle. Les énigmes paraissent les 3 et 17 novembre 2026 à 18:15:05 UTC (trois à chaque date), les cris le 17 novembre à 19:15:05 UTC, les indices forts le 17 décembre 2026 (s’il reste un coffre), et les seconds indices six mois après le cri. Ajoutez `--chasse 0` à chaque commande, par exemple `python3 outil_chasseur.py verifier --chasse 0`. Ses coffres sont numérotés de 1 à 3, et leur cri porte `AEDE:cri:H0:<n>:<aléa>`.

## Les indices, et la solution une fois le coffre pris

Trente jours après son cri, un coffre non pris reçoit un indice fort ; six mois après, un second indice. La solution n’est publiée qu’une fois le coffre pris, par un message signé de l’auteur, qui se vérifie contre l’engagement gravé au semis.

Le COFFRET d’une chasse (`COFFRET_CHASSE0_V1.json` pour la chasse zéro, `COFFRET_AEDE_V1.json` pour la chasse n° 1 ; l’outil accepte n’importe quel nom de fichier, c’est le contenu qui compte) contient, sous des verrous à date drand, les énigmes, les cris et les deux indices de chaque coffre ; il ne contient aucune solution. Pour le lire :

    python3 outil_chasseur.py coffret COFFRET_CHASSE0_V1.json --chasse 0 --manifeste manifeste_chasse0.json

L’outil applique la règle de lecture commune à la Cave, à la librairie et à GodGift Core : il refuse un COFFRET qui contient un élément « solution » ou d’un type inconnu, un élément en double, un élément manquant, une heure d’ouverture qui n’est pas celle de la Pierre, ou un verrou dont la ronde drand n’est pas celle annoncée. Avec le manifeste, il vérifie aussi l’empreinte du COFFRET. Il affiche ensuite le calendrier : chaque énigme, chaque cri, chaque indice fort et chaque second indice, avec son heure UTC et sa ronde. Un verrou s’ouvre après son heure avec la signature drand de sa ronde (GodGift Core, ou l’outil officiel de drand : tle, tlock-js, timevault.drand.love) ; l’outil du chasseur, hors ligne, ne les ouvre pas, mais `--extraire DOSSIER` écrit chaque verrou dans un fichier `.age`.

Pour vérifier une solution publiée (le message signé de l’auteur, tel que la page de la chasse le donne) :

    python3 outil_chasseur.py solution message.json --chasse 0 --manifeste manifeste_chasse0.json

L’outil lit la dernière ligne du message (`AEDE:solution:<h>:<c>:<n3>:<n17>:<sel>`), recalcule l’engagement et le compare à celui du manifeste : « engagement du semis tenu » ou « engagement FAUX ». Il vérifie aussi la signature BIP-322 de l’adresse des messages de l’auteur (le guichet 3/0) et la compare à celle qui a signé le manifeste, ou à celle que vous donnez avec `--adresse-auteur`. Il ne remplit jamais vos réponses à partir de ce message et ne déclenche aucun envoi : le coffre est déjà pris.

## La règle de la course

Tous ceux qui trouvent ont la même clé : le premier retrait confirmé sur la chaîne l’emporte. Dès que l’outil dit « identiques », préparez le retrait et diffusez-le sans attendre, de préférence directement à un mineur ou par un service d’envoi privé. La transaction autorise le remplacement (RBF) : si elle tarde, refaites-la avec des frais plus hauts.

## Les chasses annoncées

Une chasse annoncée (n° 2 à 999) se décrit par sa définition publique : `--definition chasse_2.json`, ou `--manifeste manifeste_chasse2.json` (le manifeste porte sa définition). L’outil la contrôle et donne l’empreinte du fichier, à comparer à son annonce gravée et signée `AEDE:chasse:<h>:<empreinte>`.

## La formule

La formule est celle de l’annexe B de la Pierre V1j (inchangée depuis la V1g pour la chasse n° 1 : le sel garde son nom « AEDE-V1g-coffre »). Les règles communes (heures, lecture du COFFRET, engagement) sont recopiées de la Cave et vérifiées sur ses vecteurs : l’outil n’importe rien. Le code est lisible, sans dépendance : lisez-le, c’est fait pour.

Empreinte de la liste des cinq mille : `01622e7b67eb5faf9e17107e4ac16fd5aa8aa602c343ad78f46be52b586b8e2a` (l’outil la vérifie à chaque lancement).

Personne, pas même l’auteur, ne vous demandera jamais vos 24 mots, ni de payer pour une énigme, un indice ou une réponse, ni vos réponses. L’édition numérique certifiée ne s’achète que sur angedeleau.com ; GodGift Core ne se télécharge que sur angedeleau.com, ou s’ouvre sur app.angedeleau.com. Quiconque vous le demande, même au nom de l’auteur, est un escroc.
