> ## 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.

# Coinbase Developer Docs

> Explore our API & SDK references, demos, and guides for building onchain apps.

export const coinbaseProductsCategories = [{
  id: 'coinbase-apis',
  label: 'Consumer APIs',
  items: [{
    id: 'coinbase-app',
    title: 'Coinbase App',
    desc: 'Trade, transfer, and track Coinbase accounts and assets',
    icon: 'https://mintlify-assets.b-cdn.net/coinbase-logo.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/Coinbase%20App.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/coinbaseapp-dark.svg'
    },
    href: '/coinbase-app/introduction/welcome'
  }]
}, {
  id: 'business-apis',
  label: 'Business APIs',
  items: [{
    id: 'coinbase-business',
    title: 'Coinbase Business',
    desc: 'Trade, transfer, and track Coinbase Business accounts and assets',
    icon: "https://mintlify.s3.us-west-1.amazonaws.com/coinbase-prod/coinbase-business/icons/business-light.svg",
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/Coinbase%20business.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/Coinbase%20business%20(1).svg'
    },
    href: '/coinbase-business/introduction/welcome'
  }]
}, {
  id: 'institutions',
  label: 'Institutional APIs',
  items: [{
    id: 'coinbase-exchange',
    title: 'Coinbase Exchange',
    desc: 'Institutional API for direct access to spot trading and market data',
    icon: 'https://mintlify-assets.b-cdn.net/exchangeProduct-1.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/Exchange.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/Exchange%20(1).svg'
    },
    href: '/exchange/introduction/welcome'
  }, {
    id: 'coinbase-international-exchange',
    title: 'Coinbase International Exchange',
    desc: 'Trade and manage orders on the International Exchange',
    icon: 'https://mintlify-assets.b-cdn.net/internationalExchangeProduct-0.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/INTX.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/INTX%20(1).svg'
    },
    href: '/international-exchange/introduction/welcome'
  }, {
    id: 'coinbase-prime',
    title: 'Coinbase Prime',
    desc: 'High-volume trading and custody for institutional traders',
    icon: 'https://mintlify-assets.b-cdn.net/primeProduct-1.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/Prime.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/Prime.svg'
    },
    href: '/prime/introduction/welcome'
  }, {
    id: 'coinbase-derivatives',
    title: 'Coinbase Derivatives',
    desc: 'Onboard and connect brokers and market makers',
    icon: 'https://mintlify-assets.b-cdn.net/derivativesProduct-2.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/Derivatives.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/Derivatives%20(1).svg'
    },
    href: '/derivatives/introduction/welcome'
  }]
}];

