Skip to main content

Signing transactions with Ledger

Updated over a month ago

Overview

When you use a Ledger with Crucible, your private keys never leave your hardware device. This means you must physically approve every action you take on your Ledger. This includes staking TAO, sending a transfer, or setting up a Smart Allocator.

The Crucible extension acts as the requestor, while your Ledger acts as the signer.

The Signing Workflow

1. Initiate in Crucible

When you click a button like "Stake" or "Send" in Crucible, the extension prepares the data and sends a request to your Ledger. Keep the extension window open while the "Waiting for Ledger" message is visible.

2. Review on Your Device

Your Ledger screen will wake up and display a "Please Review" message. Use the right button to scroll through the transaction details. You will see the transaction type, such as staking.add_stake or balances.transfer, along with the destination address and the amount of TAO.

3. Approve and Sign

Once you reach the end of the details, your Ledger will show "Approve." Press both buttons simultaneously to sign and broadcast the transaction to the Bittensor network. If the details look incorrect, you can navigate to "Reject" and press both buttons to cancel.

Important Rules for Ledger Signing

  • The Polkadot App Must Be Open: Your Ledger must be unlocked and the Polkadot app must be active on the device screen before you click the action button in Crucible.

  • No "Blind Signing" Required: Unlike some Ethereum transactions, standard Bittensor actions (Staking/Sending) are "Clear Signed." You should be able to see the exact details on your Ledger screen without enabling extra settings.

  • Transaction Timeouts: If you take too long to review the details on your Ledger (usually more than 60 seconds), the connection may "time out." If this happens, simply reject the transaction on the device and try again from the Crucible extension.

Troubleshooting "Failed to Sign"

If your Ledger isn't responding when you try to sign:

  1. Check the Screen: Is your Ledger still on the Polkadot app? If it timed out and went back to the dashboard or locked itself, the signature will fail.

  2. Ledger Live Conflict: Ensure the Ledger Live desktop app is closed. Ledger Live can "steal" the USB connection, preventing the Crucible extension from talking to the device.

  3. Cable Check: Ensure you are using a data-capable USB cable (the one that came with your Ledger) rather than a simple charging cable.

  4. Browser Permissions: If a "HID Device" or "USB Permission" popup appears in your browser, click Allow to give Crucible permission to access the Ledger.

Did this answer your question?