// Buyer side: any page with ConduitCheckout
import { ConduitCheckout } from "@conduitexchange/connect";
<ConduitCheckout
amount="5"
currency="USDC"
merchantAddress={streamerWallet}
orderId={`tip_${crypto.randomUUID()}`}
onSuccess={(paymentId) => {
// Broadcast to every open tab / OBS source
new BroadcastChannel("streamer-tips").postMessage({
type: "tip",
paymentId,
amount: "5",
});
}}
/>
// Overlay side: loaded inside OBS as a browser source
useEffect(() => {
const ch = new BroadcastChannel("streamer-tips");
ch.onmessage = (ev) => showAnimation(ev.data);
return () => ch.close();
}, []);