export const onChainAppsCategories = [{
  id: 'most-popular',
  label: 'Most popular',
  items: [{
    id: 'transfers',
    title: 'Transfers',
    desc: 'Send fiat and crypto transfers programmatically',
    icon: 'https://mintlify-assets.b-cdn.net/coinbase/coinFocus.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/onramp-light.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/onramp-dark.svg'
    },
    href: '/payments/transfers/overview'
  }, {
    id: 'non-custodial-wallets',
    title: 'Non-custodial Wallet',
    desc: 'Add wallets to your app with social login and passkeys',
    icon: 'https://mintlify-assets.b-cdn.net/productWallet-1.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/onramp-light.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/onramp-dark.svg'
    },
    href: '/wallets/non-custodial-wallets/overview'
  }, {
    id: 'custom-stablecoins',
    title: 'Custom Stablecoins',
    desc: 'Issue and manage your own stablecoin on Base',
    icon: 'https://mintlify-assets.b-cdn.net/internationalExchangeProduct-0.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/onramp-light.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/onramp-dark.svg'
    },
    href: '/custom-stablecoins/overview'
  }]
}, {
  id: 'payments',
  label: 'Payments',
  items: [{
    id: 'deposit-destinations',
    title: 'Deposit Destination',
    desc: 'Accept crypto deposits into a dedicated onchain address',
    icon: 'https://mintlify-assets.b-cdn.net/paySDKProduct-1.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/x402.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/x402-dark.svg'
    },
    href: '/payments/deposit-destinations/overview'
  }, {
    id: 'transfers',
    title: 'Transfers',
    desc: 'Send fiat and crypto transfers programmatically',
    icon: 'https://mintlify-assets.b-cdn.net/coinbase/coinFocus.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/x402.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/x402-dark.svg'
    },
    href: '/payments/transfers/overview'
  }, {
    id: 'x402',
    title: 'x402',
    desc: 'Instant, automatic stablecoin payments over HTTP',
    icon: 'https://mintlify-assets.b-cdn.net/primeProduct-1.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/x402.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/x402-dark.svg'
    },
    href: '/x402/welcome#welcome-to-x402'
  }]
}, {
  id: 'wallets',
  label: 'Wallets',
  items: [{
    id: 'non-custodial-wallets',
    title: 'Non-custodial Wallet',
    desc: 'Add wallets to your app with social login, passkeys, and server-side automation',
    icon: 'https://mintlify-assets.b-cdn.net/productWallet-1.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/Wallet%20API.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/Wallet%20API-dark.svg'
    },
    href: '/wallets/non-custodial-wallets/overview'
  }, {
    id: 'custodial-wallets',
    title: 'Custodial Wallet',
    desc: 'Server-side wallets with full custody and programmable control',
    icon: 'https://mintlify-assets.b-cdn.net/coinbase-logo.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/Wallet%20API.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/Wallet%20API-dark.svg'
    },
    href: '/wallets/custodial-wallets/overview'
  }, {
    id: 'agentic-wallet',
    title: 'Agentic Wallet',
    desc: 'Give AI agents secure, self-custodial wallets',
    icon: 'https://mintlify-assets.b-cdn.net/agentkit.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/Wallet%20API.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/Wallet%20API-dark.svg'
    },
    href: '/agentic-wallet/welcome'
  }]
}, {
  id: 'stablecoins',
  label: 'Stablecoins',
  items: [{
    id: 'custom-stablecoins',
    title: 'Custom Stablecoins',
    desc: 'Issue and manage your own stablecoin on Base',
    icon: 'https://mintlify-assets.b-cdn.net/internationalExchangeProduct-0.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/Staking%20API.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/Staking%20API%20(1).svg'
    },
    href: '/custom-stablecoins/overview'
  }]
}, {
  id: 'trading',
  label: 'Trading',
  items: [{
    id: 'trade-api',
    title: 'Trade API',
    desc: 'Swap tokens and execute trades programmatically',
    icon: 'https://mintlify-assets.b-cdn.net/exchangeProduct-1.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/Exchange.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/Exchange%20(1).svg'
    },
    href: '/trade-api/welcome'
  }, {
    id: 'staking',
    title: 'Staking API',
    desc: 'Enable staking rewards for you and your customers\' assets',
    icon: 'https://mintlify-assets.b-cdn.net/stakingProduct-1.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/Staking%20API.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/Staking%20API%20(1).svg'
    },
    href: '/staking/staking-api/introduction/welcome'
  }]
}, {
  id: 'onchain-tools',
  label: 'Onchain Tools',
  items: [{
    id: 'paymaster',
    title: 'Paymaster',
    desc: 'Build custom gasless experiences for your smart wallet users',
    icon: 'https://mintlify-assets.b-cdn.net/coinbase/paymaster.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/Paymaster.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/Paymaster.svg'
    },
    href: '/paymaster/introduction/welcome#welcome-to-paymaster'
  }, {
    id: 'data',
    title: 'Data',
    desc: 'Access wallet balances and transactions',
    icon: 'https://mintlify-assets.b-cdn.net/decentralizedWeb3-3.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/Data.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/Data%20(1).svg'
    },
    href: '/data/get-started/overview'
  }, {
    id: 'agent-kit',
    title: 'AgentKit',
    desc: 'A toolkit enabling AI agents to interact onchain',
    icon: 'https://mintlify-assets.b-cdn.net/derivativesProduct-2.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/AgentKit.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/AgentKit-dark.svg'
    },
    href: '/agent-kit/welcome'
  }]
}, {
  id: 'customers',
  label: 'Customers',
  items: [{
    id: 'customers',
    title: 'Customers',
    desc: 'Onboard users to Coinbase compliance infrastructure under your brand',
    icon: 'https://mintlify-assets.b-cdn.net/delegateProduct-1.svg',
    image: {
      light: 'https://mintlify-assets.b-cdn.net/coinbase/Coinbase%20App.svg',
      dark: 'https://mintlify-assets.b-cdn.net/coinbase/coinbaseapp-dark.svg'
    },
    href: '/customers-kyc/overview'
  }]
}];

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>;
};

