> ## Documentation Index
> Fetch the complete documentation index at: https://www.dynamic.xyz/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Native wallet connections

> Connect external wallets directly from your app through a Dynamic SDK, with full control over the picker and the connection flow.

Native connection means your app talks to the wallet itself through a Dynamic SDK. The user never leaves your app, and you decide what the wallet picker looks like and when it appears.

This is the route to take when your client already ships a Dynamic SDK. It is available on all plans.

## What you can build

**Sign in with a wallet.** Treat a wallet as an authentication method. The user connects, proves ownership by signing a message, and gets a session.

**Connect without signing in.** Attach a wallet to an already-authenticated user, or read an address without creating a session.

**Your own picker.** Render the wallet list yourself from a single call, covering installed wallets, deeplink and QR pairing, in-app browsers, and install-only entries. The picker matches your design and your ordering rather than a provided modal.

**Target a specific wallet.** Open one wallet directly instead of showing a list, for flows where you already know which wallet the user has.

**Multiple wallets per user.** Link several wallets to one user, let them choose which to act on, and remove ones they no longer want.

**Hardware wallets.** Ledger and Trezor connect through the same interface as software wallets.

**Compliance handling.** Detect a wallet rejected by screening and show a clear access-denied experience rather than a failed transaction.

## SDK support

Every client SDK supports signing in with an external wallet: **Javascript, React & React Native**, **Swift**, **Kotlin**, **Flutter**, and **Unity**.

The JavaScript SDK goes furthest. It exposes the wallet catalogue, per-wallet connection, WalletConnect and MetaMask specifics, hardware wallet support, and connected-wallet management as separate APIs. The mobile and game SDKs cover connection and sign-in.

The per-SDK guides are under **Implement** in this tab, in each SDK's **Native** group.

## Native or hosted

Native needs a Dynamic SDK in your client and you build the picker. [Hosted](/docs/connections/overview) needs neither, at the cost of sending the user to a separate page. [Connections](/docs/flow/connections) compares the two side by side.
