Playground
A real, live <lumenline-widget> you can try right now, real testnet transfer, real protocol inspector, no local setup.
playground-tau-beige.vercel.app is a real, live
instance of @lumenline/widget embedded on its own page, not a mockup, not a screen recording. It
runs the exact <lumenline-widget> custom element described on the Widget page,
against real Stellar testnet infrastructure, with a real protocol inspector alongside it that shows
the actual XDR, attestation, and relayer traffic as it happens.
What it demonstrates
The playground is deliberately narrow, one real path, not a menu of every rail this project
supports: outbound only, Stellar → Ethereum Sepolia, USDC via CCTP. That's the direction that
exercises the most real machinery in one flow, per its own on-page copy: the two-step
approve-then-burn sequence, the real prepareStep polling
mechanism, and
registerOutboundTransfer's relayer-registration
path. USDT0 isn't offered here for the same structural reason it isn't offered anywhere on testnet,
see Core Concepts.
Every quote, build, and signature is real: a real Circle Iris fees call, a real Soroban RPC
submission, a real on-chain testnet transaction once you sign. The protocol inspector alongside the
form captures this traffic passively, through the same window.fetch/console interception
mechanism described in the playground's own source (apps/playground/lib/inspector-capture.ts), so
what it shows you is the actual request/response, not a formatted-after-the-fact summary.
What you need to actually complete a transfer
The playground itself needs no setup, but signing a real transaction does, because this is real signing, not a simulated one:
- Your own Stellar testnet account and wallet extension. The widget connects to whichever wallet you pick and signs with whatever account that wallet currently holds, there's no shared "demo wallet" mode, and no check anywhere that lets you type one address into the "Sender" field while signing with a different connected account, see Wallet support for which wallets are actually confirmed to work end-to-end (Freighter, so far).
- That account funded on testnet. Two real, public faucets, no API key needed, linked directly on the page itself: Friendbot for XLM, Circle's testnet faucet for USDC.
- A destination address on Ethereum Sepolia to receive the USDC. It doesn't need to sign anything or hold any ETH for this flow, delivery gas is paid on the destination side (either by a configured relayer, or by whoever submits the attested message manually, see below), not by the recipient.
Automatic delivery, or manual, honestly
Whether a transfer completes delivery on Sepolia automatically depends on whether this specific deployment has a relayer configured, exactly the same real, disclosed distinction as the widget's own outbound registration behavior generally, not something this page can promise on the deployment's behalf. The playground surfaces which case you're in directly in its own UI, not left for you to guess:
- If no relayer is configured, or a configured one is unreachable or misconfigured, the widget says
so plainly once your burn transaction lands, and
receiveMessageremains genuinely permissionless by CCTP's own design, so the transfer isn't stuck. See the end-to-end walkthrough for the real manual-completion path. - If a relayer is configured and reachable, the widget registers with it automatically once your burn confirms, and you can watch the real registration request and its response in the protocol inspector, not just trust a status label.
Source
The playground itself is real, open source code in this repo, apps/playground, built the same
Next.js app either you or anyone else can run locally against your own relayer instead. See the
"View source" link in the playground's own header, or GitHub directly.