Funciones Avanzadas#

Dash Electrum se basa en Electrum, una billetera de Bitcoin. La mayoría de las funciones son idénticas, lo que significa que no es necesario reproducir la totalidad de la documentación de Electrum aquí. Las siguientes secciones describen algunas funciones avanzadas de uso frecuente. Para obtener más detalles sobre otras funciones avanzadas en Electrum para Bitcoin y Dash, haz click en los enlaces a continuación.


PrivateSend offers users enhanced privacy when creating transactions by splitting the user’s balance into a number of predefined denominations in advance of spending. This process is known as CoinJoin. PrivateSend is available in Dash Electrum versions and higher, with support for hardware wallets added in

Processing and sending#

To start PrivateSend processing in Dash Electrum, select Wallet > PrivateSend or click the PS icon in the lower right corner of the main window. The following window appears:


PrivateSend dialog in Dash Electrum#

Enter the Amount of Dash to keep anonymized and the number of PrivateSend rounds to use. Then click Enable PrivateSend, followed by Start Mixing. The process will begin, and the Mixing Progress bar shows the completion progress. Additional information on the process is available on the Info and Log tabs.

When processing is complete, simply check the PrivateSend checkbox on the Send tab before sending your transaction. Dash Electrum will only use Dash processed according to your specifications for the transaction.

Billeteras de Hardware#

You can use hardware wallets with Dash Electrum. Under Linux, it may be necessary to first install dependencies and udev rules as follows:

sudo apt-get install python3-dev python3-pip cython3 libusb-1.0-0-dev libudev-dev
sudo pip3 install trezor

PrivateSend processing is also supported. Starting PrivateSend processing in Dash Electrum with a hardware wallet will generate a new HD wallet and mnemonic for the PrivateSend keystore. A transaction from the hardware wallet to an address in this keystore will be created, and processing will begin. You can then spend the processed Dash, or send it back to your hardware wallet.


Dash Electrum supports masternode creation through the DIP3 tab.


The DIP3 tab can be enabled via the View > Show DIP3 menu. This tab displays the status of your masternode(s) and also allows viewing a list of all registered masternodes on the network.

The tab displays the following data about each masternode you have set up:

  • El alias (nombre) del masternode.

  • The state of the masternode (e.g. whether it has been activated).

  • The keys

  • The Provider Registration transaction hash of the masternode.

  • La dirección IP y el puerto con el que se puede contactar a tu masternode.


DIP3 tab with masternode information#

Configuración del masternode#

To setup a masternode, navigate to the DIP3 tab and click the Add/Import button.


If combined with Electrum’s multisig features the masternode collateral can be stored in a multisig wallet for increased security flexibility. See this page for the Dash Electrum documentation demonstrating how to configure a masternode using a multisig collateral.

Always exercise caution when using multisig accounts and verify that each mnemonic is backed up appropriately.


Add or import masternode#

Electrum supports creating/registering new masternodes as well as importing and registering legacy masternodes via a masternode.conf file. At this point very few legacy masternodes are present, so only the Create and register DIP3 Masternode option will be covered in detail.

There are two supported ownership types: owner-only and owner/operator. The primary difference during setup is whether or not the operator BLS private key is stored in Electrum. The following steps show the creation of a self-hosted masternode so both ownership type checkboxes are selected. Click Next to continue.


Select operation type and ownership properties#

To start a masternode, you must have a 1000 DASH plus a small amount for fees available in your wallet. Leave Create collateral as ProRegTx output checked and click Next.


Select collateral output for masternode#

Certain information about your masternode is required. The IP address and port that your masternode uses must be supplied. Click Next after entering them (the port will be set to the default mainnet port of 9999 automatically).


Enter masternode IP address and port#

Each masternode requires three addresses: owner, voting, and payout. Electrum will automatically select addresses from your wallet. Click Next to continue.


Select masternode owner, voting, and payout addresses#

A masternode requires a BLS «operator» key as described in DIP3. If you manage your own masternode, both Dash Electrum and your masternode must know the operator private key. Your masternode will use the private key to sign messages, and the Dash network will know that you authorized it to do so.

