Embedded checkout with Reown AppKit
A drop-in embedded checkout using Reown AppKit for wallet connect and our React hooks for the payment flow. About 60 lines of code.
If you want full control over the checkout UI but you'd rather not write a wallet connector from scratch, Reown AppKit is the right pairing. AppKit handles the wallet picker; the Strimz React hooks handle everything after the wallet is connected.
This recipe is the minimal embedded checkout. Your own button, your own layout, AppKit for connect, Strimz for the payment flow.
Install
The wagmi adapter is what bridges AppKit and the Strimz hooks (which read from wagmi internally).
Wire the providers
The tree order matters: Reown's AppKit init has to happen, then WagmiProvider, then QueryClientProvider, then StrimzProvider.
Mount it in your root layout:
Server-side: create the session
Same as any Strimz integration. Your server creates the session, returns the id to the client.
Client-side: the embedded button
The full embedded button:
That's the integration. About 60 lines total counting the providers; less if you skip the loading state.
What's happening
The user lands on /checkout. The page creates a session on mount (one fetch to your server). They see "Loading…" briefly.
The session loads. If they haven't connected a wallet, we show Reown's <w3m-button /> which renders a "Connect Wallet" button. Clicking it opens AppKit's wallet picker; the user picks MetaMask or whatever; the wallet connects.
Once connected, the page swaps to the Pay button. Clicking Pay triggers usePayCheckout's mutate() which fetches the session, builds the EIP-3009 typed data, prompts the wallet to sign, submits the signature, and polls for confirmation.
When the session confirms, the page shows the success state with a link to Arcscan.
Customizing further
The button is yours. Style it however. Add a loading spinner; show the wallet address; render the amount in a more elaborate way. The hook gives you session, isPending, isConfirmed, error , that's everything you need.
The Reown modal can be themed too. See their docs. Match it to your brand and the connect flow feels native.
If you want to handle the wallet connect entirely on your own (no Reown), you can. Just wire up a wagmi config directly. The Strimz hooks read from wagmi regardless of how it got there.
