Skip to main content
The same deposit flow as CalmDialog, rendered directly into your layout instead of behind a dialog. Reach for it when the onramp is the page rather than an action on it — a dedicated funding screen, a panel in a dashboard, or a step inside your own flow.

Import

Usage

app/fund/page.tsx
There is no trigger element. The component mounts on the deposit picker and renders its own back control once the user moves past the first screen.

Props

flows

FlowConfig — optional The deposit methods to offer, in the order you want them rendered within each section. Identical to the flows prop on CalmDialog — the same shapes, the same defaults, and the same section rules apply.
app/fund/page.tsx

locale

string — optional The BCP-47 locale amounts render in. Separators and grouping follow the locale’s own conventions. Defaults to "en-US".
app/fund/page.tsx

Differences from CalmDialog

Everything else carries over: the wallet prerequisite, the styling tokens, and each flow’s own requirements — including the frame-src allowlist the blink flow needs.

Connecting a wallet

A connected wallet is the prerequisite here too. The provider throws during render without one, so mount the component only once your identity provider reports an authenticated user with a wallet. See Connecting a wallet for the sign-in configuration, including the email-first setup a cash-only integration wants.

SSR

<CalmEmbed> is a client component. In Next.js App Router, render it from a parent that has "use client" at the top: