Tier: L (5-7 days) | Type: feature
Context. The SDK now exposes WebAuthnPasskeyStealthSigner in sdk/src/chains/stellar/signer.ts, but the demo does not consume it yet: src/pages/Settings.tsx only surfaces the theme preference, and none of the five existing Stellar adapters (Freighter, Albedo, xBull, LOBSTR, WalletConnect) is a passkey peer. Wave 8 introduces passkey as a first-class wallet mode: the app can operate entirely from a passkey-controlled Stellar smart account, sponsor its own fees, and never touch an extension after setup.
Scope.
- New
PasskeyAdapter under src/wallets/stellar/ implementing the shared adapter interface.
- First-run flow: create-or-import a smart account, register the passkey (PRF extension), fund via friendbot on testnet or a launch-day sponsor on mainnet.
- Session-key pattern for repeated ops within one browser session (with a documented ceiling).
- Graceful error state when the browser has no PRF-capable authenticator: render a clear next-step card explaining the requirement and pointing to a supported browser or hardware key.
- Recording of the full flow on Chrome desktop, iOS Safari, and Android Chrome.
Acceptance.
Files. src/wallets/stellar/PasskeyAdapter.ts (new), src/wallets/stellar/index.ts, src/components/StellarWalletPicker.tsx, src/lib/stellar/passkey.ts.
Tier: L (5-7 days) | Type: feature
Context. The SDK now exposes
WebAuthnPasskeyStealthSignerinsdk/src/chains/stellar/signer.ts, but the demo does not consume it yet:src/pages/Settings.tsxonly surfaces the theme preference, and none of the five existing Stellar adapters (Freighter, Albedo, xBull, LOBSTR, WalletConnect) is a passkey peer. Wave 8 introduces passkey as a first-class wallet mode: the app can operate entirely from a passkey-controlled Stellar smart account, sponsor its own fees, and never touch an extension after setup.Scope.
PasskeyAdapterundersrc/wallets/stellar/implementing the shared adapter interface.Acceptance.
@ts-nocheckand has a unit test around the PRF assertion parserFiles.
src/wallets/stellar/PasskeyAdapter.ts(new),src/wallets/stellar/index.ts,src/components/StellarWalletPicker.tsx,src/lib/stellar/passkey.ts.