Electrum will generate the required BLS private/public key pair and provide you with the line that must be copied to the masternode for proper masternode configuration. Click Next after copying this line to your masternode’s dash.conf file.


BLS key setup#

All parameters are now configured. This screen shows the configuration details and allows you to save the information. Make sure the Make ProRegTx after saving Masternode data box is checked, then click Save. The Send tab will open and be populated with the info necessary to register the masternode.


Examine parameters and save masternode#

Registering your masternode#

Since the ProRegTx information required to register the masternode was filled out by the previous step, just Click Pay… to complete the registration.


To complete registration of any previously setup masternode, go to the DIP3 tab, select the unregistered masternode from the list of Wallet MNs, and click Register.


Send tab with ProRegTx prepared#

Enter your password and click Send to broadcast the registration transaction.


Confirm ProRegTx Transaction#

The transaction hash will be displayed once the transaction has been sent successfully. This ProRegTx hash is used by the network to uniquely identify the masternode. Click OK to close the screen.


Transaction sent screen showing transaction hash#

Prior to the ProRegTx being confirmed the new masternode will appear as unregistered on the DIP3 tab.


DIP3 tab showing unregistered masternode#

Once the ProRegTx has been confirmed, the new masternode will appear as registered on the DIP3 tab.


DIP3 tab showing registered masternode#

Updating masternode registration#

To update masternode registration information, navigate to the DIP3 tab and click the Update Registrar button.


Update Registrar#

The masternode owner may update the voting and payout addresses at any time. Addresses from the current wallet can be selected from the drop down menu or addresses from a different wallet (e.g. a hardware wallet) can be pasted into either field. Click Next to continue.


Update masternode voting and/or payout address#

The masternode owner may also update the operator BLS key at any time. Click Next to continue.


Any time the the operator private key is changed it must be copied into the dash.conf file on the masternode. Electrum will provide a notification with instructions when this is required.


Update operator BLS key#

All parameters are now configured. This screen shows the updated configuration details. Click Prepare ProUpRegTx to continue. The Send tab will open and be populated with the info necessary to update the masternode.


Examine parameters and update masternode#

The ProUpRegTx information required to update the masternode registration was filled out by the previous step so just Click Pay… to complete the update.


Send tab with ProUpRegTx prepared#

Enter your password and click Send to broadcast the update transaction.


Confirm ProUpRegTx Transaction#

The transaction hash will be displayed once the transaction has been sent successfully. Click OK to close the screen.


Transaction sent screen showing transaction hash#

Updating masternode service parameters#

The masternode service may need to be updated to:

  1. Change the IP address, port, or operator payout address of a masternode

  2. Revive a masternode that was Proof of Service (PoSe) banned

To update masternode service information, navigate to the DIP3 tab and click the Update Service button.


Update Service#

The masternode operator may update the IP address and port at any time. Update the IP address and click Next to continue.


Update masternode IP address#

All parameters are now configured. This screen shows the updated configuration details. Click Prepare ProUpServTx to continue. The Send tab will open and be populated with the info necessary to update the masternode.


Examine parameters and update masternode service#

The ProUpServTx information required to update the masternode was filled out by the previous step so just Click Pay… to complete the update.


Send tab with ProUpServTx prepared#

Enter your password and click Send to broadcast the update transaction.


Confirm ProUpServTx Transaction#

The transaction hash will be displayed once the transaction has been sent successfully. Click OK to close the screen.


Transaction sent screen showing transaction hash#

Billeteras multifirma#

Este tutorial muestra cómo crear una billetera multifima 2 de 2. Una multifirma 2 de 2 consta de 2 billeteras separadas (generalmente en máquinas separadas y potencialmente controladas por personas separadas) que deben usarse en conjunto para acceder a los fondos. Ambas billeteras tienen el mismo conjunto de direcciones.

  • Un caso de uso común para esto es si deseas controlar los fondos en conjunto: tal vez tu y tu amigo dirijen una compañía juntos y ciertos fondos solo deberían ser gastados si ambos están de acuerdo.

  • Otro caso es la seguridad: una de las billeteras puede estar en tu máquina principal, mientras que la otra está en una máquina fuera de línea. De esta forma, se le dificulta a un atacante o un malware robar tus monedas.

