Concept et philosophie
Bitcoin Tools repose sur trois principes : l'auto-conservation, le local-first et la transparence des sources.
1. Auto-garde non négociable
Aucune clé privée, aucune phrase de récupération et aucun mot de passe de portefeuille ne transite par Bitcoin Tools. Bitcoin Tools construit une PSBT non signée ; le bouton « Signer » ne fait que transmettre cette PSBT à votre portefeuille (Xverse), qui vous demande une approbation explicite. Une fois que vous approuvez, Bitcoin Tools récupère la transaction finalisée et votre navigateur la diffuse directement vers mempool.space (Blockstream.info en secours). La garantie est donc précise : Bitcoin Tools ne peut pas produire de transaction dépensable sans l'approbation de signature de votre portefeuille — mais une fois signée, la diffusion peut se faire automatiquement.
2. Local-first : votre IndexedDB est la source de vérité
Les scans de portefeuille, les enrichissements d'UTXO, les sélections et les préférences sont conservés dans votre navigateur au sein de plusieurs stockages locaux spécialisés, pour la plupart des bases IndexedDB. Cela permet :
- navigation instantanée entre les outils sans re-téléchargement,
- analyse hors ligne (Inspecteur PSBT),
- une persistance locale de vos résultats : ils sont stockés sur votre appareil et ne sont pas téléversés en bloc.
La persistance locale n'est pas synonyme d'isolation totale. Pour récupérer les UTXO, les enrichissements ou les statuts de transaction — ainsi que pour l'analyse IA optionnelle — des adresses Bitcoin, des outpoints, des identifiants de transaction et des données de transaction décodées sont transmis aux fournisseurs de données et proxys nécessaires. Ce trafic relève d'un traitement réseau temporaire ; ce qui est stocké durablement reste sur votre appareil.
Principaux stockages locaux (liste non exhaustive)
| Cache | Contenu | TTL |
|---|---|---|
scanCache | Résultat complet de l'analyse du portefeuille (ordinaux + UTXO de paiement + groupes de sats rares) | 7 jours |
ordinalsEnrichmentCache | Enrichissement Ordiscan par txid:vout (plages de sats, inscriptions, runes, satributs) | ~permanent |
addressUtxosCache | UTXO bruts de mempool.space par adresse + empreinte réseau | invalidé lors du changement d'empreinte |
psbtCache | Enrichissement PSBT indexé par le hachage SHA-256 de la charge utile | ~permanent |
addressEnrichmentCache | Enrichissement Ordiscan au niveau de l'adresse (inscriptions, soldes BRC-20) | 120 s (anti-rafale) |
paymentRiskScans | Résultat de l'analyse de risque pour l'adresse de paiement | 7 jours |
Ce tableau liste les stockages principaux ; il ne constitue volontairement pas un inventaire exhaustif de chaque cache interne. Notez que l'historique de transactions détaillé affiché par Bitcoin Tools n'est pas conservé dans IndexedDB : il réside dans le localStorage, indexé par réseau et par adresse.
3. Ce qui touche le serveur (et ce qui ne le touche pas)
Ce qui reste local
- Vos clés privées et votre seed (toujours dans Xverse).
- Toutes les analyses de portefeuille, enrichissements et sélections d'UTXO.
- PSBTs en cours de construction.
- L'historique fonctionnel complet des transactions affiché par Bitcoin Tools (en attente et confirmées), stocké dans le localStorage de votre navigateur et indexé par réseau et par adresse.
Lire et rafraîchir ces éléments nécessite tout de même des appels réseau : les adresses, les outpoints et les identifiants de transaction sont envoyés aux fournisseurs de données décrits ci-dessous afin d'obtenir les UTXO, les enrichissements et les statuts de confirmation.
Ce qui passe par le serveur
- Appels Ordiscan : votre clé personnelle (BYOK) est chiffrée côté serveur en AES-256-GCM ; elle n'est déchiffrée en mémoire que le temps d'un appel et n'est jamais renvoyée au client.
- Proxy mempool.space : relais sans clé utilisé pour le trafic de lecture/consultation (taux de frais, prix, sommet de chaîne, requêtes d'adresses et d'UTXO) avec un cache serveur léger. La diffusion d'une transaction signée n'utilise pas ce proxy : votre navigateur envoie la transaction finalisée directement à mempool.space, avec Blockstream.info en secours.
- Analytics sans données personnelles : à la connexion, votre
userIdSupabase, le pays/la région (en-têtes Cloudflare) et un hachage SHA-256 de votre IP sont enregistrés. L'IP brute n'est jamais stockée. - Télémétrie opérationnelle d'utilisation : lors de la diffusion d'une transaction, l'implémentation analytique de l'application peut enregistrer côté serveur une trace de l'opération (identifiants et grandeurs de synthèse tels que le txid, l'outil utilisé, les frais et le nombre d'entrées). Il s'agit de télémétrie, et non de l'historique détaillé visible dans l'interface, qui reste local.
- Audit IA optionnel dans l'inspecteur PSBT (bouton explicite) : envoie le JSON décodé à une fonction Supabase, jamais votre clé ni vos informations personnelles.
4. Mode démo
Le mode démo charge un instantané de wallet (UTXO, runes, inscriptions, BRC-20) capturé au préalable par un administrateur. Tous les outils se comportent comme si vous étiez connecté, à une exception près :
Le BRC-20 en direct et le sondage des transactions en attente sont également désactivés en mode démo pour éviter de consommer votre clé Ordiscan.
5. BYOK : Apportez votre propre clé (Ordiscan)
Ordiscan est notre source principale pour les plages de sats, les inscriptions, les soldes BRC-20 et les métadonnées de runes. Une clé gratuite vous donne 1 000 requêtes par mois — amplement suffisant pour une utilisation personnelle normale.
Vous pouvez enregistrer jusqu'à 5 clés. Lorsqu'une clé atteint son quota, la suivante est utilisée automatiquement. Voir les prérequis pour la procédure.
6. Rôles des portefeuilles et badges ORD / PAY / CHANGE
Dans l'Historique, les détails de transaction et les aperçus de chaque outil, les entrées et sorties portent un petit badge qui décrit la famille d'adresse du script, déduite en décodant le script pour le réseau actif — et non en comparant des chaînes de caractères à vos adresses connectées.
- ORD (orange) — script Taproot (P2TR), la famille utilisée par le portefeuille Ordinals.
- PAY (bleu) — famille de paiement validée : SegWit natif, ou une forme SegWit imbriqué validée et prise en charge.
- CHANGE (bleu) — la sortie qui renvoie le reliquat de la transaction vers votre portefeuille de paiement. Elle remplace le badge PAY sur cette sortie ; les entrées ne sont jamais étiquetées CHANGE.
