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

> ## Agent Instructions
> Turnkey is wallet infrastructure: create and manage crypto wallets, sign transactions, and enforce policy-based access controls. Best-fit uses: embedded consumer wallets (email/passkey/social auth, no seed phrases), automated onchain operations with server-side wallets, AI agent wallets with policy-scoped signing, enterprise key management, and verifiable off-chain workloads on Turnkey Verifiable Cloud (TVC).
> Every API call is a JSON POST to https://api.turnkey.com signed with a P-256 API key; create an organization and key self-serve at https://app.turnkey.com.
> Key Turnkey developer resources: API reference (https://docs.turnkey.com/api-reference/overview/intro.md), OpenAPI spec (https://docs.turnkey.com/public_api.swagger.json), authentication (https://docs.turnkey.com/features/authentication/overview.md), webhooks (https://docs.turnkey.com/features/webhooks/overview.md), MCP server for docs search (https://docs.turnkey.com/mcp), agent skills (https://docs.turnkey.com/get-started/ai-skills.md), CLI (https://docs.turnkey.com/sdks/cli.md), SDK reference (https://docs.turnkey.com/sdks/introduction.md), full docs content (https://docs.turnkey.com/llms-full.txt).

# Funding Flows

> Let your end users onramp and offramp funds, either traditional currency (USD, EUR, etc) or crypto, into their Turnkey wallets as crypto assets, directly within your application.

## Overview

By embedding Turnkey’s SDK and leveraging Turnkey Funding Flows you get:

* **Seamless user flows:** No need to redirect off-site, users stay within your UI.
* **Onramps and offramps:** Your users can move money in both directions.
* **Single UX for moving crypto and fiat:** Your users can choose to add funds via crypto or fiat
* **Fund via fiat:**
  * **Broad geographic and fiat payment rail coverage:** Debit cards, credit cards, ApplePay, GooglePay, SEPA, UK Faster Payments, PIX, Revolut, Venmo, PayPal, MoonPay balances, Coinbase balances, methods linked to a [coinbase.com](https://www.coinbase.com) account
  * **Compliance & KYC:** Identity verification flows are built in from providers.
  * **Provider flexibility:** You can use one provider or run multiple side by side. Follow Turnkey’s [referral link to MoonPay](https://dashboard.moonpay.com/signup?referral=turnkey-FAEuJg) to secure our reduced pricing for your end users.
  * **Cost transparency and user choice:** Let end users compare quotes across providers per transaction. For every transfer, your end user sees one or more quotes depending on the partners you enable and the reach of those partners to each end user. Each quote shows a payment method from a provider with its fees. The end user can choose the best option.
  * **Track transaction history and status:** Full visibility in the Dashboard.
* **Fund via crypto:** Customers can BYO wallet to fund their wallet on your app.
* **Apply policies to Turnkey-authorized activity:** Configure permissions for operations authorized by Turnkey. Policies do not control provider-widget actions or incoming transfers signed by external wallets.
* **Unified funding UX:** Use React Wallet Kit handlers to coordinate fiat-provider flows and crypto transfers.

## Prerequisites

1. Choose the provider(s) you want to integrate with. See our current list of supported [Providers](#providers) below for coverage and pricing to best fit your needs.
2. Create an account with your chosen provider(s) and complete the required KYB process.
   * The typical KYB approval timeline will vary by provider. You can expect review to take 1-4 business days (or longer) depending on document availability and follow-up questions from the provider’s compliance team.
   * The requirements of the KYB process and the speed of review will vary by provider. Specific questions should be addressed to the provider directly.
   * The following is not an exhaustive list (and providers may ask for additional documentation), however the following documents may be requested as part of KYB compliance, depending on the provider you choose:
     * Corporate formation and governance documents (e.g. certificate of incorporation / articles of association; bylaws / operating agreement)
     * Proof of registration and status (e.g. business registration extract; certificate of good standing)
     * Ownership and control structure (e.g. register of shareholders / members; register of directors and officers; ultimate beneficial owner declaration)
     * Identification of directors, beneficial owners (often >10%), and sometimes senior management, including government-issued photo identification, proof of address (e.g. utility bill, bank statement, government letter \< 3 months old). Beneficial owners that are entities may need to provide similar documents, as well.
3. Once your KYB application has been approved, you will be provisioned API Keys. You can then securely upload your provisioned API Keys through Turnkey's dashboard [here](https://app.turnkey.com/dashboard/v2/wallet-kit/fiat-onramp)
4. You're now ready to start using fiat funding with your selected provider(s).

> [!NOTE]
>
> The provider account, KYB, and API-key requirements above apply to fiat funding. Funding from a linked crypto wallet does not require a provider account.

### Providers

**Coinbase**

Powers fiat onramps only

* [Create Account](https://portal.cdp.coinbase.com/)
* [Payment Methods](https://docs.cdp.coinbase.com/onramp-&-offramp/developer-guidance/payment-methods)
* [Supported Currencies](https://onramp-asset-availability.vercel.app/)
* [Country Support](https://onramp-asset-availability.vercel.app/)
* [Fees](https://docs.cdp.coinbase.com/onramp/additional-resources/faq#what-fees-do-you-charge)

**MoonPay**

Powers fiat onramps and offramps

* [Create Account](https://dashboard.moonpay.com/signup?referral=turnkey-FAEuJg)
* [Payment Methods](https://support.moonpay.com/customers/docs/all-supported-payment-methods?lng=en#on-ramp)
* [Supported Currencies](https://support.moonpay.com/customers/docs/moonpays-supported-currencies?lng=en#buying)
* [Country Support](https://support.moonpay.com/customers/docs/moonpays-unsupported-countries?lng=en)
* [Fees](https://support.moonpay.com/customers/docs/all-supported-payment-methods?lng=en#what-are-the-fees-with-moonpay)

## Demos

To try a live demo yourself, visit [wallets.turnkey.com](https://wallets.turnkey.com). Toggle to choose whether to test in sandbox or production.

> [!WARNING]
>
> Coinbase does not support sandbox mode for its hosted widget. Coinbase purchases are not simulated and use real funds, so use MoonPay to test in sandbox.

### Onramping via card with MoonPay

<video controls muted width="auto" height="auto">
  <source src="https://mintcdn.com/turnkey-0e7c1f5b/NUTI3b7YGD0daXQD/videos/embedded-wallets/fiat-on-ramp/moonpay-card-onramp.mp4?fit=max&auto=format&n=NUTI3b7YGD0daXQD&q=85&s=46de3c4e453bee1ccb712cf48a6891ae" type="video/mp4" />

  Your browser does not support HTML5 video.
</video>

### Onramping via a linked crypto wallet

<video controls muted width="auto" height="auto">
  <source src="https://mintcdn.com/turnkey-0e7c1f5b/NUTI3b7YGD0daXQD/videos/embedded-wallets/fiat-on-ramp/external-wallet-onramp.mp4?fit=max&auto=format&n=NUTI3b7YGD0daXQD&q=85&s=19e0a15edc7ea4d97f96f3e74bcc6e1e" type="video/mp4" />

  Your browser does not support HTML5 video.
</video>

### Offramping

<video controls muted width="auto" height="auto">
  <source src="https://mintcdn.com/turnkey-0e7c1f5b/NUTI3b7YGD0daXQD/videos/embedded-wallets/fiat-on-ramp/offramp.mp4?fit=max&auto=format&n=NUTI3b7YGD0daXQD&q=85&s=107f7a4faa4173b6ff3b871b9be80543" type="video/mp4" />

  Your browser does not support HTML5 video.
</video>

### Using the MoonPay demo

1. Log in or sign up for a MoonPay account
2. Re-enter the prefilled form values to confirm the order
   * In sandbox mode, use these test values:
     * Credit card CVC: `123`
     * 3D-Secure 2 authentication password: `Checkout1!`
3. In sandbox mode, transactions execute on testnets, so you can view them on the testnet block explorer

## Implementation Guide

Use the handler functions within our React Wallet Kit, as shown in the [demo's `DemoPanel` component](https://github.com/tkhq/sdk/blob/main/examples/demos/with-react-wallet-kit/src/components/demo/DemoPanel.tsx).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.