<!-- tempo-docs-context -->
> Source: [/docs/guide/getting-funds](https://tempo.xyz/developers/docs/guide/getting-funds.md)
> Section: [Accounts](https://tempo.xyz/developers/docs/accounts.md). Create accounts, connect wallets, read balances, send and receive payments, and reconcile deposits.
> [Documentation index](https://tempo.xyz/developers/llms.txt) · [Docs skill](https://tempo.xyz/developers/SKILL.md)

> Tempo MCP: Use `search`, `find_pages`, `read_page`, and `code` at `https://mcp.tempo.xyz` for Tempo and related documentation.
> If an indexed page is missing or reflects an older site, read this site’s [documentation index](https://tempo.xyz/developers/llms.txt) and Markdown pages directly.

<span id="getting-funds-on-tempo-wallet-faucet--bridge" />

# Fund an account

Choose a funding path for the network and integration you are building. Tempo Wallet uses mainnet and real funds; the Moderato faucet supplies separate test tokens.

## Choose a funding path

### Get testnet funds

Use test stablecoins on Moderato to try payments and build your integration.

[Testnet faucet](https://tempo.xyz/developers/docs/quickstart/faucet)

[Send a test payment](https://tempo.xyz/developers/get-started/quickstart)

### Add money with Tempo Wallet

Use the fiat onramp in Tempo Wallet, or open its funding flow directly from your app.

[Try the onramp](https://tempo.xyz/developers/docs/guide/getting-funds#tempo-wallet)

[Add funding to your app](https://tempo.xyz/developers/docs/guide/getting-funds#open-funding-with-the-accounts-sdk)

### Transfer from another network

Use Routes to move stablecoins to Tempo or accept customer deposits from other networks.

[Transfer with Routes](https://tempo.xyz/developers/docs/routes)

[Customer deposit addresses](https://tempo.xyz/developers/docs/routes/deposits)

[Bridge integrations](https://tempo.xyz/developers/docs/guide/getting-funds#bridge)

### Get OUSD on Tempo

Explore minting through an integration partner or swapping stablecoins already on Tempo.

[OUSD funding options](https://tempo.xyz/developers/docs/guide/ousd#get-ousd)

[Swap stablecoins](https://tempo.xyz/developers/docs/guide/stablecoin-dex/executing-swaps)

<span id="tempo-wallet" />

## Add money with Tempo Wallet

[Tempo Wallet](https://wallet.tempo.xyz) includes a fiat onramp and funding from other chains. Connect below, select **Add funds**, and choose a funding method in the wallet. The wallet shows the available methods, amount, and any fees before you confirm.

This demo opens the funding flow for **Tempo Mainnet**, using real funds. For test tokens, use the [Moderato faucet](https://tempo.xyz/developers/docs/quickstart/faucet).

**Interactive demo: Add Funds**

1. Connect Tempo Wallet
2. Deposit to tempo wallet

### With the CLI

After [setting up Tempo Wallet in the CLI](https://tempo.xyz/developers/docs/cli/wallet), run:

```bash
tempo wallet fund
```

### With an agent

Paste this into your agent to set up Tempo Wallet and add funds:

:::code-group
```bash [Claude Code]
claude -p "Read https://tempo.xyz/SKILL.md and fund my Tempo Wallet"
```

```bash [Amp]
amp --execute "Read https://tempo.xyz/SKILL.md and fund my Tempo Wallet"
```

```bash [Codex CLI]
codex exec "Read https://tempo.xyz/SKILL.md and fund my Tempo Wallet"
```
:::

## Open funding with the Accounts SDK

Use the Accounts SDK to open Tempo Wallet's funding interface from an **Add funds** button. The wallet handles the funding flow; your application connects the account and requests `wallet_deposit`.

:::steps
### Install the Accounts SDK

```bash
pnpm add --save-exact accounts@0.18.4 viem
```

### Add a funding button

This React example connects Tempo Wallet and opens funding for the selected account on mainnet:

```tsx [AddFundsButton.tsx]
import { Provider } from 'accounts'
import { useState } from 'react'
import { numberToHex } from 'viem'
import { tempo } from 'viem/chains'

const provider = Provider.create({ chains: [tempo] })

export function AddFundsButton() {
  const [pending, setPending] = useState(false)
  const [error, setError] = useState<string>()

  async function addFunds() {
    setPending(true)
    setError(undefined)
    try {
      const [address] = await provider.request({ method: 'eth_requestAccounts' })
      if (!address) throw new Error('Connect a Tempo Wallet account first.')
      await provider.request({
        method: 'wallet_deposit',
        params: [{ address, chainId: numberToHex(tempo.id) }],
      })
    } catch (cause) {
      setError(cause instanceof Error ? cause.message : 'Could not open funding.')
    } finally {
      setPending(false)
    }
  }

  return (
    <div>
      <button type="button" disabled={pending} onClick={addFunds}>
        {pending ? 'Check Tempo Wallet…' : 'Add funds'}
      </button>
      {error && <p role="alert">{error}</p>}
    </div>
  )
}
```

Omit `intent` to let the user choose a funding method. To prefer Apple Pay where available, add `intent: 'applePay'` to the parameter object. `intent: 'crypto'` prefers funding with crypto. These are preferences, not guarantees that a method is available to every user.

You can also prefill `amount` as a human-readable string, such as `'50'`, and `token` as a supported token symbol or contract address. The user reviews and confirms the funding request in the wallet.

### Confirm funds have arrived

A resolved `wallet_deposit` request does not prove the account was funded. Fiat funding can complete asynchronously, and the response's `receipts` field may be absent. Refresh [balances and activity](https://tempo.xyz/developers/docs/accounts/balances), and [verify incoming transfers](https://tempo.xyz/developers/docs/guide/payments/accept-a-payment) before crediting funds in your application's records.
:::

## Get OUSD

See [OUSD on Tempo](https://tempo.xyz/developers/docs/guide/ousd) for minting, redemption, and swap options. Check the token contract address and network when adding an asset to your application.

## Add funding to your application

Use [Tempo Routes](https://tempo.xyz/developers/docs/routes) to quote a cross-network transfer or create a deposit address for customers who send funds independently. Track destination delivery before crediting the payment in your application.

<span id="bridge" />

## Bridge integrations

If you integrate a bridge directly, follow its quote, submission, and delivery flow:

* [LayerZero (Stargate)](https://tempo.xyz/developers/docs/guide/bridge-layerzero)
* [Bungee](https://tempo.xyz/developers/docs/guide/bridge-bungee)
* [Relay](https://tempo.xyz/developers/docs/guide/bridge-relay)

See [bridge providers](https://tempo.xyz/developers/docs/partners/bridges) for the directory. Check the output asset as well as the network: USDC sent through Stargate arrives on Tempo as USDC.e.

## Testnet funds

For development and testing, use the [Tempo Faucet](https://tempo.xyz/developers/docs/quickstart/faucet).

The faucet provides `OUSD`, `pathUSD`, `alphaUSD`, `betaUSD`, and `thetaUSD` test stablecoins.
