# Migrar pledge a Ledger Nano

## Preparar Hardware Wallet

Lo primero que debes hacer es preparar tu wallet siguiendo los pasos provistos por el fabricante.\
En el caso de Ledger Nano, lo ideal es descargar el software Ledger Live desde la web del fabricante, instalar el software y seguir los pasos sugeridos al abrir la aplicación para generar tus 24 palabras de seguridad. Recuerda que esta información no debe ser compartida ni ingresada en ningún sitio web, bajo ninguna circunstancia. Opcionalmente se puede generar una billetera con un passphrase asociado al PIN como se indica en este video:  <https://www.youtube.com/watch?app=desktop&v=C3pP2lPUnnM>

{% hint style="warning" %}
Si la app de Ledger Live sugiere actualizar el software de tu dispositivo es muy recomendable que aceptes las actualizaciones antes de seguir.
{% endhint %}

Link de Ledger Live: <https://www.ledger.com/ledger-live/download>

### Agregar app de Cardano

Una vez listo nuestro Ledger, actualizado y conectado a nuestra aplicación de Ledger Live, vamos a la sección de Manager y buscamos "Cardano", haciendo finalmente clic en Instalar. La versión mas reciente al momento de escribir esta guía es la 2.1.0.

![](/files/-MOdvViY-48CMrl7_xGq)

## Instalar cardano-hw-cli

Para poder utilizar nuestra HW necesitaremos la última versión de la herramienta `cardano-hw-cli`, 1.1.3 al momento de escribir este artículo.&#x20;

```
wget https://github.com/vacuumlabs/cardano-hw-cli/releases/download/v1.1.3/cardano-hw-cli-1.1.1_linux-x64.tar.gz
tar -xvzf cardano-hw-cli.1.1.3_linux-x64.tar.gz
sudo cp cardano-hw-cli /usr/bin/
```

## Generar protocol.json

Primero nos aseguramos de tener el Ledger conectado por USB al equipo, éste debe encontrarse desbloqueado y con la app de Cardano abierta.

El primer paso es descargar los parámetros del protocolo.

```
cardano-cli query protocol-parameters \
--mainnet \
--out-file out/protocol.json
```

## Llaves de *payment*

```
cardano-hw-cli shelley address key-gen \
--path 1852H/1815H/0H/0/0 \
--verification-key-file payment.vkey \
--hw-signing-file payment.hwsfile
```

Al ingresar este comando es necesario aprobar desde el Ledger la exportación de las llaves públicas. Para aceptar los pasos solo debes apretar los dos botones de tu Ledger en simultáneo. Los mensajes que aparecerán son:

*Unusual request*\
*Proceed with care*\
\
*Export public key*      \
*m/1852'/1815'/0'/0/0*\
\
*Confirm export public key?*

Al finalizar este paso tenemos nuestro llave de verificación `payment.vkey` y un archivo de firma de HW `payment.hwsfile`.

## Llaves de stake

Ahora exportaremos nuestras llaves de stake para poder delegar nuestra wallet.

```
cardano-hw-cli shelley address key-gen \
--path 1852H/1815H/0H/2/0 \
--verification-key-file stake.vkey \
--hw-signing-file stake.hwsfile
```

Aquí nuevamente tendremos que aceptar las operaciones desde el Ledger, los mensajes son similares a los del paso anterior.

*Unusual request*\
*Proceed with care*\
\
*Export public key*      \
*m/1852'/1815'/0'/2/0*\
\
*Confirm export public key?*

Ahora contamos con nuestra llave de verificación `stake.vkey` y nuestro archivo de firma de HW `stake.hwsfile`.

## Generar payment.add

```
cardano-cli address build \
--payment-verification-key-file payment.vkey \
--stake-verification-key-file stake.vkey \
--out-file payment.addr \
--mainnet
```

## Generar stake.addr

```
cardano-cli shelley stake-address build \
--stake-verification-key-file stake.vkey \
--out-file stake.addr \
--mainnet
```

## Registrar pool

{% hint style="info" %}
Para este paso se asume que ya cuentas con un pool registrado y en funcionamiento. Si es un pool nuevo debes generar primero tus cold keys, VRF keys y el certificado operacional. Puedes seguir los pasos indicados en[ ](/primeros-pasos/registrar-pool.md)[Keys y certificado del pool](/primeros-pasos/pool-keys-and-certs.md).
{% endhint %}

Empezamos descargando nuestro archivo metadata para calcular el hash:

```
cd ~/cardano-node
wget https://storage.googleapis.com/topo-pool/meta.json
cardano-cli stake-pool metadata-hash --pool-metadata-file meta.json
```

Con el hash que obtenemos debemos completar nuestro registro, y proporcionar los parámetros requeridos del pool.

```
cardano-cli stake-pool registration-certificate \
--cold-verification-key-file pool-keys/cold.vkey \
--vrf-verification-key-file pool-keys/vrf.vkey \
--pool-pledge 125000000000 \
--pool-cost 340000000 \
--pool-margin 0.01 \
--pool-reward-account-verification-key-file stake.vkey \
--pool-owner-stake-verification-key-file stake.vkey \
--mainnet \
--single-host-pool-relay relay-us1.topopool.com \
--pool-relay-port 3001 \
--single-host-pool-relay relay-de1.topopool.com \
--pool-relay-port 3001 \
--single-host-pool-relay relay-jp1.topopool.com \
--pool-relay-port 3001 \
--metadata-url 	https://storage.googleapis.com/topo-pool/meta.json \
--metadata-hash 36a8b9888e3085cee52a917c37d3de65c85f4c5b3b1150208c87fafda48ac751 \ 
--out-file pool-registration.cert
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://es-kb.topopool.com/novedades/migrar-pledge-hw.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
