Skip to main content
This guide gets a working deposit flow running. You’ll create a session on your server, then embed Daimo’s hosted deposit flow in your app.

Step 1: Create a session (server-side)

Create a session with your API key on the server - never expose it to the client. The response includes a clientSecret you provide to your frontend. For details on credential handling, see Daimo’s Credential Model.

Step 2: Embed the deposit flow (client-side)

Web apps

Install the SDK and render <DaimoFrame layout="modal" />. It loads the hosted deposit flow in a dimmed, full-screen overlay and sizes itself to the content, with no wallet libraries or providers to set up.
DaimoFrame handles the overlay, iOS safe areas, and content sizing for you. To render the flow inside your own modal or page layout instead, use layout="embed"; see the Web guide.

Mobile apps

For React Native, install the SDK and render <DaimoFrameRN layout="modal" />. It loads the same hosted flow in a react-native-webview.
See the React Native guide for the embed layout and deeplink-scheme setup. On native iOS / Android (Swift / Kotlin), embed the same /webview URL directly; see Native WebView.

Step 3: Handle completion

DaimoFrame reports dismissal through onClose. To detect a completed deposit and read its on-chain details, poll GET /v1/sessions/{id}. The session’s destination.delivery.txHash contains the on-chain transaction which delivers the funds to the destination address.

Next steps