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 aclientSecret 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
- Sessions - understand the full session lifecycle
- Payment Methods - control which payment methods users see
- Web - embed the deposit flow in your web app with
DaimoFrame - React Native - embed in a React Native app with
DaimoFrameRN - Native WebView - raw iOS / Android WebView, no SDK
- Custom Integration - build your own UI with the API