Crear un par de billeteras 2-de-2#

Cada cosignatario debe hacer esto: en el menú, seleccionar Archivo > Nuevo, luego seleccionar Billetera multifirma. En la pantalla siguiente, seleccionar 2 de 2.


Selección de firmas x de y para una billetera multifirma#

Después de generar y confirmar tu semilla de recuperación, se te mostrará la dirección de xpub para esta billetera.


La llave xpub de la primera billetera#

Después de generar una semilla (guárdala de forma segura!) deberás proporcionar la llave pública maestra de la otra billetera. Por supuesto, cuando creas la otra billetera, coloca la llave pública maestra de la primera billetera.


Ingresar xpub de la segunda billetera en la primera billetera#

Tendrás que hacer esto en paralelo para las dos billeteras. Ten en cuenta que puedes presionar cancelar durante este paso y volver a abrir el archivo más tarde.


Verifica que ambas billeteras generen el mismo conjunto de direcciones. Ahora puedes enviar a estas Direcciones (ten en cuenta que comienzan con un «7») con cualquier billetera que pueda enviar a Direcciones P2SH.


Para gastar monedas de una billetera 2-de-2, dos cosignatarios deben firmar una transacción en conjunto. Para lograr esto, crea una transacción utilizando una de las billeteras (completando el formulario en la pestaña Enviar). Después de firmar, se muestra una ventana con los detalles de la transacción.


Transacción de multifirma 2-de-2 parcialmente firmada en Dash Electrum#

La transacción ahora debe enviarse a la segunda billetera. Varias opciones están disponibles para esto:

  • Puedes transferir el archivo a una memoria USB

    Puedes guardar la transacción parcialmente firmada en un archivo (usando el botón Guardar), transferirla a la máquina donde se está ejecutando la segunda billetera (a través de una memoria USB, por ejemplo) y cargarla allí (usando Herramientas > Cargar transacción > Desde archivo)

  • Puedes usar códigos QR

    Un botón que muestra un ícono de código QR también está disponible. Al hacer click en este botón se mostrará un código QR que contiene la transacción, el cual se puede escanear en la segunda billetera (Herramientas > Cargar transacción > Desde código QR)

Con los dos métodos anteriores, ahora puedes agregar la segunda firma a la transacción (usando el botón Firmar). Luego se transmitirá a la red.


Transacción multifirma 2-de-2 completamente firmada en Dash Electrum#

Arrastrar una billetera de papel#

You may have received a paper wallet as a gift from another Dash user, or previously stored one in a safe deposit box. Funds are swept from a paper wallet into a live wallet by importing its private key, which is a long sequence of characters starting with the number «7» or the capital letter «X». The example below displays a private key (WIF format).


Dirección pública y llave privada asociada, producidas por un generador de billeteras de papel de Dash#

Los fondos de las billeteras de papel se arrastran a una billetera de Dash Electrum creando una transacción utilizando la llave privada y enviándola a una nueva dirección de tu billetera. Esto es necesario porque no es posible agregar nuevas llaves públicas o privadas a una serie determinista existente de direcciones derivadas de una frase semilla.

Comienza seleccionando la opción de menú Billetera > Llaves privadas > Arrastrar. Aparecerá el cuadro de diálogo Arrastrar llaves privadas, donde puedes pegar tu(s) llaves privadas. Una dirección no utilizada controlada por tu billetera Dash Electrum aparece en el campo inferior, y se puede cambiar haciendo clic en el botón Dirección. Una vez que hayas pegado su llave privada, haz clic en el botón Arrastrar.


Ingresar una llave privada#

Dash Electrum luego prepara una transacción usando la llave privada que acabas de importar para derivar la dirección pública para la entrada de la transacción y la dirección de tu billetera como salida, y luego firma el mensaje. Haz click en Transmisión para ingresar a la transacción en la cadena de bloques. El saldo aparecerá en tu billetera debajo de la dirección especificada. La dirección que arrastraste quedará con saldo cero.


