Le démon Electrum accepte les commandes via JSON-RPC, ce qui permet une intégration avec des scripts, tels que ceux écrits en PHP. Par défaut, le démon utilise un port aléatoire. Pour définir un port fixe, utilisez l'option rpcport
variable de configuration :
electrum setconfig rpcport 7777
N'oubliez pas de redémarrer le démon après avoir modifié ce paramètre.
D'Electrum 3.0.5
L'interface JSON-RPC utilise, à partir de la version anglaise, l'interface JSON-RPC Authentification de base HTTP. Le système définit automatiquement un nom d'utilisateur et génère un mot de passe aléatoire lors du premier lancement. Vous pouvez afficher ou modifier ces informations d'identification à l'aide de ces commandes :
electrum getconfig rpcuser
electrum getconfig rpcpassword
Sachez que l'authentification de base HTTP envoie des informations d'identification non cryptées. Bien qu'elle soit sûre pour les localhost
il n'est pas sécurisé sur les réseaux non fiables ou sur l'internet. Pour les connexions au-delà de localhost
Pour ce faire, il convient de mettre en œuvre des mesures de sécurité supplémentaires, telles que des tunnels cryptés. Se référer cette pour plus de détails.
Une fois que vous avez défini un port statique et configuré l'authentification, vous pouvez interagir avec le démon Electrum en utilisant des outils comme curl ou des langages de programmation comme PHP. Voici quelques exemples :
Requête de base
Pour vérifier le solde de votre portefeuille, utilisez la commande curl suivante :
curl --data-binary '{"jsonrpc":"2.0","id":"curltext","method":"getbalance","params":[]}' http://username:[email protected]:7777
Requête avec paramètres nommés
Pour répertorier les adresses dont le solde est positif :
curl --data-binary '{"jsonrpc":"2.0","id":"curltext","method":"listaddresses","params":{"funded":true}}' http://username:[email protected]:7777
Création d'une demande de paiement
Pour générer une demande de paiement de 3,14 BTC avec un mémo :
curl --data-binary '{"jsonrpc":"2.0","id":"curltext","method":"add_request","params":{"amount":"3.14","memo":"test"}}' http://username:[email protected]:7777