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

# Non-Custodial Wallets

> Non-custodial wallets for users (with social login, no seed phrases) and systems (via API key, keys in a TEE).

export const Tags = ({tags, className}) => {
  if (!tags || !Array.isArray(tags)) {
    return null;
  }
  return <div className={`mt-5 mb-5 flex flex-row flex-wrap gap-2 ${className}`}>
      {tags.map((tag, index) => <span key={index} className="text-sm text-[#733E00] dark:text-yellow-500 bg-[#FFFCF1] dark:bg-yellow-500/10 font-semibold px-2 py-1 rounded-lg">{tag}</span>)}
    </div>;
};

<Tags tags={["EVM", "Solana"]} />

## Overview

CDP non-custodial wallets are built for both users and systems.

**For users**, wallets are embedded directly in your app. Users sign in with email, SMS, or social login. No seed phrases, browser extensions, or pop-ups required. Users maintain full custody of their assets at all times.

**For systems**, wallets are accessed via the same secure API key authentication battle-tested across all CDP APIs. Your server creates and manages accounts programmatically while CDP handles all private key security inside a Trusted Execution Environment.

<Frame>
  <div className="wallet-comparison-wrapper">
    <img src="https://mintcdn.com/coinbase-prod/5svNnr4eY4oah0oo/images/wallet-experience-comparison.svg?fit=max&auto=format&n=5svNnr4eY4oah0oo&q=85&s=bfd304d86167aeb98ce0136df75d3a3d" alt="Comparison showing traditional wallets require 6 steps including seed phrase management, while user wallets only need 3 simple steps" width="2600" height="2080" data-path="images/wallet-experience-comparison.svg" />
  </div>
</Frame>

## Authentication models

CDP non-custodial wallets support two authentication models depending on who controls the wallet:

<CardGroup cols={2}>
  <Card title="User authentication" icon="user">
    Wallets controlled by your end users. Users sign in with email, SMS, or social login. Best for consumer apps, games, and social platforms.

    Supported in TypeScript, React, and React Native.
  </Card>

  <Card title="API key authentication" icon="key">
    Wallets controlled by your server via API key and Wallet Secret. Best for automated workflows, agentic applications, and backend services.

    Accessible via the [CDP SDK](https://github.com/coinbase/cdp-sdk) or [REST endpoints](/api-reference/v2/introduction).
  </Card>
</CardGroup>

## Key capabilities

Regardless of auth model, all CDP non-custodial wallets share the same underlying infrastructure and feature set:

* **User-custodied security**: Users maintain complete control of their assets with the ability to export keys anytime, while you focus on building great experiences
* **Easy onboarding**: Familiar login methods (email OTP and social logins) replace complex seed phrases
* **Lightning-fast wallets**: Wallet creation and signing under 500ms, enabling instant user onboarding
* **Complete customization**: Full control over UI/UX to match your brand and user experience
* **Enterprise-grade security**: Advanced cryptographic operations and transaction signing powered by secure infrastructure
* **Everything Wallet**: Access onramp/offramp, balances, transfers, swaps, and staking without additional integrations
* **USDC Rewards**: US-based developers earn 3.35% rewards on balances held across CDP non-custodial wallets

## Try the interactive demo

Experience user wallets firsthand at [demo.cdp.coinbase.com](https://demo.cdp.coinbase.com). The demo lets you:

* **Explore the user experience**: See how smooth onboarding can be with web2-friendly authentication
* **Test customization**: Preview how user wallets can match your app's look and feel
* **Try core features**: Wallet creation, transactions, and key management in action

Perfect for developers who want to understand the product before diving into implementation.

## Use cases

**User wallets**

* **Consumer apps**: Payments, gaming, and social platforms where users sign in with email or social login and transact without managing keys
* **Marketplaces**: Streamlined checkout with built-in crypto payments and NFT trading
* **DeFi applications**: Lending, borrowing, and yield farming with a familiar web2-style UX

**API key wallets**

* **Agentic applications**: Give AI agents controlled wallet access with policy-enforced spending limits
* **Automated workflows**: Execute transactions triggered by webhooks or onchain events without user involvement
* **Backend treasury management**: Programmatically manage funds across EVM and Solana from your server

## Supported networks

<CardGroup cols={3}>
  <Card title="EVM Networks" icon="ethereum">
    All EVM-compatible networks including Base, Ethereum, Arbitrum, Polygon, Optimism, and more
  </Card>

  <Card title="Solana" icon={<img src="/icons/solana-blue.svg" alt="Solana" className="w-6 h-6" />}>
    Full support for Solana mainnet and devnet
  </Card>

  <Card title="Testnets" icon="flask">
    Base Sepolia, Ethereum Sepolia, Solana Devnet, and other test networks for development
  </Card>
</CardGroup>

For a complete list, see [Supported Networks](/get-started/supported-networks).

## Get started

<CardGroup cols={2}>
  <Card title="Quickstart: User Auth Wallets" icon="bolt" href="/wallets/quickstart/user-auth">
    Add user wallets to your React app in under 10 minutes
  </Card>

  <Card title="Quickstart: API Key Wallets" icon="server" href="/wallets/quickstart/api-key-auth">
    Create and manage wallets programmatically from your backend
  </Card>

  <Card title="Webhooks" icon="webhook" href="/webhooks/wallets">
    Subscribe to real-time transaction, signing, and delegation events.
  </Card>
</CardGroup>
