← Tous les projets

Widget de suivi Bitcoin

Open-source

2026 · Projet personnel · Widget iOS, codé avec l'aide de l'IA

Le contexte

Je voulais un moyen simple de vérifier le solde d'une adresse Bitcoin ou d'un portefeuille complet directement depuis l'écran d'accueil de mon iPhone, sans dépendre d'une app tierce qui aurait accès à mes clés. Le projet a démarré comme une vraie app iOS native en SwiftUI, avec son propre widget WidgetKit — et elle fonctionne très bien dans le simulateur Xcode.

C'est en essayant de l'installer sur mon téléphone que les choses se sont compliquées : avec un identifiant Apple gratuit (pas de compte Developer), la signature d'une app expire au bout de 7 jours. Plutôt que de m'arrêter là, j'ai cherché une autre voie : Scriptable, une app de scripting JavaScript téléchargée depuis l'App Store, donc déjà signée, capable d'afficher ses propres widgets. Le même besoin, sans aucune des contraintes de signature.

Ma démarche

Ne pas sacrifier la rigueur pour la simplicité de déploiement. Passer à un script ne devait pas vouloir dire bâcler la partie technique la plus sensible : calculer les adresses d'un portefeuille à partir d'une clé publique étendue (xpub/ypub/zpub), qui repose sur de la cryptographie à courbe elliptique (BIP32). J'ai embarqué deux librairies JavaScript reconnues et auditées plutôt que de réécrire ce calcul moi-même, puis validé l'ensemble bit à bit contre les vecteurs de test officiels de la spécification Bitcoin (BIP32 et BIP84) — la dérivation reproduit exactement les adresses publiées dans la norme.

Rester lisible malgré la contrainte technique. Un widget n'a pas d'écran de réglages : tout passe par un simple champ texte. J'ai itéré plusieurs fois sur la façon de configurer le suivi de la plus-value (calcul optionnel basé sur un prix d'achat moyen) pour que le widget explique lui-même, quand il n'est pas encore configuré, exactement quoi taper — plutôt que de renvoyer vers une documentation externe.

Widget d'écran d'accueil affichant le solde, la contre-valeur, la plus-value et la dernière transaction d'un portefeuille Bitcoin
Solde, contre-valeur, plus-value latente et dernière transaction
Écran de configuration du widget Scriptable, avec l'adresse à suivre renseignée dans le champ Paramètre
Toute la configuration passe par le paramètre du widget

Captures avec l'adresse publique du bloc de genèse de Bitcoin (2009), utilisée comme démonstration — pas mon portefeuille personnel.

Ce que ce projet m'a appris

La partie la plus intéressante n'a pas été d'écrire du JavaScript — je ne sais pas coder, ce projet a été réalisé intégralement avec l'aide de l'IA — mais de devoir changer de plateforme technique en cours de route face à une contrainte réelle (le sideload avec un compte gratuit) sans revenir sur l'exigence de départ.

Mobilisé : JavaScript (Scriptable) · Swift / SwiftUI / WidgetKit (version native) · Cryptographie BIP32/secp256k1 · Codage assisté par IA

Voir le code sur GitHub ↗

← Projet précédentNoReelInsta