en

What Are Embedded Crypto Wallets? How In-App Wallets Work

Published
29.07.2026
Updated
29.07.2026
Soft 3D illustration of a protected crypto wallet embedded in a mobile application
Contents

    An embedded crypto wallet is a wallet experience built into an app or website. A user may create it while signing in with an email address, social account, passkey, or another familiar method, then view a balance and approve blockchain transactions without opening a separate wallet extension.

    That smoother interface does not answer the most important questions. Who can authorize a transaction? Where is the signing key or its shares? Can the user recover or export the wallet? What happens if the app or wallet provider is unavailable?

    “Embedded” describes where the wallet appears, not who controls the funds. Product teams should evaluate the interface, custody model, account type, recovery path, and payment logic as separate layers.

    What is an embedded crypto wallet?

    A crypto wallet manages the authority needed to sign blockchain transactions. An embedded wallet brings that function into the product a person is already using: a marketplace, game, fintech app, loyalty program, creator platform, or checkout.

    The user may never install a browser extension or copy a seed phrase during onboarding. Instead, the application can create or connect the wallet after the user authenticates. Current products use methods such as email one-time codes, social login, PINs, biometrics, and passkeys.

    This delivery model is also called an in-app wallet. Wallet-as-a-Service, or WaaS, usually refers to the developer infrastructure behind it: SDKs and APIs for creating wallets, requesting signatures, applying policies, and reading balances or transaction states.

    These phrases overlap, but they are not interchangeable with “non-custodial.” An embedded wallet can be designed so that only the user can authorize transactions, so that the application controls signing, or so that both participate under a defined policy.

    What is actually embedded in the application?

    The visible wallet is only one part of the system. A production design normally has several layers:

    • An application account that identifies the user and manages a session.
    • A wallet account with one or more blockchain addresses.
    • A signing system that authorizes transactions with a key, key shares, a passkey, or smart-account logic.
    • A provider SDK or API that connects the application to wallet infrastructure.
    • Application logic for balances, transfers, purchases, rewards, or other actions.
    • Monitoring and recovery procedures for failed requests, lost devices, compromised sessions, and provider outages.

    The app can own the interface without owning the signing authority. It can also request a transaction without having the ability to approve it. Keeping these responsibilities separate is essential when comparing wallet products.

    How an embedded wallet works

    Implementations differ, but the user journey usually follows the same broad sequence.

    The user authenticates

    The application first establishes who is requesting access. Depending on the provider and design, that can involve email, SMS, a social account, a PIN, a passkey, or an existing app session.

    This authentication is not automatically the blockchain signature. It may unlock the ability to request a signature, provide one factor in a distributed signing process, or activate a passkey that controls a smart account.

    A wallet account is created or recovered

    For a new user, the system creates a blockchain account and associates it with the application identity. A returning user receives access to the same account after completing the required recovery or authentication checks.

    Product teams need to test what “same account” means across browsers, phones, email changes, social-account loss, and provider migration. A smooth first login is not a complete recovery design.

    The application prepares an action

    The app builds a transfer, contract call, token approval, purchase, or other request. A good interface shows the user what matters before signing:

    • The action being authorized.
    • The asset, network, amount, and destination.
    • Any spending permission granted to a smart contract.
    • The network fee and who is expected to pay it.
    • Whether several operations are being batched.

    If these details are hidden behind a generic “Confirm” button, embedded onboarding has simply moved wallet friction to the riskiest moment.

    The transaction is authorized and signed

    Authorization answers who is allowed to approve the action. Signing produces the cryptographic proof accepted by the blockchain. These steps may involve the user alone, the application backend, a threshold of several parties, or programmable rules.

    Circle’s current signing and authorization documentation, for example, separates transaction initiation, authorization, signing, and broadcast. That distinction is useful beyond any one provider.

    The transaction is broadcast and monitored

    After signing, the transaction is sent to a blockchain network. Submission is not finality. The application still needs to monitor whether the transaction is pending, confirmed, replaced, reverted, or otherwise unsuccessful.

    For a payment, that means the order should not be fulfilled merely because the wallet showed a success animation. The backend needs a defined confirmation rule and an authoritative payment state.

    Embedded does not mean custodial or non-custodial

    The most important architecture question is who can move the assets.

    User-controlled wallets

    In a user-controlled model, the user must authorize transactions. The provider and the application should not be able to sign unilaterally under the documented design.

    This can feel similar to a self-custody wallet while keeping onboarding inside the app. However, the team still needs precise answers about recovery, provider participation, export, account migration, and the consequences of losing every authentication factor.

    “User-controlled” is stronger than “the user has an account.” It should describe actual signing authority, not only who sees the wallet interface.

    Developer-controlled wallets

    In a developer-controlled or server-controlled model, the application backend can initiate and authorize transactions through its credentials and policies. This can support automated payouts, deposit collection, treasury operations, or service accounts.

    The trade-off is responsibility. The platform must protect credentials, separate roles, set limits, log every action, handle key recovery, and define incident response. It also needs legal and compliance analysis appropriate to the service and jurisdictions involved.

    Calling such a wallet “embedded” does not reduce those obligations. It only describes how the experience is delivered.

    Shared or policy-controlled models

    Some systems distribute signing authority or add policy checks. A transaction might need user approval plus provider participation, multiple key shares, or a rule that restricts destinations and amounts.

    These controls can reduce single-key risk, but they introduce new dependencies. The product team should identify every party and service needed to sign, recover, update a policy, or move to another provider.

    MPC, passkeys, and smart accounts are different layers

    Embedded-wallet marketing often groups several technologies together. They solve different problems.

    Multi-party computation, or MPC, can distribute a signing process across key shares so that one complete private key is not reconstructed in a single place. The security outcome depends on the threshold, where the shares live, who operates each participant, how authentication works, and how recovery is performed.

    A passkey is an authentication or signing credential tied to public-key cryptography and protected by a device or credential provider. It can make approval feel familiar, but teams still need to decide how device loss, cloud synchronization, account recovery, and high-risk actions are handled.

    A smart account is a blockchain account implemented with smart-contract logic. It can support features such as batched calls, sponsored network fees, spending policies, multiple signers, and recovery modules. Our guide to account abstraction and smart wallets explains that layer in detail.

    An embedded wallet may use any combination of these approaches. It may also use a conventional externally owned account. Product documentation should state the actual combination instead of relying on “seedless” or “smart” as a complete architecture description.

    Recovery and export determine whether onboarding stays convenient

    Wallet creation is the easy demo. Recovery is the harder product.

    A team should test recovery as a set of failure scenarios:

    • The user loses a phone but still controls the email account.
    • The user loses access to the original email or social provider.
    • A passkey is available on one device but not another.
    • The application account is suspended or deleted.
    • The wallet provider has an outage or ends the service.
    • The user wants to leave the application and continue using the address elsewhere.
    • A recovery factor is compromised and must be replaced.

    Private-key export can give a user a route to another wallet client, but it also creates a moment when sensitive key material may be exposed. Providers can restrict export by platform or wallet-creation environment. Privy, for example, documents different export availability for client-created and server-created wallets.

    Export is not the only form of portability. A smart account might support changing owners or signers without exposing one private key. Another system may support migration through a recovery process. Whatever the method, “the user can always recover” is not specific enough for a security review.

    Embedded wallets versus external wallets

    An external wallet is a separate wallet application or extension that the user brings to the product. The app requests a connection and asks the wallet to sign. Protocols such as WalletConnect link wallets to apps without embedding the wallet itself.

    Embedded wallets and external wallets serve different user expectations.

    Embedded wallets can reduce setup steps for newcomers and keep the experience consistent with the application. The product can design onboarding, transaction explanations, recovery prompts, and support around a known flow.

    External wallets give experienced users continuity across many applications. They already understand their wallet, hold assets there, and do not need a new address for every service. The application receives less control over the signing interface and must handle many wallet and network combinations.

    Many products support both. A new user can start with an embedded wallet, while an experienced user connects an external one. If accounts can later be linked, the product needs clear rules for identity, balances, duplicate accounts, recovery, and unlinking.

    What embedded wallets change for crypto payments

    An embedded wallet can make an in-app payment shorter: the user may already be authenticated, the product knows the intended network, and the signing prompt appears in the same interface. This is useful in games, marketplaces, creator platforms, and fintech products where a separate wallet handoff would interrupt the journey.

    But a wallet and a payment system are not the same component.

    The wallet holds assets and authorizes an onchain action. A merchant payment flow also needs:

    • An order or invoice identifier.
    • A locked asset, network, amount, and expiration policy.
    • A reliable destination and transaction-matching rule.
    • Backend status updates and webhook verification.
    • Handling for underpayment, overpayment, late payment, wrong network, and duplicate transfers.
    • A fulfillment rule based on the required confirmation state.
    • Reconciliation, customer support, and refund procedures.

    Those requirements remain even if the payer signs in one tap. Our crypto payment API checklist and guide to reducing failed crypto payments cover the payment side.

    CryptumPay is a crypto payment system for businesses, with API and HTML-widget integration options. It can be considered when the product needs to connect a crypto invoice and transaction status to an order, balance, access right, or other business event. It should not be described as the embedded-wallet layer unless that separate capability is documented.

    Security questions to ask before integrating

    Security claims are useful only when tied to a threat model. Ask the provider and your own engineering team:

    • Who can authorize an ordinary transfer?
    • Can the provider or application sign without the user?
    • Which credentials are sufficient to change recovery factors?
    • Where do keys or key shares exist, and who operates each component?
    • Is private-key export available, and how is the export protected?
    • Can an account owner or signer be changed without moving assets?
    • What transaction details are shown before approval?
    • Are contract calls decoded or simulated?
    • Can policies restrict assets, contracts, destinations, amounts, and transaction velocity?
    • How are compromised sessions, provider outages, and failed signing requests handled?
    • What audit events are available to the application?
    • How quickly can permissions, devices, or backend credentials be revoked?

    Embedded wallets do not eliminate phishing or malicious approvals. A familiar login can even create the false impression that every action inside the application is safe. Users still need readable transaction details, and teams still need controls around token approvals and revocation.

    For user education, distinguish account recovery from key safety. A person who can export a private key must understand that anyone who obtains it can control the account. The seed phrase and private key security guide remains relevant even when the initial experience hides both.

    A practical selection checklist

    Start with the product action, not the wallet feature list.

    Define the control model

    Write down who must approve each type of transaction: the user, the platform, several operators, or a policy engine. Separate consumer balances from automated service wallets and company treasury.

    Map recovery before onboarding

    Test lost device, lost email, changed phone number, compromised account, provider outage, and provider exit. Define which support staff can see or change recovery state.

    Confirm account and network support

    Check whether the product creates externally owned accounts, smart accounts, or both. Verify supported production networks, tokens, contract calls, fee behavior, and address consistency. Do not infer mainnet coverage from a testnet demo.

    Verify portability

    Ask whether the user can export a key, change a smart-account owner, connect another signer, or migrate to a different provider. Document the limitations in user-facing language.

    Design the signing screen

    Show the action, recipient, network, asset, amount, fee, approvals, and any batch contents. Treat generic signature requests as a security defect, not a cosmetic issue.

    Build operations around the happy path

    Add rate limits, audit logs, alerts, webhook authentication, idempotency, retries, incident procedures, and customer-support tools. Test transactions that remain pending or fail after signing.

    Separate wallet and payment responsibilities

    Decide whether the product needs users to keep funds, make occasional purchases, receive payouts, or merely pay an invoice. A full embedded wallet may be unnecessary for a simple checkout. Conversely, a checkout widget is not a replacement for long-lived user custody.

    For mobile products, the decision also affects deep links, app switching, session continuity, and approval screens. The mobile crypto payment integration guide provides a broader implementation context.

    Conclusion

    Embedded crypto wallets can make blockchain accounts feel like a native product feature. That is valuable, but the shorter onboarding flow should not hide the architecture.

    The useful questions are concrete: who authorizes, how signing works, what the user sees, how access is recovered, whether the account is portable, and how the application reacts after a transaction is submitted.

    If users need to hold assets and act repeatedly inside the product, an embedded wallet may be the right foundation. If the main requirement is accepting a payment and updating an order, a payment integration such as CryptumPay may solve the business workflow without making the application responsible for a complete wallet experience. Some products need both layers, but they should remain explicit, testable, and independently recoverable.

    Start accepting crypto payments

    Create an account and connect the checkout yourself, or talk to sales and we will plan the integration with you.

    Contact us and we will plan the integration.