
What is an embedded wallet?
An embedded wallet is a crypto wallet built directly into an app, created automatically when a user signs in with an email, social login, or passkey. The user never installs a separate wallet or handles a seed phrase. To them, it looks like an account balance inside the app.
Behind the scenes, the app uses wallet-as-a-service infrastructure to create and manage the wallet. For example, a stablecoin neobank can give every new user a USDC wallet the moment they sign up with their email. Due supports transfers signed from embedded wallets, so those balances can move out to bank accounts.
How is an embedded wallet different from an external wallet?
An external wallet, like a browser extension or a standalone wallet app, is something the user installs and manages. An embedded wallet is part of the app itself. The differences show up across the whole experience:
- Setup: embedded wallets are created at sign-up, while external wallets are installed and set up separately
- Login: embedded wallets use email, social login, or a passkey, while external wallets rely on a seed phrase or private key the user must store
- Scope: embedded wallets usually live inside one app, while external wallets connect to many apps
- Signing: embedded wallets can approve actions with in-app prompts, while external wallets show a separate pop-up for each transaction
- Experience: the app designs the whole flow for embedded wallets, while the wallet maker controls it for external ones
For most users, the result is a crypto product that feels like a normal fintech app. For the business, it means owning onboarding instead of losing users at the "install a wallet" step.
How do embedded wallets secure private keys?
The hard problem is keeping keys safe without asking users to manage them. Providers use a few main approaches, often in combination:
- Multi-party computation (MPC): the key is split into shares held by the user's device and the provider, so the full key never exists in one place
- Secure enclaves: keys are created and used inside hardware-isolated environments that even the provider's own systems can't read
- Smart contract accounts: the wallet is a smart contract with its own rules for approving transactions, which ERC-4337 allows without changes to Ethereum itself
- Passkeys: a passkey is a key pair stored on the user's device and unlocked with a fingerprint, face scan, or PIN, which smart contract accounts can accept as a signature
Smart contract accounts also make gasless apps possible. Under ERC-4337, a "paymaster" contract can pay gas fees for the user. The effect is similar to a meta transaction: the user acts, and someone else covers the network cost.
A newer standard, EIP-7702, lets ordinary Ethereum accounts point to smart contract code. That gives existing wallets the same features, such as sponsored gas and custom approval rules, without moving funds to a new address.
Is an embedded wallet custodial or non-custodial?
It depends on who can move the funds. An embedded wallet can be built either way, so "embedded" describes the user experience, not the custody model.
In the US, FinCEN's 2019 guidance on convertible virtual currency asks four questions about any wallet provider. Who owns the value? Where is it stored? Does the owner deal directly with the blockchain? And does the provider have "total independent control over the value"?
That last test matters most. A provider whose role is limited to creating wallets that need a second key from the user is not a money transmitter, because it does not accept and transmit value. A provider that can move user funds on its own likely is, which brings money transmission licensing into play.
What are the trade-offs of embedded wallets?
Embedded wallets remove friction, but they shift some responsibility from the user to the app. Three trade-offs come up most often:
- Portability: the wallet usually lives inside one app, so users can't take it elsewhere unless the provider supports exporting the key
- Provider dependency: recovery and signing rely on the wallet provider's systems, so its uptime and security become part of the app's own risk
- Compliance scope: the custody design decides whether the app or its provider may need money transmission licenses, so it's a legal choice as much as a technical one
How does Due work with embedded wallets?
Due lets platforms send stablecoins from embedded wallets to bank accounts, per its Sign with Privy guide. Several signing options are documented:
- Privy embedded wallets: sign Due transfer intents through Privy's API, covering a token approval and the payout itself, as in the guide's example of USDC on Base
- Due Wallets: create a credential and a Due Wallet, then sign transfers with it
- Smart accounts: sign from ZeroDev Kernel v3 accounts that use EIP-7702, with a modified signing process
- Funding address: skip signing and send USDC to a temporary deposit address instead
That covers the off-ramp side of an embedded wallet app. Users hold stablecoins in the app and cash out to local bank accounts in the same flow. For an example in production, see how Due and Ready connect Ready's app to fiat rails.
Book a demo to connect your embedded wallets to fiat rails →