Transmisión de la transacción arrastrada#

Almacenamiento en frío#

Esta sección muestra cómo crear una billetera fuera de línea que contiene tus Dash y una billetera en línea solo para mirar el de la otra billetera historial y para crear transacciones que deben firmarse con la billetera fuera de línea antes de ser transmitidas en la billetera en línea.

Crear una billetera fuera de línea#

Crea una billetera en una máquina fuera de línea, según el proceso habitual (Archivo > Nuevo). Después de crear la billetera, ve a Billetera -> Llaves públicas maestras.


Llave pública maestra de una nueva billetera fuera de línea#

La llave pública maestra de tu billetera es la cadena que se muestra en esta ventana emergente. Transfiere esa llave a tu máquina en línea de alguna manera.

Crea una versión de solo lectura de tu billetera#

En tu máquina en línea, abre Dash Electrum y selecciona Archivo > Nuevo/Restaurar. Ingresa un nombre para la billetera y selecciona Usar llaves públicas o privadas. Pega tu llave pública maestra en el cuadro. Haz click en Siguiente para completar la creación de tu billetera. Cuando termines, deberías ver una ventana emergente que te informa que estás abriendo una billetera de solo lectura.


Llave pública maestra de una nueva billetera fuera de línea#

El historial de transacciones de tu billetera fría debería aparecer.

Crear una transacción sin firmar#

Ve a la pestaña Enviar de tu billetera de solo lectura en línea, ingresa los datos de la transacción y haz click en Enviar. Aparecerá una ventana para informarte que se agregará una comisión de transacción. Continuar. En la ventana que aparece, haz click en Guardar y guarda el archivo de transacción en algún lugar de tu computadora. Cierra la ventana y transfiere el archivo de transacción a tu máquina fuera de línea (por ejemplo, con una memoria USB).

Firmar tu transacción#

En tu billetera fuera de línea, selecciona en el menú Herramientas > Cargar transacción -> Desde archivo y selecciona el archivo de transacción creado en el paso anterior. Haz clic en Firmar. Una vez que se firme la transacción, la identificación de la transacción aparecerá en su campo designado. Haz clic en Guardar, almacena el archivo en algún lugar de tu computadora y transfiérelo a tu máquina en línea.

Transmitir tu transacción#

En tu máquina en línea, selecciona en el menú Herramientas -> Cargar transacción -> Desde archivo. Selecciona el archivo de transacción firmado. En la ventana que se abre, haz click en Transmisión. La transacción se transmitirá a través de la red Dash.

Línea de comandos#

Dash Electrum tiene una poderosa línea de comandos disponible cuando se ejecuta en Linux o macOS. Esta sección te mostrará algunos principios básicos.

Usar la ayuda entre líneas#

Para ver la lista de comandos de Dash Electrum, escribe:

electrum help

Para ver la documentación de un comando, escribe:

electrum help <command>

Palabras mágicas#

Los argumentos pasados a los comandos pueden ser una de las siguientes palabras mágicas: ! ? : -.

El signo de exclamación ! Es un atajo que significa “la cantidad máxima disponible’. Ten en cuenta que la comisión de transacción se calculará y descontará de la cantidad. Ejemplo:

electrum payto Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq !

Un signo de interrogación ? Significa que deseas que se solicite el parámetro. Ejemplo:

electrum signmessage Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq ?

Usa dos puntos : si deseas que el parámetro solicitado se oculte (no se repite en tu terminal). Ten en cuenta que se te solicitarán dos veces en este ejemplo, primero para la llave privada y luego para la contraseña de tu billetera:

electrum importprivkey :

Un parámetro reemplazado por un guión - se leerá de la entrada estándar (en una tubería):

cat LICENCE | electrum signmessage Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq -


Puede usar alias de DNS en lugar de direcciones de bitcoin, en la mayoría de los comandos:

electrum payto !

Formatear salidas usando jq#

Las salidas de los comandos son cadenas simples o datos estructurados de json. Un producto muy útil es el programa “jq”. Instálalo con:

sudo apt-get install jq

Los siguientes ejemplos lo usan