export const ProductTiles = ({categories, hideButtons = false}) => {
  const [activeCategory, setActiveCategory] = useState(categories[0].id);
  const [activeSubTab, setActiveSubTab] = useState(categories[0].items[0]?.id ?? null);
  const currentCategory = categories.find(cat => cat.id === activeCategory);
  const currentSub = currentCategory?.items.find(item => item.id === activeSubTab);
  return <div className="not-prose space-y-6">
    {!hideButtons && <div className="flex flex-wrap gap-2">
        {categories.map(cat => <button key={cat.id} onClick={() => {
    setActiveCategory(cat.id);
    setActiveSubTab(cat.items[0]?.id ?? null);
  }} className={`px-4 py-2 text-sm rounded-full font-bold transition-colors ${activeCategory === cat.id ? 'bg-[#0A0B0D] text-white dark:bg-white dark:text-[#0A0B0D] border-black' : 'bg-gray-100 dark:bg-white/10 text-black dark:text-white'}`}>
            {cat.label}
          </button>)}
      </div>}

      <div>
        {currentCategory?.items?.length ? <div className="flex flex-col lg:flex-row gap-6">
            <div className="flex flex-col w-full lg:w-1/2 space-y-2">
              {currentCategory.items.map(item => <a key={item.id} href={item.href} onMouseOver={() => setActiveSubTab(item.id)} className={`flex items-start gap-1.5 text-left px-5 py-4 rounded-2xl transition-all ${activeSubTab === item.id ? 'bg-gray-100 dark:bg-white/5' : ''}`}>
                  <div className="text-xl mr-3 mt-1"><img src={item.icon} alt={item.title} className="w-8 h-8" /></div>
                  <div className="flex-1">
                    <h3 className="font-semibold text-base text-black dark:text-white">
                      {item.title}
                    </h3>
                    <p className="text-sm text-gray-600 dark:text-gray-400">{item.desc}</p>
                  </div>
                  <div className={`h-full flex items-center ${activeSubTab === item.id ? 'opacity-100' : 'opacity-0'}`}>
                    <div className="hidden dark:block">
                      <Icon icon="chevron-right" size="14" color="#FFF" />
                    </div>
                    <div className="block dark:hidden">
                      <Icon icon="chevron-right" size="14" color="#0A0B0D" />
                    </div>
                  </div>
                </a>)}
            </div>
            <div className="group w-full h-fit lg:w-1/2 bg-[#F5F8FF] dark:bg-[#001033] rounded-2xl flex items-center justify-center border border-[#D3E1FF] dark:border-[#011D5B]">
              {currentSub?.image ? <>
                <img src={currentSub.image.light} alt={currentSub.title} className="block dark:hidden w-full h-full rounded-xl transition-all duration-300 group-hover:scale-105 group-hover:shadow-lg" />
                <img src={currentSub.image.dark} alt={currentSub.title} className="hidden dark:block w-full h-full rounded-xl transition-all duration-300 group-hover:scale-105 group-hover:shadow-lg" />
              </> : <p className="text-gray-400 dark:text-gray-500">No preview available</p>}
            </div>
          </div> : <p className="text-sm text-gray-500 dark:text-gray-400">
            No features available for this category.
          </p>}
      </div>
    </div>;
};

export const Quickstarts = () => {
  const quickstarts = [{
    id: "crypto-infrastructure",
    label: "Crypto infrastructure",
    items: [{
      title: "Create a custodial wallet",
      description: "Create and manage server-side custodial wallets",
      href: "/wallets/custodial-wallets/quickstart",
      icon: <WalletIcon className="w-6 h-6 text-gray-800 dark:text-gray-200" />
    }, {
      title: "Setup a deposit destination",
      description: "Accept crypto deposits into a dedicated onchain address",
      href: "/payments/deposit-destinations/quickstart",
      icon: <CurrenciesIcon className="w-6 h-6 text-gray-800 dark:text-gray-200" />
    }, {
      title: "Orchestrate a stablecoin transfer",
      description: "Send stablecoin transfers programmatically",
      href: "/payments/transfers/quickstart",
      icon: <CurrenciesIcon className="w-6 h-6 text-gray-800 dark:text-gray-200" />
    }, {
      title: "Create a non-custodial user wallet",
      description: "Onchain access via email and social logins",
      href: "/wallets/quickstart/user-auth",
      icon: <WalletIcon className="w-6 h-6 text-gray-800 dark:text-gray-200" />
    }]
  }, {
    id: "consumer-apis",
    label: "Consumer APIs",
    items: [{
      title: "Execute your first trade",
      description: "Buy, sell, and trade crypto using the Advanced Trade SDK",
      href: "/coinbase-app/advanced-trade-apis/overview",
      icon: <AdvancedTradeIcon className="w-6 h-6 text-gray-800 dark:text-gray-200" />
    }, {
      title: "Send crypto from your Coinbase account",
      description: "Transfer crypto between accounts programmatically",
      href: "/coinbase-app/transfer-apis/send-crypto",
      icon: <CurrenciesIcon className="w-6 h-6 text-gray-800 dark:text-gray-200" />
    }]
  }, {
    id: "business-apis",
    label: "Business APIs",
    items: [{
      title: "Use Coinbase Business APIs",
      description: "Manage business accounts, execute trades, and track transactions",
      href: "/coinbase-business/introduction/welcome",
      icon: <CoinbaseBusinessIcon className="w-6 h-6 text-gray-800 dark:text-gray-200" />
    }]
  }, {
    id: "institutional-apis",
    label: "Institutional APIs",
    items: [{
      title: "Use Coinbase Exchange",
      description: "Access professional trading features and portfolio management",
      href: "/exchange/introduction/rest-quickstart",
      icon: <ExchangeProductIcon className="w-6 h-6 text-gray-800 dark:text-gray-200" />
    }, {
      title: "Use Coinbase International Exchange",
      description: "Trade perpetual futures with institutional-grade APIs",
      href: "/international-exchange/introduction/quickstart",
      icon: <GlobeIcon className="w-6 h-6 text-gray-800 dark:text-gray-200" />
    }, {
      title: "Use Coinbase Prime",
      description: "Access prime brokerage services and advanced trading tools",
      href: "/prime/introduction/quickstart",
      icon: <PrimeProductIcon className="w-6 h-6 text-gray-800 dark:text-gray-200" />
    }, {
      title: "Trade derivatives",
      description: "Access futures and options markets via Coinbase Derivatives",
      href: "/derivatives/introduction/welcome",
      icon: <DerivativesProductIcon className="w-6 h-6 text-gray-800 dark:text-gray-200" />
    }]
  }];
  const [activeCategory, setActiveCategory] = useState(quickstarts[0].id);
  const currentCategory = quickstarts.find(cat => cat.id === activeCategory);
  return <Container>
      <div className="flex flex-col w-full mb-8">
        <Title>
          Popular quickstarts
        </Title>
      </div>
      <div className="not-prose space-y-6">
        <div className="flex flex-wrap gap-2">
          {quickstarts.map(cat => <button key={cat.id} onClick={() => {
    setActiveCategory(cat.id);
  }} className={`px-4 py-2 text-sm rounded-full font-bold transition-colors ${activeCategory === cat.id ? 'bg-[#0A0B0D] text-white dark:bg-white dark:text-[#0A0B0D] border-black' : 'bg-gray-100 dark:bg-white/10 text-black dark:text-white'}`}>
              {cat.label}
            </button>)}
        </div>
        <div className="grid grid-cols-1 md:grid-cols-2 -mx-3 gap-2">

          {currentCategory?.items.map(item => <QuickstartItem key={item.id} title={item.title} description={item.description} href={item.href} icon={item.icon} />)}
        </div>
      </div>
    </Container>;
};

export const QuickstartItem = ({title, description, icon, href}) => {
  return <a className="group flex items-start gap-4 hover:bg-gray-100 dark:hover:bg-white/5 p-3 rounded-xl" href={href}>
      <div className="flex-shrink-0 w-12 h-12 flex items-center justify-center rounded-lg border border-gray-200 dark:border-white/10 bg-background-light dark:bg-background-dark">
        {icon}
      </div>
      <div>
        <div className="font-semibold text-sm text-gray-900 dark:text-gray-200">{title}</div>
        <div className="mt-1 text-gray-500 text-sm dark:text-gray-400">{description}</div>
      </div>
    </a>;
};

export const TitleLink = ({children, href}) => {
  return <a href={href} className="text-[#0955FE] dark:text-blue-400 font-bold flex items-center gap-1">
      {children} <Icon icon="arrow-right" size="14" color="currentColor" />
    </a>;
};

export const Title = ({children}) => {
  return <div className="text-gray-900 dark:text-gray-200 text-3xl tracking-tight">
      {children}
    </div>;
};

export const Container = ({children}) => {
  return <div className="px-4 lg:px-10 py-14">
      {children}
    </div>;
};

export const AdvancedTradeIcon = ({className}) => {
  return <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" className={className}>
      <path d="M17.9883 -0.00488281H15.9883V2.99512H12.9883V17.9951H15.9883V20.9951H17.9883V17.9951H20.9883V2.99512H17.9883V-0.00488281ZM14.9883 4.99512H18.9883V15.9951H14.9883V4.99512Z" fill="currentColor" />
      <path d="M2.98828 20.9951V5.99512H5.98828V2.99512H7.98828V5.99512H10.9883V20.9951H7.98828V23.9951H5.98828V20.9951H2.98828ZM4.98828 7.99512V18.9951H8.98828V7.99512H4.98828Z" fill="currentColor" />
    </svg>;
};

export const GasFeesIcon = ({className}) => {
  return <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" className={className}>
      <path d="M4.68164 3.99518L4.68164 19.9952H2.68164L2.68164 21.9952L18.6816 21.9952V19.9952L16.6816 19.9952V15.9952H17.6816C19.3385 15.9952 20.6816 14.652 20.6816 12.9952V9.91798C21.144 9.72402 21.4148 9.19477 21.2429 8.67895L19.6816 3.99518H18.6816V12.9952C18.6816 13.5475 18.2339 13.9952 17.6816 13.9952H16.6816V3.99518C16.6816 2.89061 15.7862 1.99518 14.6816 1.99518L6.68164 1.99518C5.57707 1.99518 4.68164 2.89061 4.68164 3.99518ZM14.6816 3.99518V7.99518L6.68164 7.99518L6.68164 3.99518L14.6816 3.99518ZM14.6816 9.99518V19.9952H6.68164L6.68164 9.99518L14.6816 9.99518Z" fill="currentColor" />
    </svg>;
};

export const GlobeIcon = ({className}) => {
  return <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" className={className}>
      <path d="M21.9883 11.9951C21.9883 17.518 17.5111 21.9951 11.9883 21.9951C6.46543 21.9951 1.98828 17.518 1.98828 11.9951C1.98828 6.47227 6.46543 1.99512 11.9883 1.99512C17.5111 1.99512 21.9883 6.47227 21.9883 11.9951ZM19.184 15.4951H16.9883V10.9951H10.9883V8.99511H12.9883V6.99511H15.9883V5.06537C14.8116 4.38469 13.4454 3.99512 11.9883 3.99512C8.28803 3.99512 5.17452 6.50729 4.26028 9.91911L9.98828 11.6874V13.9951C9.98828 14.9177 10.4523 15.6022 10.9406 16.3223C11.5856 17.2738 12.2729 18.2876 11.9883 19.9951C15.1514 19.9951 17.8858 18.1594 19.184 15.4951Z" fill="currentColor" />
    </svg>;
};

export const CommerceProductIcon = ({className}) => {
  return <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" className={className}>
      <path d="M21.2693 19.9755H19.6255C19.6254 21.0905 18.7207 21.9952 17.6056 21.9952C16.4906 21.9952 15.5858 21.0905 15.5858 19.9755H9.13194C9.13191 21.0905 8.22714 21.9952 7.11211 21.9952C5.99708 21.9952 5.09232 21.0905 5.09229 19.9755H4.86927C3.28271 19.9755 1.98926 18.682 1.98926 17.0954C1.98926 15.5089 3.28271 14.2154 4.86927 14.2154H4.96484L3.42927 4.02144H2.01475V1.99524H5.10502L5.65992 4.96293L21.9888 5.96614L20.7017 16.2289L4.8629 16.2289C4.39139 16.2289 4.00272 16.6176 4.00272 17.0891C4.00272 17.5606 4.39139 17.9493 4.8629 17.9493H21.2629V19.9691L21.2693 19.9755ZM7.0185 14.2289H18.9891L19.6775 7.80922L6.03976 6.99442L7.0185 14.2289Z" fill="currentColor" />
    </svg>;
};

export const CoinbaseBusinessIcon = ({className}) => {
  return <svg width="24" height="24" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" className={className}>
      <path d="M10.9888 1.99512H4.98877V4.99512H0.98877V13.9951H14.9888V4.99512H10.9888V1.99512ZM9.38877 4.99512H6.58877V3.59512H9.38877V4.99512ZM2.58877 6.59512H13.3888V12.3951H2.58877V6.59512Z" fill="currentColor" />
    </svg>;
};

export const ExchangeProductIcon = ({className}) => {
  return <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" className={className}>
      <path d="M18.8522 10.4764L21.6617 7.57147C22.0779 7.15649 22.0779 6.53401 21.7658 6.11903L18.0197 2.38417C17.6035 1.86543 17.0832 1.86543 16.5629 2.38417L13.3371 5.60029L18.54 10.7876L18.8522 10.4764Z" fill="currentColor" />
      <path d="M2.40047 17.9951C1.98828 17.5822 1.98828 16.9629 2.40047 16.55L6.93457 12.0081L2.29742 7.36289C1.88523 6.94999 1.88523 6.33063 2.29742 5.91773L5.90409 2.30483C6.31628 1.89192 6.93457 1.89192 7.24371 2.30483L11.8809 6.74354L17.0332 11.9048L9.09857 19.8532L7.55286 21.6081C7.14066 22.1242 6.52238 22.1242 6.11019 21.6081L2.40047 17.9951ZM7.63261 18.4866L14.203 11.9048L10.4751 8.17052L6.59063 4.45223L4.40632 6.64031L9.7648 12.0081L4.51919 17.2627L6.77526 19.4599L7.63261 18.4866Z" fill="currentColor" />
      <path d="M21.6617 16.4188L18.8522 13.5139L18.54 13.2026L13.3371 18.3899L16.5629 21.6061C17.0832 22.1248 17.6035 22.1248 18.0197 21.6061L21.7658 17.8712C22.0779 17.4562 22.0779 16.8337 21.6617 16.4188Z" fill="currentColor" />
    </svg>;
};

