# Hardware wallets

Core Extension supports **Ledger** hardware wallets. The device holds the
keys and confirms operations on its own screen; Core builds transactions
and displays context, but cannot sign without the device.

Ledger connects over WebUSB/WebHID and uses the
[Avalanche Ledger app](https://github.com/LedgerHQ/app-avalanche), which
covers the C, X, and P-Chains as well as other EVM networks.

## What dapps observe

A hardware-backed account behaves like any other through the
[provider API](/docs/reference/provider-api), with one practical
difference: **latency**. Signature requests wait for the user to read and
physically confirm on the device — or plug it in first. Two consequences:

- Don't time out signature requests aggressively; a Ledger user confirming
  an [EIP-712 payload](/docs/reference/signing-methods) field by field can
  legitimately take a minute.
- Batch flows that fire several signature requests in a row are painful on
  hardware; consolidate where you can.

## Method support varies by firmware

Not every signing method is implemented by every firmware version — for
example, typed-data support differs between Ledger app versions. When the
device cannot sign a payload, Core surfaces the rejection rather than
falling back to software signing: keys never leave the device, so there is
no fallback. Handle [error 4200](/docs/reference/error-codes) gracefully.