Firma y verifica mensajes#

Podemos usar una variable para almacenar la firma y verificarla:

sig=$(cat LICENCE| electrum signmessage Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq -)


cat LICENCE | electrum verifymessage Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq $sig -

Mostrar los valores de tus saldos no gastados#

El comando listunspent devuelve una lista de objetos, con varios campos. Supongamos que queremos extraer el campo valor de cada registro. Esto se puede lograr con el comando jq:

electrum listunspent | jq 'map(.value)'

Selecciona solo las transacciones entrantes del historial#

Las transacciones entrantes tienen un campo de ‘valor’ positivo:

electrum history | jq '.[] | select(.value>0)'

Filtrar transacciones por fecha#

El siguiente comando selecciona las transacciones que tienen marca de tiempo después de una fecha determinada:

after=$(date -d '07/01/2015' +"%s")
electrum history | jq --arg after $after '.[] | select(.timestamp>($after|tonumber))'

Del mismo modo, podemos exportar transacciones por un período de tiempo dado:

before=$(date -d '08/01/2015' +"%s")
after=$(date -d '07/01/2015' +"%s")
electrum history | jq --arg before $before --arg after $after '.[] | select(.timestamp&gt;($after|tonumber) and .timestamp&lt;($before|tonumber))'

Encriptar y desencriptar mensajes#

Primero necesitamos la llave pública de una dirección de billetera:

pk=$(electrum getpubkeys Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq| jq -r '.[0]')


cat | electrum encrypt $pk -


electrum decrypt $pk ?

Nota: este comando te pedirá el mensaje encriptado, luego la contraseña de la billetera.

Exportar llaves privadas y arrastrar monedas#

El siguiente comando exportará las llaves privadas de todas las direcciones de la billetera que contienen algunos Dash

electrum listaddresses --funded | electrum getprivatekeys -

Esto devolverá una lista de listas de llaves privadas. En la mayoría de los casos, deseas obtener una lista simple. Esto puede hacerse agregando un archivador jq, de la siguiente manera:

electrum listaddresses --funded | electrum getprivatekeys - | jq 'map(.[0])'

Finalmente, usemos esta lista de llaves privadas como entrada para el comando de arrastre:

electrum listaddresses --funded | electrum getprivatekeys - | jq 'map(.[0])' | electrum sweep - [destination address]

Usar el almacenamiento en frío con la línea de comandos#

Esta sección te mostrará cómo firmar una transacción con una billetera Dash Electrum fuera de línea usando la línea de comandos.

Crear una transacción sin firmar#

Con tu billetera en línea (solo de lectura), crea una transacción sin firmar:

electrum payto Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq 0.1 --unsigned > unsigned.txn

La transacción sin firmar se almacena en un archivo llamado ‘unsigned.txn’. Ten en cuenta que la - opción no firmada no es necesaria si usas una billetera solo de lectura.

Lo podrás ver usando:

cat unsigned.txn | electrum deserialize -

Firmar la transacción#

El formato de serialización de Dash Electrum contiene la llave pública maestra necesaria y la derivación de llave utilizada por la billetera fuera de línea para firmar la transacción. Por lo tanto, solo tenemos que pasar la transacción serializada a la billetera fuera de línea:

cat unsigned.txn | electrum signtransaction - > signed.txn

El comando te pedirá tu contraseña y guardará la transacción firmada en ‘signed.txn’.

Transmitir la transacción#

Manda tu transacción a la red de Dash, usando transmisión:

cat signed.txn | electrum broadcast -

Si tiene éxito, el comando devolverá la identificación de la transacción.

Cómo aceptar Dash en un sitio web usando Dash Electrum#

Este tutorial te mostrará cómo aceptar Dash en un sitio web con solicitudes de pago SSL firmadas. Está actualizado para Dash Electrum 2.6.


  • Un servidor web que sirve HTML estático

  • Un certificado SSL (firmado por una CA)

  • Vesión de Electrum >= 2.6

Crear una billetera#

Crear una billetera en tu servidor web:

electrum create