export const DerivativesProductIcon = ({className}) => {
  return <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" className={className}>
      <path d="M21.9883 18.9951L21.9883 5.99512L8.98828 0.995117V7.68742L1.98828 4.99512L1.98828 17.9951L14.9883 22.9951L14.9883 16.3028L21.9883 18.9951ZM12.9883 15.5336L12.9883 20.0831L3.98828 16.6215L3.98828 7.90718L8.98828 9.83025V13.9951L12.9883 15.5336ZM10.9883 8.45666L10.9883 3.90718L19.9883 7.36872L19.9883 16.0831L14.9883 14.16V9.99512L10.9883 8.45666Z" fill="currentColor" />
    </svg>;
};

export const PrimeProductIcon = ({className}) => {
  return <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" className={className}>
      <path d="M21.9883 11.9951C21.9883 17.518 17.5111 21.9951 11.9883 21.9951C6.46543 21.9951 1.98828 17.518 1.98828 11.9951C1.98828 6.47227 6.46543 1.99512 11.9883 1.99512C17.5111 1.99512 21.9883 6.47227 21.9883 11.9951ZM16.6376 18.5062L10.9883 12.3861V4.05701C7.04197 4.54911 3.98828 7.9155 3.98828 11.9951C3.98828 16.4134 7.57 19.9951 11.9883 19.9951C13.7222 19.9951 15.3273 19.4435 16.6376 18.5062ZM18.1069 17.1493C19.2808 15.7571 19.9883 13.9587 19.9883 11.9951C19.9883 7.9155 16.9346 4.54911 12.9883 4.05701V11.6041L18.1069 17.1493Z" fill="currentColor" />
    </svg>;
};

export const PerpetualSwapIcon = ({className}) => {
  return <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" className={className}>
      <path d="M2.66015 8.08059C2.65972 8.05269 2.65951 8.02474 2.65951 7.99674C2.65951 5.05123 5.04732 2.66341 7.99284 2.66341C8.53906 2.66341 9.0661 2.74552 9.5623 2.89808C9.41062 3.2331 9.32617 3.60506 9.32617 3.99674C9.32617 5.4695 10.5201 6.66341 11.9928 6.66341C13.4656 6.66341 14.6595 5.4695 14.6595 3.99674C14.6595 2.52399 13.4656 1.33008 11.9928 1.33008C11.4274 1.33008 10.9032 1.50603 10.4717 1.80617C9.70544 1.49905 8.86887 1.33008 7.99284 1.33008C4.31094 1.33008 1.32617 4.31485 1.32617 7.99674C1.32617 8.28281 1.34419 8.56467 1.37915 8.84125C1.72007 8.47712 2.16195 8.20868 2.66015 8.08059ZM11.9928 5.33008C11.2565 5.33008 10.6595 4.73312 10.6595 3.99674C10.6595 3.26037 11.2565 2.66341 11.9928 2.66341C12.7292 2.66341 13.3262 3.26037 13.3262 3.99674C13.3262 4.73312 12.7292 5.33008 11.9928 5.33008Z" fill="currentColor" />
      <path d="M7.99284 13.3301C10.9384 13.3301 13.3262 10.9423 13.3262 7.99674C13.3262 7.96874 13.326 7.9408 13.3255 7.9129C13.8237 7.7848 14.2656 7.51637 14.6065 7.15224C14.6415 7.42882 14.6595 7.71068 14.6595 7.99674C14.6595 11.6786 11.6747 14.6634 7.99284 14.6634C7.1168 14.6634 6.28023 14.4944 5.51394 14.1873C5.08252 14.4875 4.55823 14.6634 3.99284 14.6634C2.52008 14.6634 1.32617 13.4695 1.32617 11.9967C1.32617 10.524 2.52008 9.33008 3.99284 9.33008C5.4656 9.33008 6.65951 10.524 6.65951 11.9967C6.65951 12.3884 6.57506 12.7604 6.42338 13.0954C6.91957 13.248 7.44662 13.3301 7.99284 13.3301ZM5.32617 11.9967C5.32617 11.2604 4.72922 10.6634 3.99284 10.6634C3.25646 10.6634 2.65951 11.2604 2.65951 11.9967C2.65951 12.7331 3.25646 13.3301 3.99284 13.3301C4.72922 13.3301 5.32617 12.7331 5.32617 11.9967Z" fill="currentColor" />
    </svg>;
};

