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

# Overview

> Build custom deposit flows on the Rhinestone deposit service without the Rhinestone widget.

A headless integration uses the deposit service directly while you own your app's user experience. Headless means without the Rhinestone widget, not without UI: fiat and exchange funding still open Swapped's hosted provider interface.

## Choose a funding method

| Method              | User experience                                                                                   | Guide                                        |
| ------------------- | ------------------------------------------------------------------------------------------------- | -------------------------------------------- |
| Crypto transfer     | The user sends tokens to a registered deposit address from a wallet or exchange                   | [Crypto deposits](/deposits/crypto/overview) |
| Fiat onramp         | Your app opens a Swapped checkout for card, Apple Pay, bank transfer, or another available method | [Onramps](/deposits/onramps/overview)        |
| Exchange connection | Your app opens a Swapped Connect flow for a supported centralized exchange                        | [Exchanges](/deposits/exchanges/overview)    |

All methods ultimately fund a registered smart account. The deposit service detects the transfer, validates it against your project configuration, and routes it to the account's target chain and token.

## How it works

```mermaid actions={false} theme={null}
sequenceDiagram
    participant App as Your app
    participant Provider as Wallet or provider UI
    participant DS as Deposit service
    participant Orch as Orchestrator
    participant Target as Target chain

    App->>DS: Register account and target
    App->>Provider: Show your flow or Swapped hosted UI
    Provider->>DS: Fund registered account
    DS->>Orch: Create bridging intent
    Orch->>Target: Route and settle funds
    DS->>App: Webhook or polling status
```

1. [Configure your project](/deposits/headless/setup/project-configuration), [webhooks](/deposits/headless/processing-and-tracking/webhooks), and optional [sponsorship](/deposits/headless/fees/sponsorship).
2. [Register an account](/deposits/headless/setup/account-registration) with its target chain and token.
3. Give the user a crypto deposit flow, fiat checkout, or exchange connection.
4. Track provider orders separately from final [deposit settlement](/deposits/headless/processing-and-tracking/track-deposits).

## Headless or widget

Use headless when you need a non-React frontend or a fully custom deposit flow. If you want Rhinestone's React UI for funding methods, status, withdrawals, and recovery, start with the [widget quickstart](/deposits/overview/widget/quickstart). Widget integrations still use a backend that holds the API key; see [backend setup](/deposits/overview/widget/backend-setup) and [widget configuration](/deposits/overview/widget/widget-configuration).

Both integration styles use the same deposit accounts and processing pipeline. Webhooks apply to all funding methods, with or without the widget.

## Get started

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/deposits/headless/quickstart">
    Register an account and process a cross-chain crypto deposit.
  </Card>

  <Card title="Create an onramp checkout" icon="credit-card" href="/deposits/headless/funding/create-an-onramp-checkout">
    Fund a registered account through Swapped's hosted fiat checkout.
  </Card>

  <Card title="Create an exchange connection" icon="building-columns" href="/deposits/headless/funding/create-an-exchange-connection">
    Fund a registered account from a centralized exchange.
  </Card>

  <Card title="Webhooks" icon="webhook" href="/deposits/headless/processing-and-tracking/webhooks">
    Receive deposit and provider-order lifecycle events.
  </Card>
</CardGroup>
