La forme la plus simple que prend le programme de wallet est celle d’un wallet complet. Son rôle est de générer des clés privées, d’en dériver les clés publiques correspondantes et aider à les distribuer, surveiller les outputs qui y sont dépensés, créer et signer les transactions qui utilisent ces outputs et enfin, distribuer les transactions signées sur le réseau.
L’avantage de ces wallet complet est leur facilité d’usage : dans un seul programme, l’utilisateur peut trouver tout ce dont il a besoin pour recevoir et dépenser ses bitcoins. Le désavantage majeur de ces wallets est qu’ils entreposent les clés privées sur un appareil connecté à Internet, or il est aisé de compromettre la sécurité de tels appareils et de faire en sorte d’en voler les clés privées qui y sont entreposées.
Pour contourner ce problème, de nombreux programmes de wallet offrent aux utilisateurs la possibilité de crypter les fichiers contenant les clés privées. Cela protège les clés privées quand elles ne sont pas utilisées, mais cela n’empêche pas un pirate de dérober la clé de cryptage ou de lire l’état des clés avant/sans cryptage depuis la mémoire de l’appareil.