export const CandleSticksIcon = ({className}) => {
  return <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" className={className}>
      <path d="M10.9888 -0.00482178H12.9888V2.99518H13.9888V14.9952H12.9888V17.9952H10.9888V14.9952H9.98877V2.99518H10.9888V-0.00482178Z" fill="currentColor" />
      <path d="M3.98877 8.99518H2.98877V20.9952H3.98877V23.9952H5.98877V20.9952H6.98877V8.99518H5.98877V5.99518H3.98877V8.99518Z" fill="currentColor" />
      <path d="M19.9888 8.99518H20.9888V20.9952H19.9888V23.9952H17.9888V20.9952H16.9888V8.99518H17.9888V5.99518H19.9888V8.99518Z" fill="currentColor" />
    </svg>;
};

export const NftIcon = ({className}) => {
  return <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" className={className}>
      <path d="M11.4888 7.99518L12.7616 11.2224L15.9888 12.4952L12.7616 13.768L11.4888 16.9952L10.216 13.768L6.98877 12.4952L10.216 11.2224L11.4888 7.99518Z" fill="currentColor" />
      <path d="M16.1252 7.85878L15.4888 6.49518L14.8524 7.85878L13.4888 8.49518L14.8524 9.13157L15.4888 10.4952L16.1252 9.13157L17.4888 8.49518L16.1252 7.85878Z" fill="currentColor" />
      <path d="M4.9177 19.0662C3.10806 17.2566 1.98877 14.7566 1.98877 11.9952C1.98877 6.47233 6.46592 1.99518 11.9888 1.99518C17.5116 1.99518 21.9888 6.47233 21.9888 11.9952C21.9888 14.7566 20.8695 17.2566 19.0598 19.0662L21.9888 21.9952H1.98877L4.9177 19.0662ZM15.8648 18.9952C18.3242 17.6304 19.9888 15.0072 19.9888 11.9952C19.9888 7.5769 16.407 3.99518 11.9888 3.99518C7.57049 3.99518 3.98877 7.5769 3.98877 11.9952C3.98877 15.0072 5.65334 17.6304 8.11276 18.9952H15.8648Z" fill="currentColor" />
    </svg>;
};

export const CurrenciesIcon = ({className}) => {
  return <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg" className={className}>
      <path d="M10.4523 10.669L9.48873 8.35236L8.52518 10.669L6.02417 10.8695L7.92968 12.5018L7.34752 14.9423L9.48873 13.6345L11.63 14.9423L11.0478 12.5018L12.9533 10.8695L10.4523 10.669Z" fill="currentColor" />
      <path d="M9.48877 20.4952C14.1832 20.4952 17.9888 16.6896 17.9888 11.9952C17.9888 7.30076 14.1832 3.49518 9.48877 3.49518C4.79435 3.49518 0.98877 7.30076 0.98877 11.9952C0.98877 16.6896 4.79435 20.4952 9.48877 20.4952ZM9.48877 18.4952C5.89892 18.4952 2.98877 15.585 2.98877 11.9952C2.98877 8.40533 5.89892 5.49518 9.48877 5.49518C13.0786 5.49518 15.9888 8.40533 15.9888 11.9952C15.9888 15.585 13.0786 18.4952 9.48877 18.4952Z" fill="currentColor" />
      <path d="M18.9888 20.1215C22.4631 19.0539 24.9888 15.8195 24.9888 11.9951C24.9888 8.17075 22.4631 4.93628 18.9888 3.86871V5.99328C21.3377 6.97284 22.9888 9.29117 22.9888 11.9951C22.9888 14.6991 21.3377 17.0174 18.9888 17.997V20.1215Z" fill="currentColor" />
    </svg>;
};

export const WalletIcon = ({className}) => {
  return <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" className={className}>
      <path d="M16.9888 15.9952C17.5411 15.9952 17.9888 15.5475 17.9888 14.9952C17.9888 14.4429 17.5411 13.9952 16.9888 13.9952C16.4365 13.9952 15.9888 14.4429 15.9888 14.9952C15.9888 15.5475 16.4365 15.9952 16.9888 15.9952Z" fill="currentColor" />
      <path d="M18.9888 8.99518V1.99518L1.98877 8.54063V21.9952H21.9888V8.99518H18.9888ZM19.9888 10.9952V19.9952H3.98877V10.9952H19.9888ZM16.9888 4.90836V8.99518H6.37438L16.9888 4.90836Z" fill="currentColor" />
    </svg>;
};

