Skip to content

Overview

Privy enables users to connect external wallets to your app, or to create secure, self-custodial embedded wallets, on both EVM networks (Ethereum, L2s, and EVM-compatible chains) and Solana.

With both kinds of wallets, you can easily request signatures and transactions from your users to have them interact with your product onchain. The logic for making these requests is similar across wallet types, though embedded wallets allow for extra customization in terms of how signature and transaction prompts are presented to users.

Read below for more information on the distinction between external and embedded wallets in Privy.

External wallets

External wallets are managed by a third-party client, such as MetaMask, Phantom, or Rainbow. All browser extension wallets, hardware wallets, and mobile app wallets fall into this category.

If they choose, users may use multiple external wallets within your app and may link these wallets to their account. You can request signatures and transactions from an external wallet directly, or by integrating Privy alongside a library like wagmi, viem, or @solana/web3.js.

Embedded wallets

Embedded wallets are self-custodial wallets provisioned by Privy itself for a wallet experience that is directly embedded in your application. Embedded wallets do not require a separate wallet client, like a browser extension or a mobile app, and can be accessed directly from your product. These are primarily designed for users of your app who may not already have an external wallet, or don't want to connect their external wallet.

You can choose exactly when to create an embedded wallet for your user, and can request signatures and transactions from the wallet using Privy's native signature and transaction methods, requesting the wallet provider directly, or using a library wagmi, viem, or @solana/web3.js.

You can use Privy embedded wallets on EVM networks, Solana, or both within your application.