# Funding

For concepts (sessions, payment methods, statuses) see [Funding](/docs/configuration/funding). In React Native, fund a wallet by opening the hosted **deposit send page** inside a WebView — it reads the transfer from its URL and submits it through the wallet provider injected by the in-app browser.

:::note
A native `useFunding` hook for `@openfort/react-native` is planned. Until it ships, use the hosted deposit page (`deposit.openfort.io`) in a WebView as shown below — it requires no SDK on the page and works today.
:::

## Open the deposit page in a WebView

Build a [deposit page URL](/docs/configuration/funding#hosted-deposit-page) with the destination address and source-chain params, then render it with [`react-native-webview`](https://github.com/react-native-webview/react-native-webview). The user reviews the transfer and confirms it in their wallet; no Openfort SDK runs on the page.

```tsx
import { WebView } from 'react-native-webview'

function DepositWebView({ receiver }: { receiver: string }) {
  const params = new URLSearchParams({
    to: receiver,
    chainId: '42161', // Arbitrum (source chain)
    token: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831', // USDC on Arbitrum
    decimals: '6',
    symbol: 'USDC',
    chain: 'Arbitrum',
    amount: '10000000', // base units, user-editable
  })
  const url = `https://deposit.openfort.io?${params.toString()}`

  return <WebView source={{ uri: url }} />
}
```

The page shows the transaction hash on success but does **not** post back into the host app, so don't wait on `onMessage` for completion — track settlement with [Webhooks](/docs/configuration/webhooks#funding-events) or by polling the session through the [REST reference](/docs/configuration/funding/headless).

## Next steps

* Customize or self-host the deposit page — see the [hosted deposit page](/docs/configuration/funding#hosted-deposit-page).
* React to settlement with [Webhooks](/docs/configuration/webhooks#funding-events).