También puedes usar una billetera de solo lectura (restaurada desde xpub), si deseas mantener las llaves privadas fuera del servidor. Una vez que haya creado tu billetera, inicia Dash Electrum como un daemon:

electrum daemon start

Agrega tu certificado SSL a tu configuración#

Debes tener una llave privada y un certificado público para tu dominio. Crea un archivo que contenga solo la llave privada:

your private key
-----BEGIN END KEY-----

Establece la ruta a tu archivo de llave privada con setconfig:

electrum setconfig ssl_privkey /path/to/ssl.key

Crea otro archivo que contenga tu certificado y la lista de certificados de los que depende, hasta la raíz CA. Tu certificado debe estar en la parte superior de la lista y la raíz CA al final:

your cert
intermediate cert
root cert

Configura la ruta ssl_chain con setconfig:

electrum setconfig ssl_chain /path/to/ssl.chain

Configurar un directorio de solicitudes#

Este directorio debe ser servido por tu servidor web (por ejemplo, Apache):

electrum setconfig requests_dir /var/www/r/

De forma predeterminada, Dash Electrum mostrará las URL locales, comenzando con‘file://‘ Para mostrar las URL públicas, necesitamos establecer otra variable de configuración, url_rewrite. Por ejemplo:

electrum setconfig url_rewrite "['file:///var/www/','']"

Crear una solicitud de pago firmada#

electrum addrequest 3.14 -m "this is a test"
   "URI": "dash:Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq?amount=3.14&r=",
   "address": "Xtdw4fezqbSpC341vcr8u9HboiJMFa9gBq",
   "amount": 314000000,
   "amount (DASH)": "3.14",
   "exp": 3600,
   "id": "7c2888541a",
   "index_url": "",
   "memo": "this is a test",
   "request_url": "",
   "status": "Pending",
   "time": 1450175741

Este comando devuelve un objeto json con dos URL:

  • request_url es la URL de la solicitud BIP70 firmada.

  • index_url es la URL de una página web que muestra la solicitud.

Ten en cuenta que request_url y index_url usan el nombre de dominio que definimos en url_rewrite. Puedes ver la lista actual de solicitudes usando el comando listrequests.

Abre la página de solicitud de pago en tu navegador#

Vamos a abrir index_url en un navegador web.


Página de solicitud de pago en un navegador web#

La página muestra la solicitud de pago. Puede abrir Dash: URI con una billetera o escanear el código QR. La línea inferior muestra el tiempo restante hasta que caduque la solicitud.


Billetera esperando un pago#

Esta página ya puede usarse para recibir pagos. Sin embargo, no detectará que se haya pagado una solicitud; para eso tenemos que configurar websockets.

Agregar soporte para web socket#

Obtén SimpleWebSocketServer desde aquí:

git clone

Configurar websocket_server y websocket_port en tu configuración:

electrum setconfig websocket_server <FQDN of your server>
electrum setconfig websocket_port 9999

Y reiniciar el daemon:

electrum daemon stop
electrum daemon start

Ahora, la página es completamente interactiva: se actualizará sola cuando se reciba el pago. Ten en cuenta que los puertos más altos pueden estar bloqueados en los firewalls de algunos clientes, por lo que es más seguro, por ejemplo, revertir la transmisión de proxy websockets utilizando el puerto estándar 443 en un subdominio adicional.

Interfaz JSONRPC#

Los comandos para el daemon de Dash Electrum se pueden enviar usando JSONRPC. Esto es útil si quieres usar Dash Electrum en un script PHP.

Ten en cuenta que el daemon usa un número de puerto aleatorio por defecto. Para utilizar un número de puerto estable, debes establecer la variable de configuración rpcport (y reiniciar el daemon):

electrum setconfig rpcport 7777

Con esta configuración, podemos realizar consultas usando Curl o PHP. Ejemplo:

curl --data-binary '{"id":"curltext","method":"getbalance","params":[]}'

Consulta con parámetros nombrados:

curl --data-binary '{"id":"curltext","method":"listaddresses","params":{"funded":true}}'

Crear una solicitud de pago:

curl --data-binary '{"id":"curltext","method":"addrequest","params":{"amount":"3.14","memo":"test"}}'