<div className="px-5 divide-y divide-gray-100 dark:divide-white/10">
  <Container>
    <div className="w-full flex flex-col">
      <div className="flex flex-col items-start justify-center w-full max-w-4xl text-left">
        <div className="text-gray-900 dark:text-gray-200 text-4xl tracking-tight">
          Coinbase Developer Docs
        </div>

        <p className="text-lg font-[500] text-gray-600 dark:text-gray-400 text-left mt-6 mb-4">
          Explore our API & SDK references, demos, and guides for building onchain apps.
        </p>

        <div className="flex flex-row gap-4 mt-5">
          <a href="/get-started/overview">
            <button type="button" className="px-5 flex items-center font-bold text-sm rounded-full py-2 shadow-sm text-white dark:text-gray-900 bg-primary-dark dark:bg-primary-light hover:opacity-[0.9] hover:bg-blue-700 justify-center">
              Get started

              <svg
                className="size-3 ml-2 bg-white dark:bg-gray-900"
                style={{
            maskImage: 'url("https://mintlify.b-cdn.net/solid/arrow-right-long.svg")',
            maskRepeat: 'no-repeat',
            maskPosition: 'center center'
          }}
              />
            </button>
          </a>
        </div>
      </div>
    </div>
  </Container>

  <Quickstarts />

  <Container>
    <div className="flex flex-col w-full mb-8">
      <div className="flex items-center justify-between w-full">
        <Title>
          Crypto infrastructure all in one place
        </Title>
      </div>

      <p className="text-[#5B616E] dark:text-gray-300 font-medium text-[1.05rem] mb-1 mt-3">
        Orchestrate payments, issue stablecoins, create wallets and build with onchain tools, all from one API key.
      </p>
    </div>

    <ProductTiles categories={onChainAppsCategories} />

    <ul class="not-prose pb-[1px] h-1 min-w-full mt-0 overflow-auto" />
  </Container>

  <Container>
    <div className="flex flex-col w-full mb-8">
      <div className="flex items-center justify-between w-full">
        <Title>
          Access Coinbase products
        </Title>
      </div>
    </div>

    <ProductTiles categories={coinbaseProductsCategories} />

    <ul class="not-prose pb-[1px] h-1 min-w-full mt-0 overflow-auto" />
  </Container>

  <Container>
    <div className="flex flex-col w-full mb-8">
      <div className="flex items-center justify-between w-full">
        <Title>
          Build an app within minutes
        </Title>

        <TitleLink href="/get-started/demo-apps/explore">
          See all
        </TitleLink>
      </div>

      <p className="text-[#5B616E] dark:text-gray-300 font-medium text-[1.05rem] mb-1 mt-2">
        See our demo apps and tutorials to jumpstart your app within minutes.
      </p>
    </div>

    <div className="home-demo-cards">
      <Columns cols={3}>
        <Card title="Automated Mass Payouts" href="/get-started/demo-apps/app-examples/automated-mass-payouts" img="https://mintcdn.com/coinbase-prod/cCGVQ8zMGF76EFDn/get-started/demo-apps/images/mass-payments.svg?fit=max&auto=format&n=cCGVQ8zMGF76EFDn&q=85&s=fe8220b6f969419f0c13ab31c597b3eb" description="Distribute payments to millions of recipients with a few lines of code." width="539" height="190" data-path="get-started/demo-apps/images/mass-payments.svg">
          Automate payroll, rewards, and bulk transfers at scale.

          <Tags tags={['Payments', 'Non-custodial Wallet']} className="!mb-0" />
        </Card>

        <Card title="Onramp demo app" href="/get-started/demo-apps/starter/onramp-demo-app" img="https://mintlify-assets.b-cdn.net/onramp-demo.png" description="Enable users to easily fund their crypto wallet.">
          Enable users to easily fund their crypto wallet.

          <Tags tags={['Starter', 'Onramp']} className="!mb-0" />
        </Card>

        <Card title="Aave Lending" href="/get-started/demo-apps/app-examples/aave-lending" img="https://mintcdn.com/coinbase-prod/5EwRXPqmEZzhto_n/get-started/demo-apps/images/aave-lending.svg?fit=max&auto=format&n=5EwRXPqmEZzhto_n&q=85&s=82431fd74865cbd6cca1533493cfea38" description="Integrate DeFi lending into your app with CDP Non-custodial Wallets." width="262" height="111" data-path="get-started/demo-apps/images/aave-lending.svg">
          Enable users to earn yield by depositing into Aave.

          <Tags tags={['DeFi', 'Non-custodial Wallet']} className="!mb-0" />
        </Card>
      </Columns>
    </div>

    <ul class="not-prose pb-[1px] h-1 min-w-full mt-0 overflow-auto" />
  </Container>
</div>
